We want to configure musb state in omap2430_musb_enable() instead of
omap2430_musb_init(). Otherwise musb may not idle properly until
USB cable has been connected at least once.

And we already have omap_musb_set_mailbox() configure mode with
omap_control_usb_set_mode() so we can remove those calls from
omap2430_musb_enable().

Cc: Jacopo Mondi <jac...@jmondi.org>
Cc: Marcel Partap <mpar...@gmx.net>
Cc: Merlijn Wajer <merl...@wizzup.org>
Cc: Michael Scott <hashcod...@gmail.com>
Cc: NeKit <nekit1...@gmail.com>
Cc: Pavel Machek <pa...@ucw.cz>
Cc: Sebastian Reichel <s...@kernel.org>
Signed-off-by: Tony Lindgren <t...@atomide.com>
---
 drivers/usb/musb/omap2430.c | 20 +++-----------------
 1 file changed, 3 insertions(+), 17 deletions(-)

diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c
--- a/drivers/usb/musb/omap2430.c
+++ b/drivers/usb/musb/omap2430.c
@@ -211,7 +211,6 @@ static int omap2430_musb_init(struct musb *musb)
        u32 l;
        int status = 0;
        struct device *dev = musb->controller;
-       struct omap2430_glue *glue = dev_get_drvdata(dev->parent);
        struct musb_hdrc_platform_data *plat = dev_get_platdata(dev);
        struct omap_musb_board_data *data = plat->board_data;
 
@@ -267,9 +266,6 @@ static int omap2430_musb_init(struct musb *musb)
                        musb_readl(musb->mregs, OTG_INTERFSEL),
                        musb_readl(musb->mregs, OTG_SIMENABLE));
 
-       if (glue->status != MUSB_UNKNOWN)
-               omap_musb_set_mailbox(glue);
-
        return 0;
 }
 
@@ -278,19 +274,9 @@ static void omap2430_musb_enable(struct musb *musb)
        struct device *dev = musb->controller;
        struct omap2430_glue *glue = dev_get_drvdata(dev->parent);
 
-       switch (glue->status) {
-
-       case MUSB_ID_GROUND:
-               omap_control_usb_set_mode(glue->control_otghs, USB_MODE_HOST);
-               break;
-
-       case MUSB_VBUS_VALID:
-               omap_control_usb_set_mode(glue->control_otghs, USB_MODE_DEVICE);
-               break;
-
-       default:
-               break;
-       }
+       if (glue->status == MUSB_UNKNOWN)
+               glue->status = MUSB_VBUS_OFF;
+       omap_musb_set_mailbox(glue);
 }
 
 static void omap2430_musb_disable(struct musb *musb)
-- 
2.23.0

Reply via email to