57
57
#include "iwl-prph.h"
58
58
59
59
/* Highest firmware API version supported */
60
- #define IWL_22000_UCODE_API_MAX 52
60
+ #define IWL_22000_UCODE_API_MAX 53
61
61
62
62
/* Lowest firmware API version supported */
63
63
#define IWL_22000_UCODE_API_MIN 39
76
76
#define IWL_22000_JF_FW_PRE "iwlwifi-Qu-a0-jf-b0-"
77
77
#define IWL_22000_HR_FW_PRE "iwlwifi-Qu-a0-hr-a0-"
78
78
#define IWL_22000_HR_CDB_FW_PRE "iwlwifi-QuIcp-z0-hrcdb-a0-"
79
- #define IWL_22000_HR_A_F0_FW_PRE "iwlwifi-QuQnj-f0-hr-a0-"
80
79
#define IWL_22000_QU_B_HR_B_FW_PRE "iwlwifi-Qu-b0-hr-b0-"
81
80
#define IWL_22000_HR_B_FW_PRE "iwlwifi-QuQnj-b0-hr-b0-"
82
- #define IWL_22000_HR_A0_FW_PRE "iwlwifi-QuQnj-a0-hr-a0-"
83
81
#define IWL_QU_C_HR_B_FW_PRE "iwlwifi-Qu-c0-hr-b0-"
84
82
#define IWL_QU_B_JF_B_FW_PRE "iwlwifi-Qu-b0-jf-b0-"
85
83
#define IWL_QU_C_JF_B_FW_PRE "iwlwifi-Qu-c0-jf-b0-"
98
96
IWL_22000_HR_FW_PRE __stringify(api) ".ucode"
99
97
#define IWL_22000_JF_MODULE_FIRMWARE (api ) \
100
98
IWL_22000_JF_FW_PRE __stringify(api) ".ucode"
101
- #define IWL_22000_HR_A_F0_QNJ_MODULE_FIRMWARE (api ) \
102
- IWL_22000_HR_A_F0_FW_PRE __stringify(api) ".ucode"
103
99
#define IWL_22000_QU_B_HR_B_MODULE_FIRMWARE (api ) \
104
100
IWL_22000_QU_B_HR_B_FW_PRE __stringify(api) ".ucode"
105
101
#define IWL_22000_HR_B_QNJ_MODULE_FIRMWARE (api ) \
106
102
IWL_22000_HR_B_FW_PRE __stringify(api) ".ucode"
107
- #define IWL_22000_HR_A0_QNJ_MODULE_FIRMWARE (api ) \
108
- IWL_22000_HR_A0_FW_PRE __stringify(api) ".ucode"
109
103
#define IWL_QUZ_A_HR_B_MODULE_FIRMWARE (api ) \
110
104
IWL_QUZ_A_HR_B_FW_PRE __stringify(api) ".ucode"
111
105
#define IWL_QUZ_A_JF_B_MODULE_FIRMWARE (api ) \
@@ -235,6 +229,38 @@ static const struct iwl_ht_params iwl_22000_ht_params = {
235
229
}, \
236
230
}
237
231
232
+ const struct iwl_cfg_trans_params iwl_qu_trans_cfg = {
233
+ .mq_rx_supported = true,
234
+ .use_tfh = true,
235
+ .rf_id = true,
236
+ .gen2 = true,
237
+ .device_family = IWL_DEVICE_FAMILY_22000 ,
238
+ .base_params = & iwl_22000_base_params ,
239
+ .integrated = true,
240
+ .xtal_latency = 5000 ,
241
+ };
242
+
243
+ const struct iwl_cfg_trans_params iwl_qu_long_latency_trans_cfg = {
244
+ .mq_rx_supported = true,
245
+ .use_tfh = true,
246
+ .rf_id = true,
247
+ .gen2 = true,
248
+ .device_family = IWL_DEVICE_FAMILY_22000 ,
249
+ .base_params = & iwl_22000_base_params ,
250
+ .integrated = true,
251
+ .xtal_latency = 12000 ,
252
+ .low_latency_xtal = true,
253
+ };
254
+
255
+ const struct iwl_cfg_trans_params iwl_qnj_trans_cfg = {
256
+ .mq_rx_supported = true,
257
+ .use_tfh = true,
258
+ .rf_id = true,
259
+ .gen2 = true,
260
+ .device_family = IWL_DEVICE_FAMILY_22000 ,
261
+ .base_params = & iwl_22000_base_params ,
262
+ };
263
+
238
264
/*
239
265
* If the device doesn't support HE, no need to have that many buffers.
240
266
* 22000 devices can split multiple frames into a single RB, so fewer are
@@ -246,6 +272,47 @@ static const struct iwl_ht_params iwl_22000_ht_params = {
246
272
#define IWL_NUM_RBDS_22000_HE 2048
247
273
#define IWL_NUM_RBDS_AX210_HE 4096
248
274
275
+ /*
276
+ * All JF radio modules are part of the 9000 series, but the MAC part
277
+ * looks more like 22000. That's why this device is here, but called
278
+ * 9560 nevertheless.
279
+ */
280
+ const struct iwl_cfg iwl9560_qu_b0_jf_b0_cfg = {
281
+ .fw_name_pre = IWL_QU_B_JF_B_FW_PRE ,
282
+ IWL_DEVICE_22500 ,
283
+ .num_rbds = IWL_NUM_RBDS_NON_HE ,
284
+ };
285
+
286
+ const struct iwl_cfg iwl9560_qu_c0_jf_b0_cfg = {
287
+ .fw_name_pre = IWL_QU_C_JF_B_FW_PRE ,
288
+ IWL_DEVICE_22500 ,
289
+ .num_rbds = IWL_NUM_RBDS_NON_HE ,
290
+ };
291
+
292
+ const struct iwl_cfg iwl9560_quz_a0_jf_b0_cfg = {
293
+ .fw_name_pre = IWL_QUZ_A_JF_B_FW_PRE ,
294
+ IWL_DEVICE_22500 ,
295
+ /*
296
+ * This device doesn't support receiving BlockAck with a large bitmap
297
+ * so we need to restrict the size of transmitted aggregation to the
298
+ * HT size; mac80211 would otherwise pick the HE max (256) by default.
299
+ */
300
+ .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT ,
301
+ .num_rbds = IWL_NUM_RBDS_NON_HE ,
302
+ };
303
+
304
+ const struct iwl_cfg iwl9560_qnj_b0_jf_b0_cfg = {
305
+ .fw_name_pre = IWL_QNJ_B_JF_B_FW_PRE ,
306
+ IWL_DEVICE_22500 ,
307
+ /*
308
+ * This device doesn't support receiving BlockAck with a large bitmap
309
+ * so we need to restrict the size of transmitted aggregation to the
310
+ * HT size; mac80211 would otherwise pick the HE max (256) by default.
311
+ */
312
+ .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT ,
313
+ .num_rbds = IWL_NUM_RBDS_NON_HE ,
314
+ };
315
+
249
316
const struct iwl_cfg_trans_params iwl_ax200_trans_cfg = {
250
317
.device_family = IWL_DEVICE_FAMILY_22000 ,
251
318
.base_params = & iwl_22000_base_params ,
@@ -380,184 +447,6 @@ const struct iwl_cfg iwl_ax200_cfg_cc = {
380
447
.num_rbds = IWL_NUM_RBDS_22000_HE ,
381
448
};
382
449
383
- /*
384
- * All JF radio modules are part of the 9000 series, but the MAC part
385
- * looks more like 22000. That's why this device is here, but called
386
- * 9560 nevertheless.
387
- */
388
- const struct iwl_cfg iwl9461_2ac_cfg_qu_b0_jf_b0 = {
389
- .name = "Intel(R) Wireless-AC 9461" ,
390
- .fw_name_pre = IWL_QU_B_JF_B_FW_PRE ,
391
- IWL_DEVICE_22500 ,
392
- .num_rbds = IWL_NUM_RBDS_NON_HE ,
393
- };
394
-
395
- const struct iwl_cfg iwl9462_2ac_cfg_qu_b0_jf_b0 = {
396
- .name = "Intel(R) Wireless-AC 9462" ,
397
- .fw_name_pre = IWL_QU_B_JF_B_FW_PRE ,
398
- IWL_DEVICE_22500 ,
399
- .num_rbds = IWL_NUM_RBDS_NON_HE ,
400
- };
401
-
402
- const struct iwl_cfg iwl9560_2ac_cfg_qu_b0_jf_b0 = {
403
- .name = "Intel(R) Wireless-AC 9560" ,
404
- .fw_name_pre = IWL_QU_B_JF_B_FW_PRE ,
405
- IWL_DEVICE_22500 ,
406
- .num_rbds = IWL_NUM_RBDS_NON_HE ,
407
- };
408
-
409
- const struct iwl_cfg iwl9560_2ac_160_cfg_qu_b0_jf_b0 = {
410
- .name = "Intel(R) Wireless-AC 9560 160MHz" ,
411
- .fw_name_pre = IWL_QU_B_JF_B_FW_PRE ,
412
- IWL_DEVICE_22500 ,
413
- .num_rbds = IWL_NUM_RBDS_NON_HE ,
414
- };
415
-
416
- const struct iwl_cfg iwl9461_2ac_cfg_qu_c0_jf_b0 = {
417
- .name = "Intel(R) Wireless-AC 9461" ,
418
- .fw_name_pre = IWL_QU_C_JF_B_FW_PRE ,
419
- IWL_DEVICE_22500 ,
420
- .num_rbds = IWL_NUM_RBDS_NON_HE ,
421
- };
422
-
423
- const struct iwl_cfg iwl9462_2ac_cfg_qu_c0_jf_b0 = {
424
- .name = "Intel(R) Wireless-AC 9462" ,
425
- .fw_name_pre = IWL_QU_C_JF_B_FW_PRE ,
426
- IWL_DEVICE_22500 ,
427
- .num_rbds = IWL_NUM_RBDS_NON_HE ,
428
- };
429
-
430
- const struct iwl_cfg iwl9560_2ac_cfg_qu_c0_jf_b0 = {
431
- .name = "Intel(R) Wireless-AC 9560" ,
432
- .fw_name_pre = IWL_QU_C_JF_B_FW_PRE ,
433
- IWL_DEVICE_22500 ,
434
- .num_rbds = IWL_NUM_RBDS_NON_HE ,
435
- };
436
-
437
- const struct iwl_cfg iwl9560_2ac_160_cfg_qu_c0_jf_b0 = {
438
- .name = "Intel(R) Wireless-AC 9560 160MHz" ,
439
- .fw_name_pre = IWL_QU_C_JF_B_FW_PRE ,
440
- IWL_DEVICE_22500 ,
441
- .num_rbds = IWL_NUM_RBDS_NON_HE ,
442
- };
443
-
444
- const struct iwl_cfg iwl9560_2ac_cfg_qnj_jf_b0 = {
445
- .name = "Intel(R) Wireless-AC 9560 160MHz" ,
446
- .fw_name_pre = IWL_QNJ_B_JF_B_FW_PRE ,
447
- IWL_DEVICE_22500 ,
448
- /*
449
- * This device doesn't support receiving BlockAck with a large bitmap
450
- * so we need to restrict the size of transmitted aggregation to the
451
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
452
- */
453
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT ,
454
- .num_rbds = IWL_NUM_RBDS_NON_HE ,
455
- };
456
-
457
- const struct iwl_cfg iwl9560_2ac_cfg_quz_a0_jf_b0_soc = {
458
- .name = "Intel(R) Wireless-AC 9560 160MHz" ,
459
- .fw_name_pre = IWL_QUZ_A_JF_B_FW_PRE ,
460
- IWL_DEVICE_22500 ,
461
- /*
462
- * This device doesn't support receiving BlockAck with a large bitmap
463
- * so we need to restrict the size of transmitted aggregation to the
464
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
465
- */
466
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT ,
467
- .integrated = true,
468
- .soc_latency = 5000 ,
469
- .num_rbds = IWL_NUM_RBDS_NON_HE ,
470
- };
471
-
472
- const struct iwl_cfg iwl9560_2ac_160_cfg_quz_a0_jf_b0_soc = {
473
- .name = "Intel(R) Wireless-AC 9560 160MHz" ,
474
- .fw_name_pre = IWL_QUZ_A_JF_B_FW_PRE ,
475
- IWL_DEVICE_22500 ,
476
- /*
477
- * This device doesn't support receiving BlockAck with a large bitmap
478
- * so we need to restrict the size of transmitted aggregation to the
479
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
480
- */
481
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT ,
482
- .integrated = true,
483
- .soc_latency = 5000 ,
484
- .num_rbds = IWL_NUM_RBDS_NON_HE ,
485
- };
486
-
487
- const struct iwl_cfg iwl9461_2ac_cfg_quz_a0_jf_b0_soc = {
488
- .name = "Intel(R) Dual Band Wireless AC 9461" ,
489
- .fw_name_pre = IWL_QUZ_A_JF_B_FW_PRE ,
490
- IWL_DEVICE_22500 ,
491
- /*
492
- * This device doesn't support receiving BlockAck with a large bitmap
493
- * so we need to restrict the size of transmitted aggregation to the
494
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
495
- */
496
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT ,
497
- .integrated = true,
498
- .soc_latency = 5000 ,
499
- .num_rbds = IWL_NUM_RBDS_NON_HE ,
500
- };
501
-
502
- const struct iwl_cfg iwl9462_2ac_cfg_quz_a0_jf_b0_soc = {
503
- .name = "Intel(R) Dual Band Wireless AC 9462" ,
504
- .fw_name_pre = IWL_QUZ_A_JF_B_FW_PRE ,
505
- IWL_DEVICE_22500 ,
506
- /*
507
- * This device doesn't support receiving BlockAck with a large bitmap
508
- * so we need to restrict the size of transmitted aggregation to the
509
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
510
- */
511
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT ,
512
- .integrated = true,
513
- .soc_latency = 5000 ,
514
- .num_rbds = IWL_NUM_RBDS_NON_HE ,
515
- };
516
-
517
- const struct iwl_cfg iwl9560_killer_s_2ac_cfg_quz_a0_jf_b0_soc = {
518
- .name = "Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW)" ,
519
- .fw_name_pre = IWL_QUZ_A_JF_B_FW_PRE ,
520
- IWL_DEVICE_22500 ,
521
- /*
522
- * This device doesn't support receiving BlockAck with a large bitmap
523
- * so we need to restrict the size of transmitted aggregation to the
524
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
525
- */
526
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT ,
527
- .integrated = true,
528
- .soc_latency = 5000 ,
529
- .num_rbds = IWL_NUM_RBDS_NON_HE ,
530
- };
531
-
532
- const struct iwl_cfg iwl9560_killer_i_2ac_cfg_quz_a0_jf_b0_soc = {
533
- .name = "Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)" ,
534
- .fw_name_pre = IWL_QUZ_A_JF_B_FW_PRE ,
535
- IWL_DEVICE_22500 ,
536
- /*
537
- * This device doesn't support receiving BlockAck with a large bitmap
538
- * so we need to restrict the size of transmitted aggregation to the
539
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
540
- */
541
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT ,
542
- .integrated = true,
543
- .soc_latency = 5000 ,
544
- .num_rbds = IWL_NUM_RBDS_NON_HE ,
545
- };
546
-
547
- const struct iwl_cfg killer1550i_2ac_cfg_qu_b0_jf_b0 = {
548
- .name = "Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)" ,
549
- .fw_name_pre = IWL_QU_B_JF_B_FW_PRE ,
550
- IWL_DEVICE_22500 ,
551
- .num_rbds = IWL_NUM_RBDS_NON_HE ,
552
- };
553
-
554
- const struct iwl_cfg killer1550s_2ac_cfg_qu_b0_jf_b0 = {
555
- .name = "Killer (R) Wireless-AC 1550s Wireless Network Adapter (9560NGW)" ,
556
- .fw_name_pre = IWL_QU_B_JF_B_FW_PRE ,
557
- IWL_DEVICE_22500 ,
558
- .num_rbds = IWL_NUM_RBDS_NON_HE ,
559
- };
560
-
561
450
const struct iwl_cfg killer1650s_2ax_cfg_qu_b0_hr_b0 = {
562
451
.name = "Killer(R) Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW)" ,
563
452
.fw_name_pre = IWL_22000_QU_B_HR_B_FW_PRE ,
@@ -610,32 +499,6 @@ const struct iwl_cfg killer1650i_2ax_cfg_qu_c0_hr_b0 = {
610
499
.num_rbds = IWL_NUM_RBDS_22000_HE ,
611
500
};
612
501
613
- const struct iwl_cfg iwl22000_2ax_cfg_jf = {
614
- .name = "Intel(R) Dual Band Wireless AX 22000" ,
615
- .fw_name_pre = IWL_QU_B_JF_B_FW_PRE ,
616
- IWL_DEVICE_22500 ,
617
- /*
618
- * This device doesn't support receiving BlockAck with a large bitmap
619
- * so we need to restrict the size of transmitted aggregation to the
620
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
621
- */
622
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT ,
623
- .num_rbds = IWL_NUM_RBDS_22000_HE ,
624
- };
625
-
626
- const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_a0_f0 = {
627
- .name = "Intel(R) Dual Band Wireless AX 22000" ,
628
- .fw_name_pre = IWL_22000_HR_A_F0_FW_PRE ,
629
- IWL_DEVICE_22500 ,
630
- /*
631
- * This device doesn't support receiving BlockAck with a large bitmap
632
- * so we need to restrict the size of transmitted aggregation to the
633
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
634
- */
635
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT ,
636
- .num_rbds = IWL_NUM_RBDS_22000_HE ,
637
- };
638
-
639
502
const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_b0 = {
640
503
.name = "Intel(R) Dual Band Wireless AX 22000" ,
641
504
.fw_name_pre = IWL_22000_HR_B_FW_PRE ,
@@ -649,19 +512,6 @@ const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_b0 = {
649
512
.num_rbds = IWL_NUM_RBDS_22000_HE ,
650
513
};
651
514
652
- const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_a0 = {
653
- .name = "Intel(R) Dual Band Wireless AX 22000" ,
654
- .fw_name_pre = IWL_22000_HR_A0_FW_PRE ,
655
- IWL_DEVICE_22500 ,
656
- /*
657
- * This device doesn't support receiving BlockAck with a large bitmap
658
- * so we need to restrict the size of transmitted aggregation to the
659
- * HT size; mac80211 would otherwise pick the HE max (256) by default.
660
- */
661
- .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT ,
662
- .num_rbds = IWL_NUM_RBDS_22000_HE ,
663
- };
664
-
665
515
const struct iwl_cfg iwlax210_2ax_cfg_so_jf_a0 = {
666
516
.name = "Intel(R) Wireless-AC 9560 160MHz" ,
667
517
.fw_name_pre = IWL_22000_SO_A_JF_B_FW_PRE ,
@@ -710,9 +560,7 @@ const struct iwl_cfg iwlax411_2ax_cfg_sosnj_gf4_a0 = {
710
560
711
561
MODULE_FIRMWARE (IWL_22000_HR_MODULE_FIRMWARE (IWL_22000_UCODE_API_MAX ));
712
562
MODULE_FIRMWARE (IWL_22000_JF_MODULE_FIRMWARE (IWL_22000_UCODE_API_MAX ));
713
- MODULE_FIRMWARE (IWL_22000_HR_A_F0_QNJ_MODULE_FIRMWARE (IWL_22000_UCODE_API_MAX ));
714
563
MODULE_FIRMWARE (IWL_22000_HR_B_QNJ_MODULE_FIRMWARE (IWL_22000_UCODE_API_MAX ));
715
- MODULE_FIRMWARE (IWL_22000_HR_A0_QNJ_MODULE_FIRMWARE (IWL_22000_UCODE_API_MAX ));
716
564
MODULE_FIRMWARE (IWL_QU_C_HR_B_MODULE_FIRMWARE (IWL_22000_UCODE_API_MAX ));
717
565
MODULE_FIRMWARE (IWL_QU_B_JF_B_MODULE_FIRMWARE (IWL_22000_UCODE_API_MAX ));
718
566
MODULE_FIRMWARE (IWL_QUZ_A_HR_B_MODULE_FIRMWARE (IWL_22000_UCODE_API_MAX ));
0 commit comments