Hello!

I wrote a new driver for Atmel at76c503 based USB wlan adapters. See
the link below in my .signature.

Maybe someone wants to look over it. It is still in development,
and supports only ad-hoc mode at the moment. There is one 'exotic'
thing about it: it uses another module which I wrote to load the
firmware, it is included in the package. It works as follows:

- at76c503 calls usbdfu_register.  
- at76c503 calls usb_register
- usbdfu puts device ids into a list
- if the device is plugged in, usbdfu claims it
- usbdfu loads the firmware. This is done using keventd.
- if successful, usbdfu releases the device, calls usb_reset_device
and then calls usb_scan_devices
- usbdfu_probe will be called again, but detects that the fw is
already loaded, and isn't interested any more
- the probe() function of at76c503 is called by the usb subsystem,
and at76c503 claims the device.

This may sound complicated, but I chose that design for these reasons:
- after downloading the firmware, usb_reset_device() has to be
called. This _cannot_ be done in the probe() function, because of
locking problems. This was already discussed in this list
- apart from calling usbdfu_register, the driver does not have to
care about the firmware. It may also happen that the device switches
to another device id, or changes its interfaces (the at76c503 does
not, but this is possible according to the DFU specs)
- there has to be an interval of 2 seconds between downloading the
fw and the reset, I do not want this in the probe() function.

Ideally, the usbdfu module could be used by other drivers that
need to download firmware with the DFU mechanism. At the moment,
there are some at76c503 specific things in it. If anyone wants
to use, we can work together to make it more generic.

The mechanism is complicated, but the usage is not. Any driver
that needs DFU calls usbdfu_register together with the firmware
code, and that's it.

I tested it with usb-uhci, usb-ohci and uhci.

I used code from Brad Hards and Bas Vermeulen for the dfu module.
Thanks a lot :-).

I tested the driver with 2.4.20 only so far.

Greetings,
Oliver  
-- 
An MTA for home users, notebooks and PDAs: http://masqmail.cx/masqmail/
A driver for Atmel at76c503 based WLAN Adapters: http://masqmail.cx/at76c503/

Attachment: msg11120/pgp00000.pgp
Description: PGP signature

Reply via email to