diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c index ecf2219ebc78e538bf497b86c1d46fbdde6e7dda..3916e73abf7d2330310613c44804e70803c5ca34 100644 --- a/drivers/usb/musb/musb_core.c +++ b/drivers/usb/musb/musb_core.c @@ -507,7 +507,6 @@ void musb_hnp_stop(struct musb *musb) musb->port1_status &= ~(USB_PORT_STAT_C_CONNECTION << 16); } -static void musb_disable_interrupts(struct musb *musb); static void musb_recover_from_babble(struct musb *musb); /* @@ -883,10 +882,8 @@ static irqreturn_t musb_stage0_irq(struct musb *musb, u8 int_usb, if (power & MUSB_POWER_HSMODE) { dev_err(musb->controller, "Babble\n"); - if (is_host_active(musb)) { - musb_disable_interrupts(musb); + if (is_host_active(musb)) musb_recover_from_babble(musb); - } } } else { dev_dbg(musb->controller, "BUS RESET as %s\n", @@ -1835,6 +1832,8 @@ static void musb_recover_from_babble(struct musb *musb) int ret; u8 devctl; + musb_disable_interrupts(musb); + /* * wait at least 320 cycles of 60MHz clock. That's 5.3us, we will give * it some slack and wait for 10us.