summaryrefslogtreecommitdiffstats
path: root/drivers/usb/musb
diff options
context:
space:
mode:
authorFelipe Balbi <balbi@ti.com>2015-02-26 18:31:49 +0100
committerFelipe Balbi <balbi@ti.com>2015-03-10 21:33:28 +0100
commitba7ee8bb313c4a55066c4da30292aeb9abac82d8 (patch)
tree994a835107ef9b4efc5c7a97bb4a1c3d457b8608 /drivers/usb/musb
parentusb: musb: core: refactor IRQ enable/disable to separate functions (diff)
downloadlinux-ba7ee8bb313c4a55066c4da30292aeb9abac82d8.tar.xz
linux-ba7ee8bb313c4a55066c4da30292aeb9abac82d8.zip
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>
Diffstat (limited to 'drivers/usb/musb')
-rw-r--r--drivers/usb/musb/musb_core.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
index 8ae24266f1a8..a4e524cb8416 100644
--- a/drivers/usb/musb/musb_core.c
+++ b/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);