config IWLWIFI
	tristate "Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi) "
	depends on PCI && MAC80211
	select FW_LOADER
	select NEW_LEDS
	select LEDS_CLASS
	select LEDS_TRIGGERS
	select MAC80211_LEDS
	---help---
	  Select to build the driver supporting the:

	  Intel Wireless WiFi Link Next-Gen AGN

	  This option enables support for use with the following hardware:
		Intel Wireless WiFi Link 6250AGN Adapter
		Intel 6000 Series Wi-Fi Adapters (6200AGN and 6300AGN)
		Intel WiFi Link 1000BGN
		Intel Wireless WiFi 5150AGN
		Intel Wireless WiFi 5100AGN, 5300AGN, and 5350AGN
		Intel 6005 Series Wi-Fi Adapters
		Intel 6030 Series Wi-Fi Adapters
		Intel Wireless WiFi Link 6150BGN 2 Adapter
		Intel 100 Series Wi-Fi Adapters (100BGN and 130BGN)
		Intel 2000 Series Wi-Fi Adapters


	  This driver uses the kernel's mac80211 subsystem.

	  In order to use this driver, you will need a microcode (uCode)
	  image for it. You can obtain the microcode from:

	          <http://intellinuxwireless.org/>.

	  The microcode is typically installed in /lib/firmware. You can
	  look in the hotplug script /etc/hotplug/firmware.agent to
	  determine which directory FIRMWARE_DIR is set to when the script
	  runs.

	  If you want to compile the driver as a module ( = code which can be
	  inserted in and removed from the running kernel whenever you want),
	  say M here and read <file:Documentation/kbuild/modules.txt>.  The
	  module will be called iwlwifi.

menu "Debugging Options"
	depends on IWLWIFI

config IWLWIFI_DEBUG
	bool "Enable full debugging output in the iwlwifi driver"
	depends on IWLWIFI
	---help---
	  This option will enable debug tracing output for the iwlwifi drivers

	  This will result in the kernel module being ~100k larger.  You can
	  control which debug output is sent to the kernel log by setting the
	  value in

		/sys/module/iwlwifi/parameters/debug

	  This entry will only exist if this option is enabled.

	  To set a value, simply echo an 8-byte hex value to the same file:

		  % echo 0x43fff > /sys/module/iwlwifi/parameters/debug

	  You can find the list of debug mask values in:
		  drivers/net/wireless/iwlwifi/iwl-debug.h

	  If this is your first time using this driver, you should say Y here
	  as the debug information can assist others in helping you resolve
	  any problems you may encounter.

config IWLWIFI_DEBUGFS
        bool "iwlwifi debugfs support"
        depends on IWLWIFI && MAC80211_DEBUGFS
        ---help---
	  Enable creation of debugfs files for the iwlwifi drivers. This
	  is a low-impact option that allows getting insight into the
	  driver's state at runtime.

config IWLWIFI_DEBUG_EXPERIMENTAL_UCODE
        bool "Experimental uCode support"
        depends on IWLWIFI && IWLWIFI_DEBUG
        ---help---
	  Enable use of experimental ucode for testing and debugging.

config IWLWIFI_DEVICE_TRACING
	bool "iwlwifi device access tracing"
	depends on IWLWIFI
	depends on EVENT_TRACING
	help
	  Say Y here to trace all commands, including TX frames and IO
	  accesses, sent to the device. If you say yes, iwlwifi will
	  register with the ftrace framework for event tracing and dump
	  all this information to the ringbuffer, you may need to
	  increase the ringbuffer size. See the ftrace documentation
	  for more information.

	  When tracing is not enabled, this option still has some
	  (though rather small) overhead.

	  If unsure, say Y so we can help you better when problems
	  occur.
endmenu

config IWLWIFI_DEVICE_SVTOOL
	bool "iwlwifi device svtool support"
	depends on IWLWIFI
	select NL80211_TESTMODE
	help
	  This option enables the svtool support for iwlwifi device through
	  NL80211_TESTMODE. svtool is a software validation tool that runs in
	  the user space and interacts with the device in the kernel space
	  through the generic netlink message via NL80211_TESTMODE channel.
