First of all, the best thing would be that this driver becomes obsolete by
adding support for Hermes II and Hermes II.5 cards to the existing orinoco
driver. The orinoco driver currently only supports Hermes I based cards.
Since this will not happen by magic and has not happened until now this
driver provides a stop-gap solution for these type of cards.

Having said that, the following wishlist comes to mind to make the driver
suitable as fully supported kernel driver. Feel free to expand/enhance the
list.

TODO:
	- verify against a Hermes II.5 card
	- verify with WPA encryption (both with H2 and H2.5 cards)
	- sometimes the card does not initialize correctly, retry mechanisms
	  are built in to catch most cases but not all
	- once the driver runs it is very stable, but I have the impression
	  that some of the critical sections take some time.
	- the driver is split into a Hermes II and a Hermes II.5 part, it
	  would be nice to handle both with one module instead of two
	- review by the wireless developer community
	- verify the code against the coding standards for a proper linux
	  driver
	- resolve license issues (?)

DONE:
	- verified against a Hermes II card (Thomson Speedtouch 110 PCMCIA
	  card)
	- verified with WEP encryption

Please send any patches or complaints about this driver to Greg
Kroah-Hartman <greg@kroah.com> and Cc: Henk de Groot <pe1dnn@amsat.org>
Don't bother the upstream wireless kernel developers about it, they
want nothing to do with it.
