diff --git a/code/application/source/cardv/SrcCode/System/SysUsb_Exe.c b/code/application/source/cardv/SrcCode/System/SysUsb_Exe.c index d2a00575c..c67400a6c 100755 --- a/code/application/source/cardv/SrcCode/System/SysUsb_Exe.c +++ b/code/application/source/cardv/SrcCode/System/SysUsb_Exe.c @@ -32,6 +32,10 @@ /////////////////////////////////////////////////////////////////////////////// static char driver_path_prefix[64] = "/etc/lib/modules/4.19.91"; +//GobiNet:rndis_host.ko,drv_gobi_net.ko +//ECM:usbnet.ko,rndis_host.ko,cdc_ether.ko +//ACM: +//QMI:qmi_wwan.ko,cdc-wdm.ko,rndis_host.ko, static char* usb_host_drivers[] = { "kernel/drivers/usb/common/usb-common.ko", "kernel/drivers/usb/core/usbcore.ko", @@ -39,13 +43,13 @@ static char* usb_host_drivers[] = { "kernel/drivers/net/mii.ko", "kernel/drivers/net/usb/usbnet.ko", "extra/net/GobiNet/drv_gobi_net.ko", - "kernel/drivers/net/usb/cdc_ether.ko", - "kernel/drivers/net/usb/rndis_host.ko", + // "kernel/drivers/net/usb/cdc_ether.ko", + // "kernel/drivers/net/usb/rndis_host.ko", "kernel/drivers/usb/serial/usbserial.ko", "kernel/drivers/usb/serial/usb_wwan.ko", "kernel/drivers/usb/serial/option.ko", - "kernel/drivers/usb/class/cdc-wdm.ko", - "kernel/drivers/net/usb/qmi_wwan.ko", + // "kernel/drivers/usb/class/cdc-wdm.ko", + // "kernel/drivers/net/usb/qmi_wwan.ko", NULL }; @@ -126,6 +130,7 @@ static BOOL System_InsmodUsb(BOOL isHost) char* driver_path = NULL; UINT8 cnt = 0; char cmd[256] = {'\0'}; + vos_perf_list_mark(__func__, __LINE__, 0); if(isHost){ @@ -136,6 +141,9 @@ static BOOL System_InsmodUsb(BOOL isHost) is_usb_host_driver_inserted = TRUE; return TRUE; } + // #if HUNTING_CAMERA_MCU == ENABLE + // sf_usb_mux_s(1); + // #endif usb_drivers = usb_host_drivers; } else{ @@ -145,6 +153,9 @@ static BOOL System_InsmodUsb(BOOL isHost) memset(driver_path_prefix, '\0', sizeof(driver_path_prefix)); snprintf(driver_path_prefix, sizeof(driver_path_prefix), "/lib/modules/4.19.91"); usb_drivers = usb_dev_drivers; + #if HUNTING_CAMERA_MCU == ENABLE + sf_usb_mux_s(0); + #endif } while(usb_drivers[cnt++]) @@ -161,25 +172,27 @@ static BOOL System_InsmodUsb(BOOL isHost) memset(cmd, '\0', sizeof(cmd)); snprintf(cmd, sizeof(cmd), "insmod %s/%s", driver_path_prefix, driver_path); //DBG_DUMP("%s\n", cmd); - printf("[%s:%d] %s\n", __FUNCTION__, __LINE__, cmd); + // printf("[%s:%d] %s\n", __FUNCTION__, __LINE__, cmd); system(cmd); } } - + // system("mdev -s"); if(isHost == FALSE){ -#if HUNTING_CAMERA_MCU == ENABLE - //sf_set_msdc_clk(); - sf_usb_mux_s(0); - vos_util_delay_ms(200); -#endif +// #if HUNTING_CAMERA_MCU == ENABLE +// //sf_set_msdc_clk(); +// sf_usb_mux_s(0); +// vos_util_delay_ms(200); +// #endif + vos_perf_list_mark(__func__, __LINE__, 0); is_usb_dev_driver_inserted = TRUE; return System_WaitUsbDev(); } else{ -#if HUNTING_CAMERA_MCU == ENABLE - sf_usb_mux_s(1); -#endif +// #if HUNTING_CAMERA_MCU == ENABLE +// sf_usb_mux_s(1); +// #endif + vos_perf_list_mark(__func__, __LINE__, 0); is_usb_host_driver_inserted = TRUE; return TRUE; @@ -290,7 +303,10 @@ void System_OnUsbInit(void) #endif } - //force check USB connect type +#if HUNTING_CAMERA_MCU == ENABLE + sf_usb_insmod_start(); +#else + // force check USB connect type if (GxUSB_GetIsUSBPlug()) { #if (HW_S530 == ENABLE) && (HUNTING_CAMERA_MCU == ENABLE) @@ -302,8 +318,10 @@ void System_OnUsbInit(void) GxUSB_SetChargerType(FALSE); } else{ - //System_InsmodUsb(TRUE); /* insmod usb host ko */ + // System_InsmodUsb(TRUE); /* insmod usb host ko */ } +#endif + TM_BOOT_END("usb", "init"); } @@ -528,5 +546,26 @@ BOOL USB_GetIsMsdcNvt(void) #endif //#NT#2016/06/03#Niven Cho -end } +#if HUNTING_CAMERA_MCU == ENABLE +void* sf_usb_insmod_thread(void *arg) +{ + //force check USB connect type + if (GxUSB_GetIsUSBPlug()) { + + #if (HW_S530 == ENABLE) && (HUNTING_CAMERA_MCU == ENABLE) + sf_sys_status_led_set(SF_LED_SYS_STATE_USB_IN); + #endif + + System_InsmodUsb(FALSE); /* insmod usb dev ko */ + GxUSB_UpdateConnectType(); + GxUSB_SetChargerType(FALSE); + } + else{ + System_InsmodUsb(TRUE); /* insmod usb host ko */ + } + return NULL; +} +#endif + #endif