config CFG80211
        tristate "Improved wireless configuration API"

config CFG80211_REG_DEBUG
	bool "cfg80211 regulatory debugging"
	depends on CFG80211
	default n
	---help---
	  You can enable this if you want to debug regulatory changes.

	  If unsure, say N.

config NL80211
	bool "nl80211 new netlink interface support"
	depends on CFG80211
	default y
	---help---
	  This option turns on the new netlink interface
	  (nl80211) support in cfg80211.

	  If =n, drivers using mac80211 will be configured via
	  wireless extension support provided by that subsystem.

	  If unsure, say Y.

config WIRELESS_OLD_REGULATORY
	bool "Old wireless static regulatory definitions"
	default y
	---help---
	  This option enables the old static regulatory information
	  and uses it within the new framework. This is available
	  temporarily as an option to help prevent immediate issues
	  due to the switch to the new regulatory framework which
	  does require a new userspace application which has the
	  database of regulatory information (CRDA) and another for
	  setting regulatory domains (iw).

	  For more information see:

	  http://wireless.kernel.org/en/developers/Regulatory/CRDA
	  http://wireless.kernel.org/en/users/Documentation/iw

	  It is important to note though that if you *do* have CRDA present
	  and if this option is enabled CRDA *will* be called to update the
	  regulatory domain (for US and JP only). Support for letting the user
	  set the regulatory domain through iw is also supported. This option
	  mainly exists to leave around for a kernel release some old static
	  regulatory domains that were defined and to keep around the old
	  ieee80211_regdom module parameter. This is being phased out and you
	  should stop using them ASAP.

	  Note: You will need CRDA if you want 802.11d support

	  Say Y unless you have installed a new userspace application.
	  Also say Y if have one currently depending on the ieee80211_regdom
	  module parameter and cannot port it to use the new userspace
	  interfaces.

config WIRELESS_EXT
	bool "Wireless extensions"
	default n
	---help---
	  This option enables the legacy wireless extensions
	  (wireless network interface configuration via ioctls.)

	  Wireless extensions will be replaced by cfg80211 and
	  will be required only by legacy drivers that implement
	  wireless extension handlers. This option does not
	  affect the wireless-extension backward compatibility
	  code in cfg80211.

	  Say N (if you can) unless you know you need wireless
	  extensions for external modules.

config WIRELESS_EXT_SYSFS
	bool "Wireless extensions sysfs files"
	default y
	depends on WIRELESS_EXT && SYSFS
	help
	  This option enables the deprecated wireless statistics
	  files in /sys/class/net/*/wireless/. The same information
	  is available via the ioctls as well.

	  Say Y if you have programs using it, like old versions of
	  hal.

config LIB80211
	tristate "Common routines for IEEE802.11 drivers"
	default n
	help
	  This options enables a library of common routines used
	  by IEEE802.11 wireless LAN drivers.

	  Drivers should select this themselves if needed.  Say Y if
	  you want this built into your kernel.

config LIB80211_CRYPT_WEP
	tristate

config LIB80211_CRYPT_CCMP
	tristate

config LIB80211_CRYPT_TKIP
	tristate
