On Tue, 13 May 2014, Dr. Werner Fink wrote: > On Tue, May 13, 2014 at 06:10:46PM +0200, Dr. Werner Fink wrote: > > On Tue, May 13, 2014 at 11:59:38AM -0400, Alan Stern wrote: > > > > > > What about something like this instead? > > > > > > masked_status = status & (INTR_MASK | STS_FLR); > > > > > > /* Shared IRQ? */ > > > if (!masked_status || unlikely(ehci->rh_state == EHCI_RH_HALTED)) { > > > + if (status & STS_RECL) { > > > + ehci_writel(ehci, STS_RECL, &ehci->regs->status); > > > + ehci_readl(ehci, &ehci->regs->status); > > > + } > > > spin_unlock_irqrestore(&ehci->lock, flags); > > > return IRQ_NONE; > > > } > > > > > > That should do about the same thing as your change, except for > > > returning IRQ_NONE rather than IRQ_HANDLED. > > > > I'll forward this to my home to try it out. It will take some time > > as my wife is also working on this system. Nevertheless I'm curious > > about it. > > The code is active now: ... > it works. Does it still work if you omit the ehci_readl() call? If you want to submit a patch containing this fix, please add a quirk flag for it. And a comment explaining why the ehci_writel() call is needed. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html