config HOSTAP
	tristate "IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)"
	depends on WLAN_80211
	select WIRELESS_EXT
	select CRYPTO
	select CRYPTO_ARC4
	select CRYPTO_ECB
	select CRYPTO_AES
	select CRYPTO_MICHAEL_MIC
	select CRYPTO_ECB
	select CRC32
	select LIB80211
	select LIB80211_CRYPT_WEP
	select LIB80211_CRYPT_TKIP
	select LIB80211_CRYPT_CCMP
	---help---
	Shared driver code for IEEE 802.11b wireless cards based on
	Intersil Prism2/2.5/3 chipset. This driver supports so called
	Host AP mode that allows the card to act as an IEEE 802.11
	access point.

	See <http://hostap.epitest.fi/> for more information about the
	Host AP driver configuration and tools. This site includes
	information and tools (hostapd and wpa_supplicant) for WPA/WPA2
	support.

	This option includes the base Host AP driver code that is shared by
	different hardware models. You will also need to enable support for
	PLX/PCI/CS version of the driver to actually use the driver.

	The driver can be compiled as a module and it will be called
	"hostap.ko".

config HOSTAP_FIRMWARE
	bool "Support downloading firmware images with Host AP driver"
	depends on HOSTAP
	---help---
	Configure Host AP driver to include support for firmware image
	download. This option by itself only enables downloading to the
	volatile memory, i.e. the card RAM. This option is required to
	support cards that don't have firmware in flash, such as D-Link
	DWL-520 rev E and D-Link DWL-650 rev P.

	Firmware image downloading needs a user space tool, prism2_srec.
	It is available from http://hostap.epitest.fi/.

config HOSTAP_FIRMWARE_NVRAM
	bool "Support for non-volatile firmware download"
	depends on HOSTAP_FIRMWARE
	---help---
	Allow Host AP driver to write firmware images to the non-volatile
	card memory, i.e. flash memory that survives power cycling.
	Enable this option if you want to be able to change card firmware
	permanently.

	Firmware image downloading needs a user space tool, prism2_srec.
	It is available from http://hostap.epitest.fi/.

config HOSTAP_PLX
	tristate "Host AP driver for Prism2/2.5/3 in PLX9052 PCI adaptors"
	depends on PCI && HOSTAP
	---help---
	Host AP driver's version for Prism2/2.5/3 PC Cards in PLX9052 based
	PCI adaptors.

	"Host AP support for Prism2/2.5/3 IEEE 802.11b" is required for this
	driver and its help text includes more information about the Host AP
	driver.

	The driver can be compiled as a module and will be named
	"hostap_plx.ko".

config HOSTAP_PCI
	tristate "Host AP driver for Prism2.5 PCI adaptors"
	depends on PCI && HOSTAP
	---help---
	Host AP driver's version for Prism2.5 PCI adaptors.

	"Host AP support for Prism2/2.5/3 IEEE 802.11b" is required for this
	driver and its help text includes more information about the Host AP
	driver.

	The driver can be compiled as a module and will be named
	"hostap_pci.ko".

config HOSTAP_CS
	tristate "Host AP driver for Prism2/2.5/3 PC Cards"
	depends on PCMCIA && HOSTAP
	---help---
	Host AP driver's version for Prism2/2.5/3 PC Cards.

	"Host AP support for Prism2/2.5/3 IEEE 802.11b" is required for this
	driver and its help text includes more information about the Host AP
	driver.

	The driver can be compiled as a module and will be named
	"hostap_cs.ko".
