[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-usb-devel
Subject: Re: [linux-usb-devel] EHCI & OHCI interrupt weirdness
From: David Brownell <david-b () pacbell ! net>
Date: 2005-01-19 19:20:38
Message-ID: 200501191120.38966.david-b () pacbell ! net
[Download RAW message or body]
On Wednesday 19 January 2005 9:51 am, Jesse Barnes wrote:
> On Tuesday, January 18, 2005 5:39 pm, David Brownell wrote:
> > > Does it matter which driver I load first, ehci or ohci?
> >
> > I recommend EHCI first, to minimize resetting of USB devices during
> > initialization and simplify the PM resume scenarios. Other than
> > that issue, it's not supposed to matter.
>
> 66: 0 4407 0 0 SN hub ohci_hcd
> 67: 0 517 0 0 SN hub ohci_hcd,
> ehci
>
> [Above is after loading ohci first--a working setup. If I load ehci first,
> irq 66 spins out of control and is eventually shut off by the kernel because
> of too many IRQ_NONE returns.]
What happens when you load EHCI _only_ ? Normally loading that driver
won't cause any interrupts at all, until some device is connected.
Then there are basically two paths: (a) it's a full/low speed device,
handled by OHCI (or on some cards, UHCI); or (b) it's a high speed device,
handled by EHCI. To test the latter, I suggest you grab a USB 2.0 hub;
the slim 4 port ones using Mini-B connectors, just a bit bigger than a
credit card, are the most featureful. (They have Cypress chips that have
a transaction translator on each port; which means you can hook up a lot
more full and low speed devices downstream. All controlled by EHCI.)
> How is this supposed to work?
Perfectly! Or at least as far as a small flotilla of penguins can
achieve such a thing before taking a break for some pickled herring! :)
> I've just tested again and things work ok as
> long as I load ohci first. The interrupts seem to be getting assigned
> correctly by the BIOS (there are supposed to be two of them, right?), but it
> looks like if ehci registers its interrupt handler first, it just returns
> IRQ_NONE, causing hcd_irq to not handle irq 66, which is apparently the usb
> 1.1 ohci controller.
Maybe you have issues with IRQ sharing? You said this was a NEC card;
and those work fine for most folk. I've got one in a K7 box here, and
it doesn't have those init problems. Two OHCI controllers, one EHCI;
IRQ sharing as arranged by your BIOS, typically the card puts each
controller on a separate IRQ line but the PCI IRQ routing ends up
sharing things. (On that box I've got two EHCIs and six OHCIs, lots
of sharing, no problems.)
- Dave
>
> Thanks,
> Jesse
>
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic