162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ciconfig IWLWIFI
362306a36Sopenharmony_ci	tristate "Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi) "
462306a36Sopenharmony_ci	depends on PCI && HAS_IOMEM && CFG80211
562306a36Sopenharmony_ci	depends on IWLMEI || !IWLMEI
662306a36Sopenharmony_ci	select FW_LOADER
762306a36Sopenharmony_ci	help
862306a36Sopenharmony_ci	  Select to build the driver supporting the:
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci	  Intel Wireless WiFi Link Next-Gen AGN
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci	  This option enables support for use with the following hardware:
1362306a36Sopenharmony_ci		Intel Wireless WiFi Link 6250AGN Adapter
1462306a36Sopenharmony_ci		Intel 6000 Series Wi-Fi Adapters (6200AGN and 6300AGN)
1562306a36Sopenharmony_ci		Intel WiFi Link 1000BGN
1662306a36Sopenharmony_ci		Intel Wireless WiFi 5150AGN
1762306a36Sopenharmony_ci		Intel Wireless WiFi 5100AGN, 5300AGN, and 5350AGN
1862306a36Sopenharmony_ci		Intel 6005 Series Wi-Fi Adapters
1962306a36Sopenharmony_ci		Intel 6030 Series Wi-Fi Adapters
2062306a36Sopenharmony_ci		Intel Wireless WiFi Link 6150BGN 2 Adapter
2162306a36Sopenharmony_ci		Intel 100 Series Wi-Fi Adapters (100BGN and 130BGN)
2262306a36Sopenharmony_ci		Intel 2000 Series Wi-Fi Adapters
2362306a36Sopenharmony_ci		Intel 7260 Wi-Fi Adapter
2462306a36Sopenharmony_ci		Intel 3160 Wi-Fi Adapter
2562306a36Sopenharmony_ci		Intel 7265 Wi-Fi Adapter
2662306a36Sopenharmony_ci		Intel 8260 Wi-Fi Adapter
2762306a36Sopenharmony_ci		Intel 3165 Wi-Fi Adapter
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci	  This driver uses the kernel's mac80211 subsystem.
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci	  In order to use this driver, you will need a firmware
3362306a36Sopenharmony_ci	  image for it. You can obtain the microcode from:
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci	          <https://wireless.wiki.kernel.org/en/users/Drivers/iwlwifi>.
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci	  The firmware is typically installed in /lib/firmware. You can
3862306a36Sopenharmony_ci	  look in the hotplug script /etc/hotplug/firmware.agent to
3962306a36Sopenharmony_ci	  determine which directory FIRMWARE_DIR is set to when the script
4062306a36Sopenharmony_ci	  runs.
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci	  If you want to compile the driver as a module ( = code which can be
4362306a36Sopenharmony_ci	  inserted in and removed from the running kernel whenever you want),
4462306a36Sopenharmony_ci	  say M here and read <file:Documentation/kbuild/modules.rst>.  The
4562306a36Sopenharmony_ci	  module will be called iwlwifi.
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ciif IWLWIFI
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ciconfig IWLWIFI_LEDS
5062306a36Sopenharmony_ci	bool
5162306a36Sopenharmony_ci	depends on LEDS_CLASS=y || LEDS_CLASS=MAC80211
5262306a36Sopenharmony_ci	depends on IWLMVM || IWLDVM
5362306a36Sopenharmony_ci	select LEDS_TRIGGERS
5462306a36Sopenharmony_ci	select MAC80211_LEDS
5562306a36Sopenharmony_ci	default y
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ciconfig IWLDVM
5862306a36Sopenharmony_ci	tristate "Intel Wireless WiFi DVM Firmware support"
5962306a36Sopenharmony_ci	depends on MAC80211
6062306a36Sopenharmony_ci	help
6162306a36Sopenharmony_ci	  This is the driver that supports the DVM firmware. The list
6262306a36Sopenharmony_ci	  of the devices that use this firmware is available here:
6362306a36Sopenharmony_ci	  https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi#firmware
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ciconfig IWLMVM
6662306a36Sopenharmony_ci	tristate "Intel Wireless WiFi MVM Firmware support"
6762306a36Sopenharmony_ci	select WANT_DEV_COREDUMP
6862306a36Sopenharmony_ci	depends on MAC80211
6962306a36Sopenharmony_ci	depends on PTP_1588_CLOCK_OPTIONAL
7062306a36Sopenharmony_ci	help
7162306a36Sopenharmony_ci	  This is the driver that supports the MVM firmware. The list
7262306a36Sopenharmony_ci	  of the devices that use this firmware is available here:
7362306a36Sopenharmony_ci	  https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi#firmware
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci# don't call it _MODULE -- will confuse Kconfig/fixdep/...
7662306a36Sopenharmony_ciconfig IWLWIFI_OPMODE_MODULAR
7762306a36Sopenharmony_ci	bool
7862306a36Sopenharmony_ci	default y if IWLDVM=m
7962306a36Sopenharmony_ci	default y if IWLMVM=m
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_cicomment "WARNING: iwlwifi is useless without IWLDVM or IWLMVM"
8262306a36Sopenharmony_ci	depends on IWLDVM=n && IWLMVM=n
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_cimenu "Debugging Options"
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ciconfig IWLWIFI_DEBUG
8762306a36Sopenharmony_ci	bool "Enable full debugging output in the iwlwifi driver"
8862306a36Sopenharmony_ci	help
8962306a36Sopenharmony_ci	  This option will enable debug tracing output for the iwlwifi drivers
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci	  This will result in the kernel module being ~100k larger.  You can
9262306a36Sopenharmony_ci	  control which debug output is sent to the kernel log by setting the
9362306a36Sopenharmony_ci	  value in
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci		/sys/module/iwlwifi/parameters/debug
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci	  This entry will only exist if this option is enabled.
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci	  To set a value, simply echo an 8-byte hex value to the same file:
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ci		  % echo 0x43fff > /sys/module/iwlwifi/parameters/debug
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci	  You can find the list of debug mask values in:
10462306a36Sopenharmony_ci		  drivers/net/wireless/iwlwifi/iwl-debug.h
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ci	  If this is your first time using this driver, you should say Y here
10762306a36Sopenharmony_ci	  as the debug information can assist others in helping you resolve
10862306a36Sopenharmony_ci	  any problems you may encounter.
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ciconfig IWLWIFI_DEBUGFS
11162306a36Sopenharmony_ci	bool "iwlwifi debugfs support"
11262306a36Sopenharmony_ci	depends on MAC80211_DEBUGFS
11362306a36Sopenharmony_ci	help
11462306a36Sopenharmony_ci	  Enable creation of debugfs files for the iwlwifi drivers. This
11562306a36Sopenharmony_ci	  is a low-impact option that allows getting insight into the
11662306a36Sopenharmony_ci	  driver's state at runtime.
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ciconfig IWLWIFI_DEVICE_TRACING
11962306a36Sopenharmony_ci	bool "iwlwifi device access tracing"
12062306a36Sopenharmony_ci	depends on EVENT_TRACING
12162306a36Sopenharmony_ci	default y
12262306a36Sopenharmony_ci	help
12362306a36Sopenharmony_ci	  Say Y here to trace all commands, including TX frames and IO
12462306a36Sopenharmony_ci	  accesses, sent to the device. If you say yes, iwlwifi will
12562306a36Sopenharmony_ci	  register with the ftrace framework for event tracing and dump
12662306a36Sopenharmony_ci	  all this information to the ringbuffer, you may need to
12762306a36Sopenharmony_ci	  increase the ringbuffer size. See the ftrace documentation
12862306a36Sopenharmony_ci	  for more information.
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_ci	  When tracing is not enabled, this option still has some
13162306a36Sopenharmony_ci	  (though rather small) overhead.
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci	  If unsure, say Y so we can help you better when problems
13462306a36Sopenharmony_ci	  occur.
13562306a36Sopenharmony_ciendmenu
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_ciendif
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_ciconfig IWLMEI
14062306a36Sopenharmony_ci	tristate "Intel Management Engine communication over WLAN"
14162306a36Sopenharmony_ci	depends on INTEL_MEI
14262306a36Sopenharmony_ci	depends on PM
14362306a36Sopenharmony_ci	depends on CFG80211
14462306a36Sopenharmony_ci	depends on BROKEN
14562306a36Sopenharmony_ci	help
14662306a36Sopenharmony_ci	  Enables the iwlmei kernel module.
14762306a36Sopenharmony_ci
14862306a36Sopenharmony_ci	  CSME stands for Converged Security and Management Engine. It is a CPU
14962306a36Sopenharmony_ci	  on the chipset and runs a dedicated firmware. AMT (Active Management
15062306a36Sopenharmony_ci	  Technology) is one of the applications that run on that CPU. AMT
15162306a36Sopenharmony_ci	  allows to control the platform remotely.
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ci	  This kernel module allows to communicate with the Intel Management
15462306a36Sopenharmony_ci	  Engine over Wifi. This is supported starting from Tiger Lake
15562306a36Sopenharmony_ci	  platforms and has been tested on 9260 devices only.
15662306a36Sopenharmony_ci	  If AMT is configured not to use the wireless device, this module is
15762306a36Sopenharmony_ci	  harmless (and useless).
15862306a36Sopenharmony_ci	  Enabling this option on a platform that has a different device and
15962306a36Sopenharmony_ci	  has Wireless enabled on AMT can prevent WiFi from working correctly.
16062306a36Sopenharmony_ci
16162306a36Sopenharmony_ci	  For more information see
16262306a36Sopenharmony_ci	  <https://software.intel.com/en-us/manageability/>
16362306a36Sopenharmony_ci
16462306a36Sopenharmony_ci	  If unsure, say N.
165