1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 #include <linux/module.h>
55 #include <linux/stringify.h>
56 #include "iwl-config.h"
57
58
59 #define IWL_22000_UCODE_API_MAX 50
60
61
62 #define IWL_22000_UCODE_API_MIN 39
63
64
65 #define IWL_22000_NVM_VERSION 0x0a1d
66
67
68 #define IWL_22000_DCCM_OFFSET 0x800000
69 #define IWL_22000_DCCM_LEN 0x10000
70 #define IWL_22000_DCCM2_OFFSET 0x880000
71 #define IWL_22000_DCCM2_LEN 0x8000
72 #define IWL_22000_SMEM_OFFSET 0x400000
73 #define IWL_22000_SMEM_LEN 0xD0000
74
75 #define IWL_22000_JF_FW_PRE "iwlwifi-Qu-a0-jf-b0-"
76 #define IWL_22000_HR_FW_PRE "iwlwifi-Qu-a0-hr-a0-"
77 #define IWL_22000_HR_CDB_FW_PRE "iwlwifi-QuIcp-z0-hrcdb-a0-"
78 #define IWL_22000_HR_A_F0_FW_PRE "iwlwifi-QuQnj-f0-hr-a0-"
79 #define IWL_22000_QU_B_HR_B_FW_PRE "iwlwifi-Qu-b0-hr-b0-"
80 #define IWL_22000_HR_B_FW_PRE "iwlwifi-QuQnj-b0-hr-b0-"
81 #define IWL_22000_HR_A0_FW_PRE "iwlwifi-QuQnj-a0-hr-a0-"
82 #define IWL_QU_C_HR_B_FW_PRE "iwlwifi-Qu-c0-hr-b0-"
83 #define IWL_QU_B_JF_B_FW_PRE "iwlwifi-Qu-b0-jf-b0-"
84 #define IWL_QU_C_JF_B_FW_PRE "iwlwifi-Qu-c0-jf-b0-"
85 #define IWL_QUZ_A_HR_B_FW_PRE "iwlwifi-QuZ-a0-hr-b0-"
86 #define IWL_QUZ_A_JF_B_FW_PRE "iwlwifi-QuZ-a0-jf-b0-"
87 #define IWL_QNJ_B_JF_B_FW_PRE "iwlwifi-QuQnj-b0-jf-b0-"
88 #define IWL_CC_A_FW_PRE "iwlwifi-cc-a0-"
89 #define IWL_22000_SO_A_JF_B_FW_PRE "iwlwifi-so-a0-jf-b0-"
90 #define IWL_22000_SO_A_HR_B_FW_PRE "iwlwifi-so-a0-hr-b0-"
91 #define IWL_22000_SO_A_GF_A_FW_PRE "iwlwifi-so-a0-gf-a0-"
92 #define IWL_22000_TY_A_GF_A_FW_PRE "iwlwifi-ty-a0-gf-a0-"
93 #define IWL_22000_SO_A_GF4_A_FW_PRE "iwlwifi-so-a0-gf4-a0-"
94
95 #define IWL_22000_HR_MODULE_FIRMWARE(api) \
96 IWL_22000_HR_FW_PRE __stringify(api) ".ucode"
97 #define IWL_22000_JF_MODULE_FIRMWARE(api) \
98 IWL_22000_JF_FW_PRE __stringify(api) ".ucode"
99 #define IWL_22000_HR_A_F0_QNJ_MODULE_FIRMWARE(api) \
100 IWL_22000_HR_A_F0_FW_PRE __stringify(api) ".ucode"
101 #define IWL_22000_QU_B_HR_B_MODULE_FIRMWARE(api) \
102 IWL_22000_QU_B_HR_B_FW_PRE __stringify(api) ".ucode"
103 #define IWL_22000_HR_B_QNJ_MODULE_FIRMWARE(api) \
104 IWL_22000_HR_B_FW_PRE __stringify(api) ".ucode"
105 #define IWL_22000_HR_A0_QNJ_MODULE_FIRMWARE(api) \
106 IWL_22000_HR_A0_FW_PRE __stringify(api) ".ucode"
107 #define IWL_QUZ_A_HR_B_MODULE_FIRMWARE(api) \
108 IWL_QUZ_A_HR_B_FW_PRE __stringify(api) ".ucode"
109 #define IWL_QUZ_A_JF_B_MODULE_FIRMWARE(api) \
110 IWL_QUZ_A_JF_B_FW_PRE __stringify(api) ".ucode"
111 #define IWL_QU_C_HR_B_MODULE_FIRMWARE(api) \
112 IWL_QU_C_HR_B_FW_PRE __stringify(api) ".ucode"
113 #define IWL_QU_B_JF_B_MODULE_FIRMWARE(api) \
114 IWL_QU_B_JF_B_FW_PRE __stringify(api) ".ucode"
115 #define IWL_QNJ_B_JF_B_MODULE_FIRMWARE(api) \
116 IWL_QNJ_B_JF_B_FW_PRE __stringify(api) ".ucode"
117 #define IWL_CC_A_MODULE_FIRMWARE(api) \
118 IWL_CC_A_FW_PRE __stringify(api) ".ucode"
119 #define IWL_22000_SO_A_JF_B_MODULE_FIRMWARE(api) \
120 IWL_22000_SO_A_JF_B_FW_PRE __stringify(api) ".ucode"
121 #define IWL_22000_SO_A_HR_B_MODULE_FIRMWARE(api) \
122 IWL_22000_SO_A_HR_B_FW_PRE __stringify(api) ".ucode"
123 #define IWL_22000_SO_A_GF_A_MODULE_FIRMWARE(api) \
124 IWL_22000_SO_A_GF_A_FW_PRE __stringify(api) ".ucode"
125 #define IWL_22000_TY_A_GF_A_MODULE_FIRMWARE(api) \
126 IWL_22000_TY_A_GF_A_FW_PRE __stringify(api) ".ucode"
127
128 static const struct iwl_base_params iwl_22000_base_params = {
129 .eeprom_size = OTP_LOW_IMAGE_SIZE_32K,
130 .num_of_queues = 512,
131 .max_tfd_queue_size = 256,
132 .shadow_ram_support = true,
133 .led_compensation = 57,
134 .wd_timeout = IWL_LONG_WD_TIMEOUT,
135 .max_event_log_size = 512,
136 .shadow_reg_enable = true,
137 .pcie_l1_allowed = true,
138 };
139
140 static const struct iwl_base_params iwl_22560_base_params = {
141 .eeprom_size = OTP_LOW_IMAGE_SIZE_32K,
142 .num_of_queues = 512,
143 .max_tfd_queue_size = 65536,
144 .shadow_ram_support = true,
145 .led_compensation = 57,
146 .wd_timeout = IWL_LONG_WD_TIMEOUT,
147 .max_event_log_size = 512,
148 .shadow_reg_enable = true,
149 .pcie_l1_allowed = true,
150 };
151
152 static const struct iwl_ht_params iwl_22000_ht_params = {
153 .stbc = true,
154 .ldpc = true,
155 .ht40_bands = BIT(NL80211_BAND_2GHZ) | BIT(NL80211_BAND_5GHZ),
156 };
157
158 #define IWL_DEVICE_22000_COMMON \
159 .ucode_api_max = IWL_22000_UCODE_API_MAX, \
160 .ucode_api_min = IWL_22000_UCODE_API_MIN, \
161 .led_mode = IWL_LED_RF_STATE, \
162 .nvm_hw_section_num = 10, \
163 .non_shared_ant = ANT_B, \
164 .dccm_offset = IWL_22000_DCCM_OFFSET, \
165 .dccm_len = IWL_22000_DCCM_LEN, \
166 .dccm2_offset = IWL_22000_DCCM2_OFFSET, \
167 .dccm2_len = IWL_22000_DCCM2_LEN, \
168 .smem_offset = IWL_22000_SMEM_OFFSET, \
169 .smem_len = IWL_22000_SMEM_LEN, \
170 .features = IWL_TX_CSUM_NETIF_FLAGS | NETIF_F_RXCSUM, \
171 .apmg_not_supported = true, \
172 .trans.mq_rx_supported = true, \
173 .vht_mu_mimo_supported = true, \
174 .mac_addr_from_csr = true, \
175 .ht_params = &iwl_22000_ht_params, \
176 .nvm_ver = IWL_22000_NVM_VERSION, \
177 .max_ht_ampdu_exponent = IEEE80211_HT_MAX_AMPDU_64K, \
178 .trans.use_tfh = true, \
179 .trans.rf_id = true, \
180 .trans.gen2 = true, \
181 .nvm_type = IWL_NVM_EXT, \
182 .dbgc_supported = true, \
183 .min_umac_error_event_table = 0x400000, \
184 .d3_debug_data_base_addr = 0x401000, \
185 .d3_debug_data_length = 60 * 1024, \
186 .fw_mon_smem_write_ptr_addr = 0xa0c16c, \
187 .fw_mon_smem_write_ptr_msk = 0xfffff, \
188 .fw_mon_smem_cycle_cnt_ptr_addr = 0xa0c174, \
189 .fw_mon_smem_cycle_cnt_ptr_msk = 0xfffff
190
191 #define IWL_DEVICE_22500 \
192 IWL_DEVICE_22000_COMMON, \
193 .trans.device_family = IWL_DEVICE_FAMILY_22000, \
194 .trans.base_params = &iwl_22000_base_params, \
195 .trans.csr = &iwl_csr_v1, \
196 .gp2_reg_addr = 0xa02c68
197
198 #define IWL_DEVICE_22560 \
199 IWL_DEVICE_22000_COMMON, \
200 .trans.device_family = IWL_DEVICE_FAMILY_22560, \
201 .trans.base_params = &iwl_22560_base_params, \
202 .trans.csr = &iwl_csr_v2
203
204 #define IWL_DEVICE_AX210 \
205 IWL_DEVICE_22000_COMMON, \
206 .trans.umac_prph_offset = 0x300000, \
207 .trans.device_family = IWL_DEVICE_FAMILY_AX210, \
208 .trans.base_params = &iwl_22560_base_params, \
209 .trans.csr = &iwl_csr_v1, \
210 .min_txq_size = 128, \
211 .gp2_reg_addr = 0xd02c68, \
212 .min_256_ba_txq_size = 512
213
214 const struct iwl_cfg iwl22000_2ac_cfg_hr = {
215 .name = "Intel(R) Dual Band Wireless AC 22000",
216 .fw_name_pre = IWL_22000_HR_FW_PRE,
217 IWL_DEVICE_22500,
218 };
219
220 const struct iwl_cfg iwl22000_2ac_cfg_hr_cdb = {
221 .name = "Intel(R) Dual Band Wireless AC 22000",
222 .fw_name_pre = IWL_22000_HR_CDB_FW_PRE,
223 IWL_DEVICE_22500,
224 .cdb = true,
225 };
226
227 const struct iwl_cfg iwl22000_2ac_cfg_jf = {
228 .name = "Intel(R) Dual Band Wireless AC 22000",
229 .fw_name_pre = IWL_22000_JF_FW_PRE,
230 IWL_DEVICE_22500,
231 };
232
233 const struct iwl_cfg iwl_ax101_cfg_qu_hr = {
234 .name = "Intel(R) Wi-Fi 6 AX101",
235 .fw_name_pre = IWL_22000_QU_B_HR_B_FW_PRE,
236 IWL_DEVICE_22500,
237
238
239
240
241
242 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
243 .tx_with_siso_diversity = true,
244 };
245
246 const struct iwl_cfg iwl_ax201_cfg_qu_hr = {
247 .name = "Intel(R) Wi-Fi 6 AX201 160MHz",
248 .fw_name_pre = IWL_22000_QU_B_HR_B_FW_PRE,
249 IWL_DEVICE_22500,
250
251
252
253
254
255 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
256 };
257
258 const struct iwl_cfg iwl_ax101_cfg_qu_c0_hr_b0 = {
259 .name = "Intel(R) Wi-Fi 6 AX101",
260 .fw_name_pre = IWL_QU_C_HR_B_FW_PRE,
261 IWL_DEVICE_22500,
262
263
264
265
266
267 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
268 };
269
270 const struct iwl_cfg iwl_ax201_cfg_qu_c0_hr_b0 = {
271 .name = "Intel(R) Wi-Fi 6 AX201 160MHz",
272 .fw_name_pre = IWL_QU_C_HR_B_FW_PRE,
273 IWL_DEVICE_22500,
274
275
276
277
278
279 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
280 };
281
282 const struct iwl_cfg iwl_ax101_cfg_quz_hr = {
283 .name = "Intel(R) Wi-Fi 6 AX101",
284 .fw_name_pre = IWL_QUZ_A_HR_B_FW_PRE,
285 IWL_DEVICE_22500,
286
287
288
289
290
291 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
292 };
293
294 const struct iwl_cfg iwl_ax201_cfg_quz_hr = {
295 .name = "Intel(R) Wi-Fi 6 AX201 160MHz",
296 .fw_name_pre = IWL_QUZ_A_HR_B_FW_PRE,
297 IWL_DEVICE_22500,
298
299
300
301
302
303 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
304 };
305
306 const struct iwl_cfg iwl_ax1650s_cfg_quz_hr = {
307 .name = "Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201D2W)",
308 .fw_name_pre = IWL_QUZ_A_HR_B_FW_PRE,
309 IWL_DEVICE_22500,
310
311
312
313
314
315 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
316 };
317
318 const struct iwl_cfg iwl_ax1650i_cfg_quz_hr = {
319 .name = "Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW)",
320 .fw_name_pre = IWL_QUZ_A_HR_B_FW_PRE,
321 IWL_DEVICE_22500,
322
323
324
325
326
327 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
328 };
329
330 const struct iwl_cfg iwl_ax200_cfg_cc = {
331 .name = "Intel(R) Wi-Fi 6 AX200 160MHz",
332 .fw_name_pre = IWL_CC_A_FW_PRE,
333 IWL_DEVICE_22500,
334
335
336
337
338
339 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
340 .trans.bisr_workaround = 1,
341 };
342
343 const struct iwl_cfg killer1650x_2ax_cfg = {
344 .name = "Killer(R) Wi-Fi 6 AX1650x 160MHz Wireless Network Adapter (200NGW)",
345 .fw_name_pre = IWL_CC_A_FW_PRE,
346 IWL_DEVICE_22500,
347
348
349
350
351
352 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
353 .trans.bisr_workaround = 1,
354 };
355
356 const struct iwl_cfg killer1650w_2ax_cfg = {
357 .name = "Killer(R) Wi-Fi 6 AX1650w 160MHz Wireless Network Adapter (200D2W)",
358 .fw_name_pre = IWL_CC_A_FW_PRE,
359 IWL_DEVICE_22500,
360
361
362
363
364
365 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
366 .trans.bisr_workaround = 1,
367 };
368
369
370
371
372
373
374 const struct iwl_cfg iwl9461_2ac_cfg_qu_b0_jf_b0 = {
375 .name = "Intel(R) Wireless-AC 9461",
376 .fw_name_pre = IWL_QU_B_JF_B_FW_PRE,
377 IWL_DEVICE_22500,
378 };
379
380 const struct iwl_cfg iwl9462_2ac_cfg_qu_b0_jf_b0 = {
381 .name = "Intel(R) Wireless-AC 9462",
382 .fw_name_pre = IWL_QU_B_JF_B_FW_PRE,
383 IWL_DEVICE_22500,
384 };
385
386 const struct iwl_cfg iwl9560_2ac_cfg_qu_b0_jf_b0 = {
387 .name = "Intel(R) Wireless-AC 9560",
388 .fw_name_pre = IWL_QU_B_JF_B_FW_PRE,
389 IWL_DEVICE_22500,
390 };
391
392 const struct iwl_cfg iwl9560_2ac_160_cfg_qu_b0_jf_b0 = {
393 .name = "Intel(R) Wireless-AC 9560 160MHz",
394 .fw_name_pre = IWL_QU_B_JF_B_FW_PRE,
395 IWL_DEVICE_22500,
396 };
397
398 const struct iwl_cfg iwl9461_2ac_cfg_qu_c0_jf_b0 = {
399 .name = "Intel(R) Wireless-AC 9461",
400 .fw_name_pre = IWL_QU_C_JF_B_FW_PRE,
401 IWL_DEVICE_22500,
402 };
403
404 const struct iwl_cfg iwl9462_2ac_cfg_qu_c0_jf_b0 = {
405 .name = "Intel(R) Wireless-AC 9462",
406 .fw_name_pre = IWL_QU_C_JF_B_FW_PRE,
407 IWL_DEVICE_22500,
408 };
409
410 const struct iwl_cfg iwl9560_2ac_cfg_qu_c0_jf_b0 = {
411 .name = "Intel(R) Wireless-AC 9560",
412 .fw_name_pre = IWL_QU_C_JF_B_FW_PRE,
413 IWL_DEVICE_22500,
414 };
415
416 const struct iwl_cfg iwl9560_2ac_160_cfg_qu_c0_jf_b0 = {
417 .name = "Intel(R) Wireless-AC 9560 160MHz",
418 .fw_name_pre = IWL_QU_C_JF_B_FW_PRE,
419 IWL_DEVICE_22500,
420 };
421
422 const struct iwl_cfg iwl9560_2ac_cfg_qnj_jf_b0 = {
423 .name = "Intel(R) Wireless-AC 9560 160MHz",
424 .fw_name_pre = IWL_QNJ_B_JF_B_FW_PRE,
425 IWL_DEVICE_22500,
426
427
428
429
430
431 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
432 };
433
434 const struct iwl_cfg iwl9560_2ac_cfg_quz_a0_jf_b0_soc = {
435 .name = "Intel(R) Wireless-AC 9560 160MHz",
436 .fw_name_pre = IWL_QUZ_A_JF_B_FW_PRE,
437 IWL_DEVICE_22500,
438
439
440
441
442
443 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
444 .integrated = true,
445 .soc_latency = 5000,
446 };
447
448 const struct iwl_cfg iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc = {
449 .name = "Intel(R) Wireless-AC 9560 160MHz",
450 .fw_name_pre = IWL_QUZ_A_JF_B_FW_PRE,
451 IWL_DEVICE_22500,
452
453
454
455
456
457 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
458 .integrated = true,
459 .soc_latency = 5000,
460 };
461
462 const struct iwl_cfg iwl9461_2ac_cfg_quz_a0_jf_b0_soc = {
463 .name = "Intel(R) Dual Band Wireless AC 9461",
464 .fw_name_pre = IWL_QUZ_A_JF_B_FW_PRE,
465 IWL_DEVICE_22500,
466
467
468
469
470
471 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
472 .integrated = true,
473 .soc_latency = 5000,
474 };
475
476 const struct iwl_cfg iwl9462_2ac_cfg_quz_a0_jf_b0_soc = {
477 .name = "Intel(R) Dual Band Wireless AC 9462",
478 .fw_name_pre = IWL_QUZ_A_JF_B_FW_PRE,
479 IWL_DEVICE_22500,
480
481
482
483
484
485 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
486 .integrated = true,
487 .soc_latency = 5000,
488 };
489
490 const struct iwl_cfg iwl9560_killer_s_2ac_cfg_quz_a0_jf_b0_soc = {
491 .name = "Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW)",
492 .fw_name_pre = IWL_QUZ_A_JF_B_FW_PRE,
493 IWL_DEVICE_22500,
494
495
496
497
498
499 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
500 .integrated = true,
501 .soc_latency = 5000,
502 };
503
504 const struct iwl_cfg iwl9560_killer_i_2ac_cfg_quz_a0_jf_b0_soc = {
505 .name = "Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)",
506 .fw_name_pre = IWL_QUZ_A_JF_B_FW_PRE,
507 IWL_DEVICE_22500,
508
509
510
511
512
513 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
514 .integrated = true,
515 .soc_latency = 5000,
516 };
517
518 const struct iwl_cfg killer1550i_2ac_cfg_qu_b0_jf_b0 = {
519 .name = "Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)",
520 .fw_name_pre = IWL_QU_B_JF_B_FW_PRE,
521 IWL_DEVICE_22500,
522 };
523
524 const struct iwl_cfg killer1550s_2ac_cfg_qu_b0_jf_b0 = {
525 .name = "Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW)",
526 .fw_name_pre = IWL_QU_B_JF_B_FW_PRE,
527 IWL_DEVICE_22500,
528 };
529
530 const struct iwl_cfg killer1650s_2ax_cfg_qu_b0_hr_b0 = {
531 .name = "Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW)",
532 .fw_name_pre = IWL_22000_QU_B_HR_B_FW_PRE,
533 IWL_DEVICE_22500,
534
535
536
537
538
539 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
540 };
541
542 const struct iwl_cfg killer1650i_2ax_cfg_qu_b0_hr_b0 = {
543 .name = "Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201D2W)",
544 .fw_name_pre = IWL_22000_QU_B_HR_B_FW_PRE,
545 IWL_DEVICE_22500,
546
547
548
549
550
551 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
552 };
553
554 const struct iwl_cfg killer1650s_2ax_cfg_qu_c0_hr_b0 = {
555 .name = "Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW)",
556 .fw_name_pre = IWL_QU_C_HR_B_FW_PRE,
557 IWL_DEVICE_22500,
558
559
560
561
562
563 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
564 };
565
566 const struct iwl_cfg killer1650i_2ax_cfg_qu_c0_hr_b0 = {
567 .name = "Killer(R) Wi-Fi 6 AX1650s 160MHz Wireless Network Adapter (201D2W)",
568 .fw_name_pre = IWL_QU_C_HR_B_FW_PRE,
569 IWL_DEVICE_22500,
570
571
572
573
574
575 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
576 };
577
578 const struct iwl_cfg iwl22000_2ax_cfg_jf = {
579 .name = "Intel(R) Dual Band Wireless AX 22000",
580 .fw_name_pre = IWL_QU_B_JF_B_FW_PRE,
581 IWL_DEVICE_22500,
582
583
584
585
586
587 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
588 };
589
590 const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_a0_f0 = {
591 .name = "Intel(R) Dual Band Wireless AX 22000",
592 .fw_name_pre = IWL_22000_HR_A_F0_FW_PRE,
593 IWL_DEVICE_22500,
594
595
596
597
598
599 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
600 };
601
602 const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_b0 = {
603 .name = "Intel(R) Dual Band Wireless AX 22000",
604 .fw_name_pre = IWL_22000_HR_B_FW_PRE,
605 IWL_DEVICE_22500,
606
607
608
609
610
611 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
612 };
613
614 const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_a0 = {
615 .name = "Intel(R) Dual Band Wireless AX 22000",
616 .fw_name_pre = IWL_22000_HR_A0_FW_PRE,
617 IWL_DEVICE_22500,
618
619
620
621
622
623 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
624 };
625
626 const struct iwl_cfg iwlax210_2ax_cfg_so_jf_a0 = {
627 .name = "Intel(R) Wireless-AC 9560 160MHz",
628 .fw_name_pre = IWL_22000_SO_A_JF_B_FW_PRE,
629 IWL_DEVICE_AX210,
630 };
631
632 const struct iwl_cfg iwlax210_2ax_cfg_so_hr_a0 = {
633 .name = "Intel(R) Wi-Fi 7 AX210 160MHz",
634 .fw_name_pre = IWL_22000_SO_A_HR_B_FW_PRE,
635 IWL_DEVICE_AX210,
636 };
637
638 const struct iwl_cfg iwlax211_2ax_cfg_so_gf_a0 = {
639 .name = "Intel(R) Wi-Fi 7 AX211 160MHz",
640 .fw_name_pre = IWL_22000_SO_A_GF_A_FW_PRE,
641 .uhb_supported = true,
642 IWL_DEVICE_AX210,
643 };
644
645 const struct iwl_cfg iwlax210_2ax_cfg_ty_gf_a0 = {
646 .name = "Intel(R) Wi-Fi 7 AX210 160MHz",
647 .fw_name_pre = IWL_22000_TY_A_GF_A_FW_PRE,
648 .uhb_supported = true,
649 IWL_DEVICE_AX210,
650 };
651
652 const struct iwl_cfg iwlax411_2ax_cfg_so_gf4_a0 = {
653 .name = "Intel(R) Wi-Fi 7 AX411 160MHz",
654 .fw_name_pre = IWL_22000_SO_A_GF4_A_FW_PRE,
655 IWL_DEVICE_AX210,
656 };
657
658 MODULE_FIRMWARE(IWL_22000_HR_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
659 MODULE_FIRMWARE(IWL_22000_JF_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
660 MODULE_FIRMWARE(IWL_22000_HR_A_F0_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
661 MODULE_FIRMWARE(IWL_22000_HR_B_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
662 MODULE_FIRMWARE(IWL_22000_HR_A0_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
663 MODULE_FIRMWARE(IWL_QU_C_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
664 MODULE_FIRMWARE(IWL_QU_B_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
665 MODULE_FIRMWARE(IWL_QUZ_A_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
666 MODULE_FIRMWARE(IWL_QUZ_A_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
667 MODULE_FIRMWARE(IWL_QNJ_B_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
668 MODULE_FIRMWARE(IWL_CC_A_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
669 MODULE_FIRMWARE(IWL_22000_SO_A_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
670 MODULE_FIRMWARE(IWL_22000_SO_A_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
671 MODULE_FIRMWARE(IWL_22000_SO_A_GF_A_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
672 MODULE_FIRMWARE(IWL_22000_TY_A_GF_A_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));