|
@@ -858,8 +858,13 @@ static irqreturn_t ehci_irq (struct usb_hcd *hcd)
|
|
goto dead;
|
|
goto dead;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
+ * We don't use STS_FLR, but some controllers don't like it to
|
|
|
|
+ * remain on, so mask it out along with the other status bits.
|
|
|
|
+ */
|
|
|
|
+ masked_status = status & (INTR_MASK | STS_FLR);
|
|
|
|
+
|
|
/* Shared IRQ? */
|
|
/* Shared IRQ? */
|
|
- masked_status = status & INTR_MASK;
|
|
|
|
if (!masked_status || unlikely(ehci->rh_state == EHCI_RH_HALTED)) {
|
|
if (!masked_status || unlikely(ehci->rh_state == EHCI_RH_HALTED)) {
|
|
spin_unlock(&ehci->lock);
|
|
spin_unlock(&ehci->lock);
|
|
return IRQ_NONE;
|
|
return IRQ_NONE;
|