diff options
| author | Luca Coelho <luciano.coelho@intel.com> | 2019-01-14 07:56:02 -0500 |
|---|---|---|
| committer | Luca Coelho <luciano.coelho@intel.com> | 2019-02-14 04:29:50 -0500 |
| commit | 81edb6ad9399b1c3de30bee5fd3e885c32c665e6 (patch) | |
| tree | 72d00b2f12cdd64fcb28b71b9ff6e355a205e04c /drivers/net/wireless/intel | |
| parent | 937b10c0de68c56512fb8cd484af3c0b356fc09e (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.c | 36 | ||||
| -rw-r--r-- | drivers/net/wireless/intel/iwlwifi/iwl-config.h | 2 | ||||
| -rw-r--r-- | drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 8 |
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 | ||
| 306 | const 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 | |||
| 304 | const struct iwl_cfg killer1550i_2ac_cfg_qu_b0_jf_b0 = { | 318 | const 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 | ||
| 376 | const 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 | |||
| 388 | const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_a0 = { | 390 | const 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)); | |||
| 439 | MODULE_FIRMWARE(IWL_22000_HR_A_F0_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); | 441 | MODULE_FIRMWARE(IWL_22000_HR_A_F0_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); |
| 440 | MODULE_FIRMWARE(IWL_22000_HR_B_F0_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); | 442 | MODULE_FIRMWARE(IWL_22000_HR_B_F0_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); |
| 441 | MODULE_FIRMWARE(IWL_22000_HR_B_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); | 443 | MODULE_FIRMWARE(IWL_22000_HR_B_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); |
| 442 | MODULE_FIRMWARE(IWL_22000_JF_B0_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); | ||
| 443 | MODULE_FIRMWARE(IWL_22000_HR_A0_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); | 444 | MODULE_FIRMWARE(IWL_22000_HR_A0_QNJ_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); |
| 444 | MODULE_FIRMWARE(IWL_22000_SU_Z0_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); | 445 | MODULE_FIRMWARE(IWL_22000_SU_Z0_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); |
| 445 | MODULE_FIRMWARE(IWL_QU_B_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); | 446 | MODULE_FIRMWARE(IWL_QU_B_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); |
| 447 | MODULE_FIRMWARE(IWL_QNJ_B_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); | ||
| 446 | MODULE_FIRMWARE(IWL_CC_A_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); | 448 | MODULE_FIRMWARE(IWL_CC_A_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); |
| 447 | MODULE_FIRMWARE(IWL_22000_SO_A_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); | 449 | MODULE_FIRMWARE(IWL_22000_SO_A_JF_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); |
| 448 | MODULE_FIRMWARE(IWL_22000_SO_A_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); | 450 | MODULE_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; | |||
| 565 | extern const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_a0_f0; | 565 | extern const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_a0_f0; |
| 566 | extern const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_b0_f0; | 566 | extern const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_b0_f0; |
| 567 | extern const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_b0; | 567 | extern const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_b0; |
| 568 | extern const struct iwl_cfg iwl22000_2ax_cfg_qnj_jf_b0; | 568 | extern const struct iwl_cfg iwl9560_2ac_cfg_qnj_jf_b0; |
| 569 | extern const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_a0; | 569 | extern const struct iwl_cfg iwl22000_2ax_cfg_qnj_hr_a0; |
| 570 | extern const struct iwl_cfg iwl22560_2ax_cfg_su_cdb; | 570 | extern const struct iwl_cfg iwl22560_2ax_cfg_su_cdb; |
| 571 | extern const struct iwl_cfg iwlax210_2ax_cfg_so_jf_a0; | 571 | extern 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) { |
