]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
usb: musb: unconditionally save and restore the context on suspend
authorDaniel Mack <zonque@gmail.com>
Mon, 25 Nov 2013 21:26:40 +0000 (22:26 +0100)
committerFelipe Balbi <balbi@ti.com>
Tue, 26 Nov 2013 16:35:15 +0000 (10:35 -0600)
It appears not all platforms featuring a musb core need to save the musb
core registers at suspend time and restore them on resume.

The dsps platform does, however, and because it shouldn't cause any
trouble on other platforms, do it unconditionally for all of them.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/musb/musb_core.c

index 377ef9b29c73832aec90b325ebe69d9b41103696..ac96e4ce7e954f9365f8a2087d70c6ebd611d72f 100644 (file)
@@ -2224,16 +2224,28 @@ static int musb_suspend(struct device *dev)
                 */
        }
 
+       musb_save_context(musb);
+
        spin_unlock_irqrestore(&musb->lock, flags);
        return 0;
 }
 
 static int musb_resume_noirq(struct device *dev)
 {
-       /* for static cmos like DaVinci, register values were preserved
+       struct musb     *musb = dev_to_musb(dev);
+
+       /*
+        * For static cmos like DaVinci, register values were preserved
         * unless for some reason the whole soc powered down or the USB
         * module got reset through the PSC (vs just being disabled).
+        *
+        * For the DSPS glue layer though, a full register restore has to
+        * be done. As it shouldn't harm other platforms, we do it
+        * unconditionally.
         */
+
+       musb_restore_context(musb);
+
        return 0;
 }