Linux v6.6.1 - iwlwifi

# SPDX-License-Identifier: GPL-2.0-only
config IWLWIFI
	tristate "Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi) "
	depends on PCI && HAS_IOMEM && CFG80211
	depends on IWLMEI || !IWLMEI
	select FW_LOADER
	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
		Intel 7260 Wi-Fi Adapter
		Intel 3160 Wi-Fi Adapter
		Intel 7265 Wi-Fi Adapter
		Intel 8260 Wi-Fi Adapter
		Intel 3165 Wi-Fi Adapter


	  This driver uses the kernel's mac80211 subsystem.

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

	          <https://wireless.wiki.kernel.org/en/users/Drivers/iwlwifi>.

	  The firmware 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.rst>.  The
	  module will be called iwlwifi.

if IWLWIFI

config IWLWIFI_LEDS
	bool
	depends on LEDS_CLASS=y || LEDS_CLASS=MAC80211
	depends on IWLMVM || IWLDVM
	select LEDS_TRIGGERS
	select MAC80211_LEDS
	default y

config IWLDVM
	tristate "Intel Wireless WiFi DVM Firmware support"
	depends on MAC80211
	help
	  This is the driver that supports the DVM firmware. The list
	  of the devices that use this firmware is available here:
	  https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi#firmware

config IWLMVM
	tristate "Intel Wireless WiFi MVM Firmware support"
	select WANT_DEV_COREDUMP
	depends on MAC80211
	depends on PTP_1588_CLOCK_OPTIONAL
	help
	  This is the driver that supports the MVM firmware. The list
	  of the devices that use this firmware is available here:
	  https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi#firmware

# don't call it _MODULE -- will confuse Kconfig/fixdep/...
config IWLWIFI_OPMODE_MODULAR
	bool
	default y if IWLDVM=m
	default y if IWLMVM=m

comment "WARNING: iwlwifi is useless without IWLDVM or IWLMVM"
	depends on IWLDVM=n && IWLMVM=n

menu "Debugging Options"

config IWLWIFI_DEBUG
	bool "Enable full debugging output in the iwlwifi driver"
	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 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_DEVICE_TRACING
	bool "iwlwifi device access tracing"
	depends on EVENT_TRACING
	default y
	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

endif

config IWLMEI
	tristate "Intel Management Engine communication over WLAN"
	depends on INTEL_MEI
	depends on PM
	depends on CFG80211
	depends on BROKEN
	help
	  Enables the iwlmei kernel module.

	  CSME stands for Converged Security and Management Engine. It is a CPU
	  on the chipset and runs a dedicated firmware. AMT (Active Management
	  Technology) is one of the applications that run on that CPU. AMT
	  allows to control the platform remotely.

	  This kernel module allows to communicate with the Intel Management
	  Engine over Wifi. This is supported starting from Tiger Lake
	  platforms and has been tested on 9260 devices only.
	  If AMT is configured not to use the wireless device, this module is
	  harmless (and useless).
	  Enabling this option on a platform that has a different device and
	  has Wireless enabled on AMT can prevent WiFi from working correctly.

	  For more information see
	  <https://software.intel.com/en-us/manageability/>

	  If unsure, say N.