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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html