usb: musb: don't touch devctl from babble recovery
authorFelipe Balbi <balbi@ti.com>
Thu, 26 Feb 2015 17:31:49 +0000 (11:31 -0600)
committerFelipe Balbi <balbi@ti.com>
Tue, 10 Mar 2015 20:33:28 +0000 (15:33 -0500)
We do *not* want to touch devctl at all when
trying to recover from babble. All we want to
do is mask IRQs until we're done without our
babble recovery, at which point we will unmask
IRQs.

Tested-by: Bin Liu <b-liu@ti.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/musb/musb_core.c

index 8ae24266f1a8b07ae56497cc2331d9c12ee4944c..a4e524cb841660b3942266417e25bc74ed6fe27e 100644 (file)
@@ -884,7 +884,7 @@ b_host:
                                dev_err(musb->controller, "Babble\n");
 
                                if (is_host_active(musb)) {
-                                       musb_generic_disable(musb);
+                                       musb_disable_interrupts(musb);
                                        schedule_delayed_work(&musb->recover_work,
                                                        msecs_to_jiffies(100));
                                }
@@ -1838,8 +1838,10 @@ static void musb_recover_work(struct work_struct *data)
        int status, ret;
 
        ret  = musb_platform_reset(musb);
-       if (ret)
+       if (ret) {
+               musb_enable_interrupts(musb);
                return;
+       }
 
        usb_phy_vbus_off(musb->xceiv);
        usleep_range(100, 200);