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>
This commit is contained in:
parent
e1eb3eb8b0
commit
ba7ee8bb31
|
@ -884,7 +884,7 @@ b_host:
|
||||||
dev_err(musb->controller, "Babble\n");
|
dev_err(musb->controller, "Babble\n");
|
||||||
|
|
||||||
if (is_host_active(musb)) {
|
if (is_host_active(musb)) {
|
||||||
musb_generic_disable(musb);
|
musb_disable_interrupts(musb);
|
||||||
schedule_delayed_work(&musb->recover_work,
|
schedule_delayed_work(&musb->recover_work,
|
||||||
msecs_to_jiffies(100));
|
msecs_to_jiffies(100));
|
||||||
}
|
}
|
||||||
|
@ -1838,8 +1838,10 @@ static void musb_recover_work(struct work_struct *data)
|
||||||
int status, ret;
|
int status, ret;
|
||||||
|
|
||||||
ret = musb_platform_reset(musb);
|
ret = musb_platform_reset(musb);
|
||||||
if (ret)
|
if (ret) {
|
||||||
|
musb_enable_interrupts(musb);
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
usb_phy_vbus_off(musb->xceiv);
|
usb_phy_vbus_off(musb->xceiv);
|
||||||
usleep_range(100, 200);
|
usleep_range(100, 200);
|
||||||
|
|
Loading…
Reference in New Issue