diff -Nru a/arch/mips/au1000/common/irq.c b/arch/mips/au1000/common/irq.c --- a/arch/mips/au1000/common/irq.c Fri Feb 27 14:22:51 2004 +++ b/arch/mips/au1000/common/irq.c Fri Feb 27 14:22:51 2004 @@ -458,7 +458,14 @@ intc0_req0 |= au_readl(IC0_REQ0INT); if (!intc0_req0) return; - +#if 0 + /* + * This is no longer required. The find first bit operation + * is almost as fast at finding the correct interrupt, whereas + * leaving this in adds a small amount of overhead to all other + * interrupts and therefore induces more latency which may + * actually cause USB problems. + */ /* * Because of the tight timing of SETUP token to reply * transactions, the USB devices-side packet complete @@ -469,7 +476,7 @@ do_IRQ(AU1000_USB_DEV_REQ_INT, regs); return; } - +#endif irq = au_ffs(intc0_req0) - 1; intc0_req0 &= ~(1<