Re: [linux-usb-devel] Re: 2.6.13-mm2

Daniel Ritz
2005-09-28T22:07:30Z

On Wednesday 28 September 2005 23.07, David Brownell wrote:
> > > > ok. i didn't look too close, but i think ohci-hcd does not fully disable
> > > > interrupts in it's suspend callback...needs a closer look.
> > > > cc:ing linux-usb-devel...
> > >
> > > It's handled in hcd-pci.c ... All PCI based HCDs release their IRQs
> > > when they suspend. Including OHCI. Your diagnosis is incorrect.
> >
> > would you be kind enough to tell me where?
>
> There's only one free_irq() line, and it gets called the first time
> through usb_hcd_pci_suspend(). QED.

errm yes. that's the one my test patch commented out. but that was really
not what i was asking/telling. so again:
to me it looks like ohci-hcd does not fully disable interrupts on suspend.
disable (read: tell the hardware not to generate interrupts anymore), not
releasing the handler.

>
>
> > my point is: the test patch i sent to rafael which comments out the
> > free_irq-on-suspend thing in hcd-pci.c shows that something is wrong with
> > USB (i think only OHCI. UHCI looks ok and about EHCI i have no data).
>
> Your logic escapes me, since your patch affected all three PCI HCDs.
> If that's wrong for one, its wrong for all three.

to me it seems there is code in uhci-hcd that tells the hardware not
to generate interrupts anymore. for ohci i think this is missing and
for ehci i simply didn't bother to check at all.

>
> And as I just commented to Rafael, here are two better things to try
> instead of believing a diagnosis that's clearly wrong:
>
> - 2.6.14-rc2
> - disabling USB keyboard/mouse/... support in your BIOS
>
> I know there are bugs in the "usb-handoff" PCI quirk code; the folk who've
> collected those code fragments didn't bother to match the code in the HCDs,
> and the differences can matter [1]. The best way to avoid such stuff is
> still to make sure that your BIOS just ignores USB.
>
> - Dave
>
> [1] http://marc.theaimsgroup.com/?l=linux-usb-devel&m=112745488924651&w=2
>
>
rgds
-daniel