From 260fe29a581e6d8c1f83132f2582f915d39915ab Mon Sep 17 00:00:00 2001 From: Peter Chen Date: Fri, 12 Jul 2013 13:45:49 +0800 Subject: ENGR00270802 usb: otg: delete redundant vbus off operation The problem locates at: fsl_otg_start_host(fsm, 0); if (pdata->wake_up_enable) pdata->wake_up_enable(pdata, false); otg_drv_vbus(fsm, 0); fsl_otg_start_host(fsm, 0) internally calls fsl_otg_drv_vbus(), which does the same thing as otg_drv_vbus(fsm, 0). More critically, we need disable VBUS wakeup before close VBUS operation, otherwise unexpected VBUS wakeup will occur. The solution is to remove the call of fsl_otg_drv_vbus() in fsl_otg_start_host(). Signed-off-by: Peter Chen --- drivers/usb/otg/fsl_otg.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/drivers/usb/otg/fsl_otg.c b/drivers/usb/otg/fsl_otg.c index 00bd2e609525..7205f37c5213 100755 --- a/drivers/usb/otg/fsl_otg.c +++ b/drivers/usb/otg/fsl_otg.c @@ -551,13 +551,9 @@ int fsl_otg_start_host(struct otg_fsm *fsm, int on) goto end; else { VDBG("host off......\n"); - if (host_pdrv->suspend) { + if (host_pdrv->suspend) retval = host_pdrv->suspend(host_pdev, otg_suspend_state); - if (fsm->id) - /* default-b */ - fsl_otg_drv_vbus(dev->platform_data, 0); - } otg_dev->host_working = 0; } } -- cgit v1.2.3