]> pilppa.com Git - linux-2.6-omap-h63xx.git/commitdiff
USB: MUSB: Be sure that we enable musb->clock
authorFelipe Balbi <felipe.balbi@nokia.com>
Thu, 3 Apr 2008 13:59:37 +0000 (16:59 +0300)
committerTony Lindgren <tony@atomide.com>
Fri, 4 Apr 2008 09:41:46 +0000 (12:41 +0300)
If CONFIG_OMAP_RESET_CLOCKS is enabled, musb->clock would
be disabled because nobody was enabling it.

Be sure that omap2430.c enables musb->clock to avoid problems
later.

Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
drivers/usb/musb/omap2430.c

index 8041ddecec419f79807b2278e80be15444f78a51..c21d93ac7e478de057dab5afe8d7e7a0d9da9ea6 100644 (file)
@@ -246,6 +246,9 @@ int __init musb_platform_init(struct musb *musb)
 
 int musb_platform_suspend(struct musb *musb)
 {
+       if (!musb->clock)
+               return 0;
+
        /* in any role */
        OTG_FORCESTDBY_REG &= ~ENABLEFORCE; /* disable MSTANDBY */
        OTG_SYSCONFIG_REG &= FORCESTDBY;        /* enable force standby */
@@ -257,14 +260,27 @@ int musb_platform_suspend(struct musb *musb)
        if (musb->xceiv.set_suspend)
                musb->xceiv.set_suspend(&musb->xceiv, 1);
 
+       if (musb->set_clock)
+               musb->set_clock(musb->clock, 0);
+       else
+               clk_disable(musb->clock);
+
        return 0;
 }
 
 int musb_platform_resume(struct musb *musb)
 {
+       if (!musb->clock)
+               return 0;
+
        if (musb->xceiv.set_suspend)
                musb->xceiv.set_suspend(&musb->xceiv, 0);
 
+       if (musb->set_clock)
+               musb->set_clock(musb->clock, 1);
+       else
+               clk_enable(musb->clock);
+
        OTG_FORCESTDBY_REG &= ~ENABLEFORCE; /* disable MSTANDBY */
        OTG_SYSCONFIG_REG |= SMARTSTDBY;        /* enable smart standby */
        OTG_SYSCONFIG_REG &= ~AUTOIDLE;         /* disable auto idle */