- /* Acknowledge the interrupt */
- irq_pending |= 0x3;
- xhci_writel(xhci, irq_pending, &xhci->ir_set->irq_pending);
+ if (hcd->irq != -1) {
+ u32 irq_pending;
+ /* Acknowledge the PCI interrupt */
+ irq_pending = xhci_readl(xhci, &xhci->ir_set->irq_pending);
+ irq_pending |= 0x3;
+ xhci_writel(xhci, irq_pending, &xhci->ir_set->irq_pending);
+ }