1# SPDX-License-Identifier: GPL-2.0-only
2config IWLWIFI
3	tristate "Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi) "
4	depends on PCI && HAS_IOMEM && CFG80211
5	select FW_LOADER
6	help
7	  Select to build the driver supporting the:
8
9	  Intel Wireless WiFi Link Next-Gen AGN
10
11	  This option enables support for use with the following hardware:
12		Intel Wireless WiFi Link 6250AGN Adapter
13		Intel 6000 Series Wi-Fi Adapters (6200AGN and 6300AGN)
14		Intel WiFi Link 1000BGN
15		Intel Wireless WiFi 5150AGN
16		Intel Wireless WiFi 5100AGN, 5300AGN, and 5350AGN
17		Intel 6005 Series Wi-Fi Adapters
18		Intel 6030 Series Wi-Fi Adapters
19		Intel Wireless WiFi Link 6150BGN 2 Adapter
20		Intel 100 Series Wi-Fi Adapters (100BGN and 130BGN)
21		Intel 2000 Series Wi-Fi Adapters
22		Intel 7260 Wi-Fi Adapter
23		Intel 3160 Wi-Fi Adapter
24		Intel 7265 Wi-Fi Adapter
25		Intel 8260 Wi-Fi Adapter
26		Intel 3165 Wi-Fi Adapter
27
28
29	  This driver uses the kernel's mac80211 subsystem.
30
31	  In order to use this driver, you will need a firmware
32	  image for it. You can obtain the microcode from:
33
34	          <https://wireless.wiki.kernel.org/en/users/Drivers/iwlwifi>.
35
36	  The firmware is typically installed in /lib/firmware. You can
37	  look in the hotplug script /etc/hotplug/firmware.agent to
38	  determine which directory FIRMWARE_DIR is set to when the script
39	  runs.
40
41	  If you want to compile the driver as a module ( = code which can be
42	  inserted in and removed from the running kernel whenever you want),
43	  say M here and read <file:Documentation/kbuild/modules.rst>.  The
44	  module will be called iwlwifi.
45
46if IWLWIFI
47
48config IWLWIFI_LEDS
49	bool
50	depends on LEDS_CLASS=y || LEDS_CLASS=IWLWIFI
51	depends on IWLMVM || IWLDVM
52	select LEDS_TRIGGERS
53	select MAC80211_LEDS
54	default y
55
56config IWLDVM
57	tristate "Intel Wireless WiFi DVM Firmware support"
58	depends on MAC80211
59	help
60	  This is the driver that supports the DVM firmware. The list
61	  of the devices that use this firmware is available here:
62	  https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi#firmware
63
64config IWLMVM
65	tristate "Intel Wireless WiFi MVM Firmware support"
66	select WANT_DEV_COREDUMP
67	depends on MAC80211
68	help
69	  This is the driver that supports the MVM firmware. The list
70	  of the devices that use this firmware is available here:
71	  https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi#firmware
72
73# don't call it _MODULE -- will confuse Kconfig/fixdep/...
74config IWLWIFI_OPMODE_MODULAR
75	bool
76	default y if IWLDVM=m
77	default y if IWLMVM=m
78
79comment "WARNING: iwlwifi is useless without IWLDVM or IWLMVM"
80	depends on IWLDVM=n && IWLMVM=n
81
82config IWLWIFI_BCAST_FILTERING
83	bool "Enable broadcast filtering"
84	depends on IWLMVM
85	help
86	  Say Y here to enable default bcast filtering configuration.
87
88	  Enabling broadcast filtering will drop any incoming wireless
89	  broadcast frames, except some very specific predefined
90	  patterns (e.g. incoming arp requests).
91
92	  If unsure, don't enable this option, as some programs might
93	  expect incoming broadcasts for their normal operations.
94
95config IWLMEI
96	tristate "Intel Management Engine communication over WLAN"
97	depends on INTEL_MEI
98	depends on PM
99	depends on IWLMVM
100	help
101	  Enables the iwlmei kernel module.
102
103	  CSME stands for Converged Security and Management Engine. It is a CPU
104	  on the chipset and runs a dedicated firmware. AMT (Active Management
105	  Technology) is one of the applications that run on that CPU. AMT
106	  allows to control the platform remotely.
107
108	  This kernel module allows to communicate with the Intel Management
109	  Engine over Wifi. This is supported starting from Tiger Lake
110	  platforms and has been tested on 9260 devices only.
111	  If AMT is configured not to use the wireless device, this module is
112	  harmless (and useless).
113	  Enabling this option on a platform that has a different device and
114	  has Wireless enabled on AMT can prevent WiFi from working correctly.
115
116	  For more information see
117	  <https://software.intel.com/en-us/manageability/>
118
119	  If unsure, say N.
120
121menu "Debugging Options"
122
123config IWLWIFI_DEBUG
124	bool "Enable full debugging output in the iwlwifi driver"
125	help
126	  This option will enable debug tracing output for the iwlwifi drivers
127
128	  This will result in the kernel module being ~100k larger.  You can
129	  control which debug output is sent to the kernel log by setting the
130	  value in
131
132		/sys/module/iwlwifi/parameters/debug
133
134	  This entry will only exist if this option is enabled.
135
136	  To set a value, simply echo an 8-byte hex value to the same file:
137
138		  % echo 0x43fff > /sys/module/iwlwifi/parameters/debug
139
140	  You can find the list of debug mask values in:
141		  drivers/net/wireless/iwlwifi/iwl-debug.h
142
143	  If this is your first time using this driver, you should say Y here
144	  as the debug information can assist others in helping you resolve
145	  any problems you may encounter.
146
147config IWLWIFI_DEBUGFS
148	bool "iwlwifi debugfs support"
149	depends on MAC80211_DEBUGFS
150	help
151	  Enable creation of debugfs files for the iwlwifi drivers. This
152	  is a low-impact option that allows getting insight into the
153	  driver's state at runtime.
154
155config IWLWIFI_DEVICE_TRACING
156	bool "iwlwifi device access tracing"
157	depends on EVENT_TRACING
158	default y
159	help
160	  Say Y here to trace all commands, including TX frames and IO
161	  accesses, sent to the device. If you say yes, iwlwifi will
162	  register with the ftrace framework for event tracing and dump
163	  all this information to the ringbuffer, you may need to
164	  increase the ringbuffer size. See the ftrace documentation
165	  for more information.
166
167	  When tracing is not enabled, this option still has some
168	  (though rather small) overhead.
169
170	  If unsure, say Y so we can help you better when problems
171	  occur.
172endmenu
173
174endif
175