From: lyz Date: Wed, 1 Apr 2015 02:22:06 +0000 (+0800) Subject: usb: dwc_otg: fix usb otg force_device_mode X-Git-Tag: firefly_0821_release~4158^2~249 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=44a750dd533e4364fc84ed52190687eb51f25a40;p=firefly-linux-kernel-4.4.55.git usb: dwc_otg: fix usb otg force_device_mode TEST: set rockchip,usb-mode = <2> in dts and then the usb works Tested-by: huang zhibao Signed-off-by: lyz --- diff --git a/drivers/usb/dwc_otg_310/dwc_otg_pcd_linux.c b/drivers/usb/dwc_otg_310/dwc_otg_pcd_linux.c index cc3afa20b6fe..99b3dd7c35ef 100755 --- a/drivers/usb/dwc_otg_310/dwc_otg_pcd_linux.c +++ b/drivers/usb/dwc_otg_310/dwc_otg_pcd_linux.c @@ -1752,6 +1752,12 @@ static void dwc_otg_pcd_work_init(dwc_otg_pcd_t *pcd, pldata->dwc_otg_uart_mode(pldata, PHY_USB_MODE); } schedule_delayed_work(&pcd->check_id_work, 8 * HZ); + if (otg_dev->core_if->usb_mode == USB_MODE_FORCE_DEVICE) { + pcd->vbus_status = 0; + dwc_otg_core_init(otg_dev->core_if); + cil_pcd_start(otg_dev->core_if); + dwc_otg_pcd_start_check_vbus_work(pcd); + } } #endif /* DWC_HOST_ONLY */