blob: 99320d9fa523adda36fb8e05e5687186c7b0c8a9 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -0700123-Aug-2002
2
3The "ohci-hcd" driver is a USB Host Controller Driver (HCD) that is derived
4from the "usb-ohci" driver from the 2.4 kernel series. The "usb-ohci" code
5was written primarily by Roman Weissgaerber <weissg@vienna.at> but with
6contributions from many others (read its copyright/licencing header).
7
8It supports the "Open Host Controller Interface" (OHCI), which standardizes
9hardware register protocols used to talk to USB 1.1 host controllers. As
10compared to the earlier "Universal Host Controller Interface" (UHCI) from
11Intel, it pushes more intelligence into the hardware. USB 1.1 controllers
12from vendors other than Intel and VIA generally use OHCI.
13
14Changes since the 2.4 kernel include
15
16 - improved robustness; bugfixes; and less overhead
17 - supports the updated and simplified usbcore APIs
18 - interrupt transfers can be larger, and can be queued
19 - less code, by using the upper level "hcd" framework
20 - supports some non-PCI implementations of OHCI
21 - ... more
22
23The "ohci-hcd" driver handles all USB 1.1 transfer types. Transfers of all
24types can be queued. That was also true in "usb-ohci", except for interrupt
25transfers. Previously, using periods of one frame would risk data loss due
26to overhead in IRQ processing. When interrupt transfers are queued, those
27risks can be minimized by making sure the hardware always has transfers to
28work on while the OS is getting around to the relevant IRQ processing.
29
30- David Brownell
31 <dbrownell@users.sourceforge.net>
32