示例#1
0
int hif_sdio_match_chipid_by_dev_id (const struct sdio_device_id *id)
{
	int maxIndex = sizeof (gChipInfoArray) / sizeof (gChipInfoArray[0]);
	int index = 0;
	struct sdio_device_id *localId = NULL;
	int chipId = -1;
	for (index = 0; index < maxIndex; index++)
	{
		localId = &(gChipInfoArray[index].deviceId);
		if ((localId->vendor == id->vendor) && (localId->device == id->device))
		{
			chipId = gChipInfoArray[index].chipId;
			WMT_DETECT_INFO_FUNC("valid chipId found, index(%d), vendor id(0x%x), device id(0x%x), chip id(0x%x)\n", index, localId->vendor, localId->device, chipId);
			gComboChipId = chipId;
			mtk_wcn_wmt_set_chipid(gComboChipId);
			break;
		}
	}
	if (0 > chipId)
	{
		WMT_DETECT_ERR_FUNC("No valid chipId found, vendor id(0x%x), device id(0x%x)\n", id->vendor, id->device);
	}
	
    return chipId;
}
示例#2
0
文件: wmt_detect.c 项目: SelfImp/m75
static long wmt_detect_unlocked_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
{
    int retval = 0;

    WMT_DETECT_INFO_FUNC("cmd (%d),arg(%ld)\n", cmd,arg);

	switch(cmd){
		case COMBO_IOCTL_GET_CHIP_ID:
			/*just get chipid from sdio-detect module*/
			/*check if external combo chip exists or not*/
			/*if yes, just return combo chip id*/
			/*if no, get soc chipid*/
			retval = mtk_wcn_wmt_chipid_query();
		break;
		
		case COMBO_IOCTL_SET_CHIP_ID:
			mtk_wcn_wmt_set_chipid(arg);
			
		break;
		
		case COMBO_IOCTL_EXT_CHIP_PWR_ON:
			retval = wmt_detect_ext_chip_pwr_on();
		break;
		
		case COMBO_IOCTL_EXT_CHIP_DETECT:
			retval = wmt_detect_ext_chip_detect();
		break;
		
		case COMBO_IOCTL_EXT_CHIP_PWR_OFF:
			retval = wmt_detect_ext_chip_pwr_off();
		break;
		
		case COMBO_IOCTL_DO_SDIO_AUDOK:
			retval = sdio_detect_do_autok(arg);
		break;
			
		case COMBO_IOCTL_GET_SOC_CHIP_ID:
			retval = wmt_plat_get_soc_chipid();
				/*get soc chipid by HAL interface*/
		break;
			
		case COMBO_IOCTL_MODULE_CLEANUP:
			#if (MTK_WCN_REMOVE_KO)
			/*deinit SDIO-DETECT module*/
				retval = sdio_detect_exit();
			#else
				WMT_DETECT_INFO_FUNC("no MTK_WCN_REMOVE_KO defined\n");
			#endif
		break;
			
		case COMBO_IOCTL_DO_MODULE_INIT:
			#if (MTK_WCN_REMOVE_KO)
			/*deinit SDIO-DETECT module*/
				retval = do_connectivity_driver_init(arg);
			#else
				WMT_DETECT_INFO_FUNC("no MTK_WCN_REMOVE_KO defined\n");
			#endif
			break;

		default:
			WMT_DETECT_WARN_FUNC("unknown cmd (%d)\n", cmd);
			retval = 0;
		break;
	}
	return retval;
}