aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/musb/musb_virthub.c
diff options
context:
space:
mode:
authorFelipe Balbi <balbi@ti.com>2015-06-02 13:03:36 -0500
committerFelipe Balbi <balbi@ti.com>2015-07-06 12:34:07 -0500
commitbe9d39881fc4fa39a64b6eed6bab5d9ee5125344 (patch)
treebe10dce2222dcfd16d6d0bed80fb410a53a9a147 /drivers/usb/musb/musb_virthub.c
parentLinux 4.2-rc1 (diff)
downloadlinux-dev-be9d39881fc4fa39a64b6eed6bab5d9ee5125344.tar.xz
linux-dev-be9d39881fc4fa39a64b6eed6bab5d9ee5125344.zip
usb: musb: host: rely on port_mode to call musb_start()
Currently, we're calling musb_start() twice for DRD ports in some situations. This has been observed to cause enumeration issues after suspend/resume cycles with AM335x. In order to fix the problem, we just have to fix the check on musb_has_gadget() so that it only returns true if current mode is Host and ignore the fact that we have or not a gadget driver loaded. Fixes: ae44df2e21b5 (usb: musb: call musb_start() only once in OTG mode) Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Cc: <stable@vger.kernel.org> # v3.11+ Tested-by: Sekhar Nori <nsekhar@ti.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/musb/musb_virthub.c')
-rw-r--r--drivers/usb/musb/musb_virthub.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/usb/musb/musb_virthub.c b/drivers/usb/musb/musb_virthub.c
index 30842bc195f5..92d5f718659b 100644
--- a/drivers/usb/musb/musb_virthub.c
+++ b/drivers/usb/musb/musb_virthub.c
@@ -275,9 +275,7 @@ static int musb_has_gadget(struct musb *musb)
#ifdef CONFIG_USB_MUSB_HOST
return 1;
#else
- if (musb->port_mode == MUSB_PORT_MODE_HOST)
- return 1;
- return musb->g.dev.driver != NULL;
+ return musb->port_mode == MUSB_PORT_MODE_HOST;
#endif
}