|
@@ -171,8 +171,9 @@ static irqreturn_t blackfin_interrupt(int irq, void *__hci)
|
|
|
}
|
|
|
|
|
|
/* Start sampling ID pin, when plug is removed from MUSB */
|
|
|
- if (is_otg_enabled(musb) && (musb->xceiv->state == OTG_STATE_B_IDLE
|
|
|
- || musb->xceiv->state == OTG_STATE_A_WAIT_BCON)) {
|
|
|
+ if ((is_otg_enabled(musb) && (musb->xceiv->state == OTG_STATE_B_IDLE
|
|
|
+ || musb->xceiv->state == OTG_STATE_A_WAIT_BCON)) ||
|
|
|
+ (musb->int_usb & MUSB_INTR_DISCONNECT && is_host_active(musb))) {
|
|
|
mod_timer(&musb_conn_timer, jiffies + TIMER_DELAY);
|
|
|
musb->a_wait_bcon = TIMER_DELAY;
|
|
|
}
|