Well, there's an "upper layer" (usb/core/hcd.c in 2.5) that's not specific to EHCI ... there's kerneldoc for that. You may want to start from there.
"usb-ohci" has been converted to use it (and renamed as "ohci-hcd"). Think of it making HCDs about a third smaller than they would be otherwise. (That's just by comparing object code sizes for OHCI.) And likewise removing places for HC-specific bugs to nest. That layer can/should assume more responsibility, too. I'm not quite clear what you mean by "implementation dependent parts". Do you mean HC-specific bits, where the "Enhanced", "Open", or "Universal" Host Controller Interfaces (EHCI, OHCI, UHCI) implement USB requests differently? Or vendor-specific bits, where one chip vendor implements things differently? (I'd tend to call such code workarounds for chip bugs/quirks, and there aren't really any in the EHCI code today.) As a rule, I don't think you'll find documentation other than the source code for such driver internals. Read them in conjunction with the HCI and USB specs, and be glad the ehci-hcd comments are accurate! - Dave ----- Original Message ----- From: "Peter Weatherall" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, May 01, 2002 8:35 AM Subject: [linux-usb-devel] ehci driver implementation > Is there any documentation on how the Linuix EHCI implementation works, > apart from the comments embedded in the > source ? I have the EHCI spec., but I'm interested in how all the > implementation dependent parts operate together. > Thanks > Peter >
