aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/intel
diff options
context:
space:
mode:
authorLuca Coelho <luciano.coelho@intel.com>2019-01-14 07:56:02 -0500
committerLuca Coelho <luciano.coelho@intel.com>2019-02-14 04:29:50 -0500
commit81edb6ad9399b1c3de30bee5fd3e885c32c665e6 (patch)
tree72d00b2f12cdd64fcb28b71b9ff6e355a205e04c /drivers/net/wireless/intel
parent937b10c0de68c56512fb8cd484af3c0b356fc09e (diff)
iwlwifi: start using B-step for some 9000 devices
We don't support A-step for some device combinations anymore. So change them to use B-step, renaming and reorganizing the config structures. Additionally, fix one device that was using the wrong configuration. Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Diffstat (limited to 'drivers/net/wireless/intel')
-rw-r--r--drivers/net/wireless/intel/iwlwifi/cfg/22000.c36
-rw-r--r--drivers/net/wireless/intel/iwlwifi/iwl-config.h2
-rw-r--r--drivers/net/wireless/intel/iwlwifi/pcie/drv.c8
3 files changed, 24 insertions, 22 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/22000.c b/drivers/net/wireless/intel/iwlwifi/cfg/22000.c
index fd8416c53819..2d472a04807f 100644
--- a/drivers/net/wireless/intel/iwlwifi/cfg/22000.c
+++ b/drivers/net/wireless/intel/iwlwifi/cfg/22000.c
@@ -79,10 +79,10 @@
79#define IWL_22000_HR_B_F0_FW_PRE "iwlwifi-Qu-b0-hr-b0-" 79#define IWL_22000_HR_B_F0_FW_PRE "iwlwifi-Qu-b0-hr-b0-"
80#define IWL_22000_QU_B_HR_B_FW_PRE "iwlwifi-Qu-b0-hr-b0-" 80#define IWL_22000_QU_B_HR_B_FW_PRE "iwlwifi-Qu-b0-hr-b0-"
81#define IWL_22000_HR_B_FW_PRE "iwlwifi-QuQnj-b0-hr-b0-" 81#define IWL_22000_HR_B_FW_PRE "iwlwifi-QuQnj-b0-hr-b0-"
82#define IWL_22000_JF_B0_FW_PRE "iwlwifi-QuQnj-a0-jf-b0-"
83#define IWL_22000_HR_A0_FW_PRE "iwlwifi-QuQnj-a0-hr-a0-" 82#define IWL_22000_HR_A0_FW_PRE "iwlwifi-QuQnj-a0-hr-a0-"
84#define IWL_22000_SU_Z0_FW_PRE "iwlwifi-su-z0-" 83#define IWL_22000_SU_Z0_FW_PRE "iwlwifi-su-z0-"
85#define IWL_QU_B_JF_B_FW_PRE "iwlwifi-Qu-b0-jf-b0-" 84#define IWL_QU_B_JF_B_FW_PRE "iwlwifi-Qu-b0-jf-b0-"
85#define IWL_QNJ_B_JF_B_FW_PRE "iwlwifi-QuQnj-b0-jf-b0-"
86#define IWL_CC_A_FW_PRE "iwlwifi-cc-a0-" 86#define IWL_CC_A_FW_PRE "iwlwifi-cc-a0-"
87#define IWL_22000_SO_A_JF_B_FW_PRE "iwlwifi-so-a0-jf-b0-" 87#define IWL_22000_SO_A_JF_B_FW_PRE "iwlwifi-so-a0-jf-b0-"
88#define IWL_22000_SO_A_HR_B_FW_PRE "iwlwifi-so-a0-hr-b0-" 88#define IWL_22000_SO_A_HR_B_FW_PRE "iwlwifi-so-a0-hr-b0-"
@@ -101,15 +101,17 @@
101 IWL_22000_QU_B_HR_B_FW_PRE __stringify(api) ".ucode" 101 IWL_22000_QU_B_HR_B_FW_PRE __stringify(api) ".ucode"
102#define IWL_22000_HR_B_QNJ_MODULE_FIRMWARE(api) \ 102#define IWL_22000_HR_B_QNJ_MODULE_FIRMWARE(api) \
103 IWL_22000_HR_B_FW_PRE __stringify(api) ".ucode" 103 IWL_22000_HR_B_FW_PRE __stringify(api) ".ucode"
104#define IWL_22000_JF_B0_QNJ_MODULE_FIRMWARE(api) \
105 IWL_22000_JF_B0_FW_PRE __stringify(api) ".ucode"
106#define IWL_22000_HR_A0_QNJ_MODULE_FIRMWARE(api) \ 104#define IWL_22000_HR_A0_QNJ_MODULE_FIRMWARE(api) \
107 IWL_22000_HR_A0_FW_PRE __stringify(api) ".ucode" 105 IWL_22000_HR_A0_FW_PRE __stringify(api) ".ucode"
108#define IWL_22000_SU_Z0_MODULE_FIRMWARE(api) \ 106#define IWL_22000_SU_Z0_MODULE_FIRMWARE(api) \
109 IWL_22000_SU_Z0_FW_PRE __stringify(api) ".ucode" 107 IWL_22000_SU_Z0_FW_PRE __stringify(api) ".ucode"
110#define IWL_QU_B_JF_B_MODULE_FIRMWARE(api) \ 108#define IWL_QU_B_JF_B_MODULE_FIRMWARE(api) \
111 IWL_QU_B_JF_B_FW_PRE __stringify(api) ".ucode" 109 IWL_QU_B_JF_B_FW_PRE __stringify(api) ".ucode"
112#define IWL_CC_A_MODULE_FIRMWARE(api) \ 110#define IWL_QU_B_JF_B_MODULE_FIRMWARE(api) \
111 IWL_QU_B_JF_B_FW_PRE __stringify(api) ".ucode"
112#define IWL_QNJ_B_JF_B_MODULE_FIRMWARE(api) \
113 IWL_QNJ_B_JF_B_FW_PRE __stringify(api) ".ucode"
114#define IWL_CC_A_MODULE_FIRMWARE(api) \
113 IWL_CC_A_FW_PRE __stringify(api) ".ucode" 115 IWL_CC_A_FW_PRE __stringify(api) ".ucode"
114#define IWL_22000_SO_A_JF_B_MODULE_FIRMWARE(api) \ 116#define IWL_22000_SO_A_JF_B_MODULE_FIRMWARE(api) \
115 IWL_22000_SO_A_JF_B_FW_PRE __stringify(api) ".ucode" 117 IWL_22000_SO_A_JF_B_FW_PRE __stringify(api) ".ucode"
@@ -301,6 +303,18 @@ const struct iwl_cfg iwl9560_2ac_160_cfg_qu_b0_jf_b0 = {
301 IWL_DEVICE_22500, 303 IWL_DEVICE_22500,
302}; 304};
303 305
306const struct iwl_cfg iwl9560_2ac_cfg_qnj_jf_b0 = {
307 .name = "Intel(R) Wireless-AC 9560 160MHz",
308 .fw_name_pre = IWL_QNJ_B_JF_B_FW_PRE,
309 IWL_DEVICE_22500,
310 /*
311 * This device doesn't support receiving BlockAck with a large bitmap
312 * so we need to restrict the size of transmitted aggregation to the
313 * HT size; mac80211 would otherwise pick the HE max (256) by default.
314 */
315 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
316};
317
304const struct iwl_cfg killer1550i_2ac_cfg_qu_b0_jf_b0 = { 318const struct iwl_cfg killer1550i_2ac_cfg_qu_b0_jf_b0 = {
305 .name = "Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)", 319 .name = "Killer (R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)",
306 .fw_name_pre = IWL_QU_B_JF_B_FW_PRE, 320 .fw_name_pre = IWL_QU_B_JF_B_FW_PRE,
@@ -373,18 +387,6 @@ const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_b0 = {
373 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT, 387 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
374}; 388};
375 389
376const struct iwl_cfg iwl22000_2ax_cfg_qnj_jf_b0 = {
377 .name = "Intel(R) Dual Band Wireless AX 22000",
378 .fw_name_pre = IWL_22000_JF_B0_FW_PRE,
379 IWL_DEVICE_22500,
380 /*
381 * This device doesn't support receiving BlockAck with a large bitmap
382 * so we need to restrict the size of transmitted aggregation to the
383 * HT size; mac80211 would otherwise pick the HE max (256) by default.
384 */
385 .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT,
386};
387
388const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_a0 = { 390const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_a0 = {
389 .name = "Intel(R) Dual Band Wireless AX 22000", 391 .name = "Intel(R) Dual Band Wireless AX 22000",
390 .fw_name_pre = IWL_22000_HR_A0_FW_PRE, 392 .fw_name_pre = IWL_22000_HR_A0_FW_PRE,
@@ -439,10 +441,10 @@ MODULE_FIRMWARE(IWL_22000_JF_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
439MODULE_FIRMWARE(IWL_22000_HR_A_F0_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); 441MODULE_FIRMWARE(IWL_22000_HR_A_F0_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
440MODULE_FIRMWARE(IWL_22000_HR_B_F0_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); 442MODULE_FIRMWARE(IWL_22000_HR_B_F0_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
441MODULE_FIRMWARE(IWL_22000_HR_B_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); 443MODULE_FIRMWARE(IWL_22000_HR_B_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
442MODULE_FIRMWARE(IWL_22000_JF_B0_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
443MODULE_FIRMWARE(IWL_22000_HR_A0_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); 444MODULE_FIRMWARE(IWL_22000_HR_A0_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
444MODULE_FIRMWARE(IWL_22000_SU_Z0_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); 445MODULE_FIRMWARE(IWL_22000_SU_Z0_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
445MODULE_FIRMWARE(IWL_QU_B_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); 446MODULE_FIRMWARE(IWL_QU_B_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
447MODULE_FIRMWARE(IWL_QNJ_B_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
446MODULE_FIRMWARE(IWL_CC_A_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); 448MODULE_FIRMWARE(IWL_CC_A_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
447MODULE_FIRMWARE(IWL_22000_SO_A_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); 449MODULE_FIRMWARE(IWL_22000_SO_A_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
448MODULE_FIRMWARE(IWL_22000_SO_A_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); 450MODULE_FIRMWARE(IWL_22000_SO_A_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX));
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-config.h b/drivers/net/wireless/intel/iwlwifi/iwl-config.h
index d06196802c61..7f2fa5cc8c2c 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-config.h
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-config.h
@@ -565,7 +565,7 @@ extern const struct iwl_cfg iwl22000_2ax_cfg_jf;
565extern const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_a0_f0; 565extern const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_a0_f0;
566extern const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_b0_f0; 566extern const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_b0_f0;
567extern const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_b0; 567extern const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_b0;
568extern const struct iwl_cfg iwl22000_2ax_cfg_qnj_jf_b0; 568extern const struct iwl_cfg iwl9560_2ac_cfg_qnj_jf_b0;
569extern const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_a0; 569extern const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_a0;
570extern const struct iwl_cfg iwl22560_2ax_cfg_su_cdb; 570extern const struct iwl_cfg iwl22560_2ax_cfg_su_cdb;
571extern const struct iwl_cfg iwlax210_2ax_cfg_so_jf_a0; 571extern const struct iwl_cfg iwlax210_2ax_cfg_so_jf_a0;
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
index 4a1b7bb9a6c6..b839a921cec8 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c
@@ -8,7 +8,7 @@
8 * Copyright(c) 2007 - 2014 Intel Corporation. All rights reserved. 8 * Copyright(c) 2007 - 2014 Intel Corporation. All rights reserved.
9 * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH 9 * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
10 * Copyright(c) 2016-2017 Intel Deutschland GmbH 10 * Copyright(c) 2016-2017 Intel Deutschland GmbH
11 * Copyright(c) 2018 Intel Corporation 11 * Copyright(c) 2018 - 2019 Intel Corporation
12 * 12 *
13 * This program is free software; you can redistribute it and/or modify 13 * This program is free software; you can redistribute it and/or modify
14 * it under the terms of version 2 of the GNU General Public License as 14 * it under the terms of version 2 of the GNU General Public License as
@@ -32,7 +32,7 @@
32 * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH 32 * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
33 * All rights reserved. 33 * All rights reserved.
34 * Copyright(c) 2017 Intel Deutschland GmbH 34 * Copyright(c) 2017 Intel Deutschland GmbH
35 * Copyright(c) 2018 Intel Corporation 35 * Copyright(c) 2018 - 2019 Intel Corporation
36 * 36 *
37 * Redistribution and use in source and binary forms, with or without 37 * Redistribution and use in source and binary forms, with or without
38 * modification, are permitted provided that the following conditions 38 * modification, are permitted provided that the following conditions
@@ -872,6 +872,7 @@ static const struct pci_device_id iwl_hw_card_ids[] = {
872 {IWL_PCI_DEVICE(0xA370, 0x40A4, iwl9462_2ac_cfg_soc)}, 872 {IWL_PCI_DEVICE(0xA370, 0x40A4, iwl9462_2ac_cfg_soc)},
873 {IWL_PCI_DEVICE(0xA370, 0x4234, iwl9560_2ac_cfg_soc)}, 873 {IWL_PCI_DEVICE(0xA370, 0x4234, iwl9560_2ac_cfg_soc)},
874 {IWL_PCI_DEVICE(0xA370, 0x42A4, iwl9462_2ac_cfg_soc)}, 874 {IWL_PCI_DEVICE(0xA370, 0x42A4, iwl9462_2ac_cfg_soc)},
875 {IWL_PCI_DEVICE(0x2720, 0x0030, iwl9560_2ac_cfg_qnj_jf_b0)},
875 876
876/* 22000 Series */ 877/* 22000 Series */
877 {IWL_PCI_DEVICE(0x02F0, 0x0070, iwl22560_2ax_cfg_hr)}, 878 {IWL_PCI_DEVICE(0x02F0, 0x0070, iwl22560_2ax_cfg_hr)},
@@ -891,7 +892,6 @@ static const struct pci_device_id iwl_hw_card_ids[] = {
891 {IWL_PCI_DEVICE(0x06F0, 0x1652, killer1650i_2ax_cfg_qu_b0_hr_b0)}, 892 {IWL_PCI_DEVICE(0x06F0, 0x1652, killer1650i_2ax_cfg_qu_b0_hr_b0)},
892 {IWL_PCI_DEVICE(0x06F0, 0x4070, iwl22560_2ax_cfg_hr)}, 893 {IWL_PCI_DEVICE(0x06F0, 0x4070, iwl22560_2ax_cfg_hr)},
893 {IWL_PCI_DEVICE(0x2720, 0x0000, iwl22560_2ax_cfg_hr)}, 894 {IWL_PCI_DEVICE(0x2720, 0x0000, iwl22560_2ax_cfg_hr)},
894 {IWL_PCI_DEVICE(0x2720, 0x0030, iwl9560_2ac_160_cfg_soc)},
895 {IWL_PCI_DEVICE(0x2720, 0x0040, iwl22560_2ax_cfg_hr)}, 895 {IWL_PCI_DEVICE(0x2720, 0x0040, iwl22560_2ax_cfg_hr)},
896 {IWL_PCI_DEVICE(0x2720, 0x0070, iwl22000_2ac_cfg_hr_cdb)}, 896 {IWL_PCI_DEVICE(0x2720, 0x0070, iwl22000_2ac_cfg_hr_cdb)},
897 {IWL_PCI_DEVICE(0x2720, 0x0074, iwl22560_2ax_cfg_hr)}, 897 {IWL_PCI_DEVICE(0x2720, 0x0074, iwl22560_2ax_cfg_hr)},
@@ -1007,7 +1007,7 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
1007 1007
1008 if (rf_id_chp == jf_chp_id) { 1008 if (rf_id_chp == jf_chp_id) {
1009 if (iwl_trans->hw_rev == CSR_HW_REV_TYPE_QNJ) 1009 if (iwl_trans->hw_rev == CSR_HW_REV_TYPE_QNJ)
1010 cfg = &iwl22000_2ax_cfg_qnj_jf_b0; 1010 cfg = &iwl9560_2ac_cfg_qnj_jf_b0;
1011 else 1011 else
1012 cfg = &iwl22000_2ac_cfg_jf; 1012 cfg = &iwl22000_2ac_cfg_jf;
1013 } else if (rf_id_chp == hr_chp_id) { 1013 } else if (rf_id_chp == hr_chp_id) {