Kaynağa Gözat

usb: musb: don't touch devctl from babble recovery

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>
Felipe Balbi 10 yıl önce
ebeveyn
işleme
ba7ee8bb31
1 değiştirilmiş dosya ile 4 ekleme ve 2 silme
  1. 4 2
      drivers/usb/musb/musb_core.c

+ 4 - 2
drivers/usb/musb/musb_core.c

@@ -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);