[PATCH] USB: Eagle and ADI 930 usb adsl modem driver

A driver for USB ADSL modems based on the ADI eagle chipset using the
usb_atm infrastructure.

The managing part was taken from bsd ueagle driver, other parts were
written from scratch.

The driver uses the in-kernel firmware loader :
- to load  a first usb firmware when the modem is in pre-firmware state
- to load the dsp firmware that are swapped in host memory.
- to load CMV (configuration and management variables) when the modem
boot. (We can't use options or sysfs for this as there many possible
values. See
https://mail.gna.org/public/eagleusb-dev/2005-04/msg00031.html for a
description of some)
- to load fpga code for 930 chipset.

The device had 4 endpoints :
* 2 for data (use by usbatm). The incoming
endpoint could be iso or bulk. The modem seems buggy and produce lot's
of atm errors when using it in bulk mode for speed > 3Mbps, so iso
endpoint is need for speed > 3Mbps. At the moment iso endpoint need a
patched usbatm library and for this reason is not included in this patch.

* One bulk endpoint for uploading dsp firmware

* One irq endpoint that notices the driver
    - if we need to upload a page of the dsp firmware
    - an ack for read or write CMV and the value (for the read case).

If order to make the driver cleaner, we design synchronous
(read|write)_cmv :
-send a synchronous control message to the modem
-wait for an ack or a timeout
-return the value if needed.

In order to run these synchronous usb messages we need a kernel thread.

The driver has been tested  with sagem fast 800 modems with different
eagle chipset revision and with ADI 930 since April 2005.

Signed-off-by: Matthieu CASTET <castet.matthieu@free.fr>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
matthieu castet 2005-11-07 23:27:13 +01:00 committed by Greg Kroah-Hartman
parent 6912354a89
commit b72458a80c
3 changed files with 1827 additions and 0 deletions

View File

@ -44,6 +44,19 @@ config USB_CXACRU
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 cxacru. module will be called cxacru.
config USB_UEAGLEATM
tristate "ADI 930 and eagle USB DSL modem"
depends on USB_ATM
select FW_LOADER
help
Say Y here if you have an ADSL USB modem based on the ADI 930
or eagle chipset. In order to use your modem you will need to
install firmwares and CMV (Command Management Variables); see
<https://gna.org/projects/ueagleatm/> for details.
To compile this driver as a module, choose M here: the
module will be called ueagle-atm.
config USB_XUSBATM config USB_XUSBATM
tristate "Other USB DSL modem support" tristate "Other USB DSL modem support"
depends on USB_ATM depends on USB_ATM

View File

@ -4,6 +4,7 @@
obj-$(CONFIG_USB_CXACRU) += cxacru.o obj-$(CONFIG_USB_CXACRU) += cxacru.o
obj-$(CONFIG_USB_SPEEDTOUCH) += speedtch.o obj-$(CONFIG_USB_SPEEDTOUCH) += speedtch.o
obj-$(CONFIG_USB_UEAGLEATM) += ueagle-atm.o
obj-$(CONFIG_USB_ATM) += usbatm.o obj-$(CONFIG_USB_ATM) += usbatm.o
obj-$(CONFIG_USB_XUSBATM) += xusbatm.o obj-$(CONFIG_USB_XUSBATM) += xusbatm.o

1813
drivers/usb/atm/ueagle-atm.c Normal file

File diff suppressed because it is too large Load Diff