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 build in to catch most cases but not all
	- once the driver runs it is very stable, but I have the impression
	  some the critical sections take to long
	- 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.
