USB: u132-hcd: host controller driver for ELAN U132 adapter
This "u132-hcd" module is one half of the "driver" for ELAN's U132 which is a USB to CardBus OHCI controller adapter. This module needs the "ftdi-elan" module in order to communicate to CardBus OHCI controller inserted into the U132 adapter. When the "ftdi-elan" module detects a supported CardBus OHCI controller in the U132 adapter it loads this "u132-hcd" module. Upon a successful device probe() the single workqueue is started up which does all the processing of commands from the USB core that implement the host controller. The workqueue maintains the urb queues and issues commands via the functions exported by the "ftdi-elan" module. Each such command will result in a callback. Note that the "ftdi-elan" module is a USB client driver. Note that this "u132-hcd" module is a (cut-down OHCI) host controller. Thus we have a topology with the parent of a host controller being a USB client! This really stresses the USB subsystem semaphore/mutex handling in the module removal. Signed-off-by: Tony Olech <tony.olech@elandigitalsystems.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
a5c66e4b24
commit
d774efeabc
|
@ -14,6 +14,7 @@ obj-$(CONFIG_USB_ISP116X_HCD) += host/
|
||||||
obj-$(CONFIG_USB_OHCI_HCD) += host/
|
obj-$(CONFIG_USB_OHCI_HCD) += host/
|
||||||
obj-$(CONFIG_USB_UHCI_HCD) += host/
|
obj-$(CONFIG_USB_UHCI_HCD) += host/
|
||||||
obj-$(CONFIG_USB_SL811_HCD) += host/
|
obj-$(CONFIG_USB_SL811_HCD) += host/
|
||||||
|
obj-$(CONFIG_USB_U132_HCD) += host/
|
||||||
obj-$(CONFIG_ETRAX_USB_HOST) += host/
|
obj-$(CONFIG_ETRAX_USB_HOST) += host/
|
||||||
obj-$(CONFIG_USB_OHCI_AT91) += host/
|
obj-$(CONFIG_USB_OHCI_AT91) += host/
|
||||||
|
|
||||||
|
|
|
@ -142,6 +142,34 @@ config USB_UHCI_HCD
|
||||||
To compile this driver as a module, choose M here: the
|
To compile this driver as a module, choose M here: the
|
||||||
module will be called uhci-hcd.
|
module will be called uhci-hcd.
|
||||||
|
|
||||||
|
config USB_U132_HCD
|
||||||
|
tristate "Elan U132 Adapter Host Controller"
|
||||||
|
depends on USB && USB_FTDI_ELAN
|
||||||
|
default M
|
||||||
|
help
|
||||||
|
The U132 adapter is a USB to CardBus adapter specifically designed
|
||||||
|
for PC cards that contain an OHCI host controller. Typical PC cards
|
||||||
|
are the Orange Mobile 3G Option GlobeTrotter Fusion card. The U132
|
||||||
|
adapter will *NOT* work with PC cards that do not contain an OHCI
|
||||||
|
controller.
|
||||||
|
|
||||||
|
For those PC cards that contain multiple OHCI controllers only ther
|
||||||
|
first one is used.
|
||||||
|
|
||||||
|
The driver consists of two modules, the "ftdi-elan" module is a
|
||||||
|
USB client driver that interfaces to the FTDI chip within ELAN's
|
||||||
|
USB-to-PCMCIA adapter, and this "u132-hcd" module is a USB host
|
||||||
|
controller driver that talks to the OHCI controller within the
|
||||||
|
CardBus cards that are inserted in the U132 adapter.
|
||||||
|
|
||||||
|
This driver has been tested with a CardBus OHCI USB adapter, and
|
||||||
|
worked with a USB PEN Drive inserted into the first USB port of
|
||||||
|
the PCCARD. A rather pointless thing to do, but useful for testing.
|
||||||
|
|
||||||
|
It is safe to say M here.
|
||||||
|
|
||||||
|
See also <http://www.elandigitalsystems.com/support/ufaq/u132linux.php>
|
||||||
|
|
||||||
config USB_SL811_HCD
|
config USB_SL811_HCD
|
||||||
tristate "SL811HS HCD support"
|
tristate "SL811HS HCD support"
|
||||||
depends on USB
|
depends on USB
|
||||||
|
|
|
@ -14,4 +14,5 @@ obj-$(CONFIG_USB_OHCI_HCD) += ohci-hcd.o
|
||||||
obj-$(CONFIG_USB_UHCI_HCD) += uhci-hcd.o
|
obj-$(CONFIG_USB_UHCI_HCD) += uhci-hcd.o
|
||||||
obj-$(CONFIG_USB_SL811_HCD) += sl811-hcd.o
|
obj-$(CONFIG_USB_SL811_HCD) += sl811-hcd.o
|
||||||
obj-$(CONFIG_USB_SL811_CS) += sl811_cs.o
|
obj-$(CONFIG_USB_SL811_CS) += sl811_cs.o
|
||||||
|
obj-$(CONFIG_USB_U132_HCD) += u132-hcd.o
|
||||||
obj-$(CONFIG_ETRAX_ARCH_V10) += hc_crisv10.o
|
obj-$(CONFIG_ETRAX_ARCH_V10) += hc_crisv10.o
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue