|
@@ -1168,20 +1168,6 @@ int usb_hcd_check_unlink_urb(struct usb_hcd *hcd, struct urb *urb,
|
|
|
if (urb->unlinked)
|
|
|
return -EBUSY;
|
|
|
urb->unlinked = status;
|
|
|
-
|
|
|
- /* IRQ setup can easily be broken so that USB controllers
|
|
|
- * never get completion IRQs ... maybe even the ones we need to
|
|
|
- * finish unlinking the initial failed usb_set_address()
|
|
|
- * or device descriptor fetch.
|
|
|
- */
|
|
|
- if (!HCD_SAW_IRQ(hcd) && !is_root_hub(urb->dev)) {
|
|
|
- dev_warn(hcd->self.controller, "Unlink after no-IRQ? "
|
|
|
- "Controller is probably using the wrong IRQ.\n");
|
|
|
- set_bit(HCD_FLAG_SAW_IRQ, &hcd->flags);
|
|
|
- if (hcd->shared_hcd)
|
|
|
- set_bit(HCD_FLAG_SAW_IRQ, &hcd->shared_hcd->flags);
|
|
|
- }
|
|
|
-
|
|
|
return 0;
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(usb_hcd_check_unlink_urb);
|
|
@@ -2148,16 +2134,12 @@ irqreturn_t usb_hcd_irq (int irq, void *__hcd)
|
|
|
*/
|
|
|
local_irq_save(flags);
|
|
|
|
|
|
- if (unlikely(HCD_DEAD(hcd) || !HCD_HW_ACCESSIBLE(hcd))) {
|
|
|
+ if (unlikely(HCD_DEAD(hcd) || !HCD_HW_ACCESSIBLE(hcd)))
|
|
|
rc = IRQ_NONE;
|
|
|
- } else if (hcd->driver->irq(hcd) == IRQ_NONE) {
|
|
|
+ else if (hcd->driver->irq(hcd) == IRQ_NONE)
|
|
|
rc = IRQ_NONE;
|
|
|
- } else {
|
|
|
- set_bit(HCD_FLAG_SAW_IRQ, &hcd->flags);
|
|
|
- if (hcd->shared_hcd)
|
|
|
- set_bit(HCD_FLAG_SAW_IRQ, &hcd->shared_hcd->flags);
|
|
|
+ else
|
|
|
rc = IRQ_HANDLED;
|
|
|
- }
|
|
|
|
|
|
local_irq_restore(flags);
|
|
|
return rc;
|