usb: musb: omap2430: Wait on enable to avoid babble
authorTony Lindgren <tony@atomide.com>
Wed, 15 Jan 2020 13:25:27 +0000 (07:25 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 15 Jan 2020 13:46:55 +0000 (14:46 +0100)
We can get babble interrupt if we attempt to switch to USB host mode too
soon after enabling musb. Let's fix the issue by waiting a bit in
runtime_resume.

Cc: Jacopo Mondi <jacopo@jmondi.org>
Cc: Marcel Partap <mpartap@gmx.net>
Cc: Merlijn Wajer <merlijn@wizzup.org>
Cc: Michael Scott <hashcode0f@gmail.com>
Cc: NeKit <nekit1000@gmail.com>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Sebastian Reichel <sre@kernel.org>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Bin Liu <b-liu@ti.com>
Link: https://lore.kernel.org/r/20200115132547.364-6-b-liu@ti.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/musb/omap2430.c

index 5c93226e0e20a5971654a7c802e58afb75f20806..920862c3fc64432387d7c410f33967ab2c948df4 100644 (file)
@@ -550,6 +550,9 @@ static int omap2430_runtime_resume(struct device *dev)
        musb_writel(musb->mregs, OTG_INTERFSEL,
                    musb->context.otg_interfsel);
 
+       /* Wait for musb to get oriented. Otherwise we can get babble */
+       usleep_range(200000, 250000);
+
        return 0;
 }