0001 ====
0002 OHCI
0003 ====
0004
0005 23-Aug-2002
0006
0007 The "ohci-hcd" driver is a USB Host Controller Driver (HCD) that is derived
0008 from the "usb-ohci" driver from the 2.4 kernel series. The "usb-ohci" code
0009 was written primarily by Roman Weissgaerber <weissg@vienna.at> but with
0010 contributions from many others (read its copyright/licencing header).
0011
0012 It supports the "Open Host Controller Interface" (OHCI), which standardizes
0013 hardware register protocols used to talk to USB 1.1 host controllers. As
0014 compared to the earlier "Universal Host Controller Interface" (UHCI) from
0015 Intel, it pushes more intelligence into the hardware. USB 1.1 controllers
0016 from vendors other than Intel and VIA generally use OHCI.
0017
0018 Changes since the 2.4 kernel include
0019
0020 - improved robustness; bugfixes; and less overhead
0021 - supports the updated and simplified usbcore APIs
0022 - interrupt transfers can be larger, and can be queued
0023 - less code, by using the upper level "hcd" framework
0024 - supports some non-PCI implementations of OHCI
0025 - ... more
0026
0027 The "ohci-hcd" driver handles all USB 1.1 transfer types. Transfers of all
0028 types can be queued. That was also true in "usb-ohci", except for interrupt
0029 transfers. Previously, using periods of one frame would risk data loss due
0030 to overhead in IRQ processing. When interrupt transfers are queued, those
0031 risks can be minimized by making sure the hardware always has transfers to
0032 work on while the OS is getting around to the relevant IRQ processing.
0033
0034 - David Brownell
0035 <dbrownell@users.sourceforge.net>