| From 410f758529bc227b186ba0846bcc75ac0700ffb2 Mon Sep 17 00:00:00 2001 |
| From: Ihab Zhaika <ihab.zhaika@intel.com> |
| Date: Sat, 6 Feb 2021 13:01:10 +0200 |
| Subject: iwlwifi: add new cards for So and Qu family |
| |
| From: Ihab Zhaika <ihab.zhaika@intel.com> |
| |
| commit 410f758529bc227b186ba0846bcc75ac0700ffb2 upstream. |
| |
| add few PCI ID'S for So with Hr and Qu with Hr in AX family. |
| |
| Cc: stable@vger.kernel.org |
| Signed-off-by: Ihab Zhaika <ihab.zhaika@intel.com> |
| Signed-off-by: Luca Coelho <luciano.coelho@intel.com> |
| Link: https://lore.kernel.org/r/iwlwifi.20210206130110.6f0c1849f7dc.I647b4d22f9468c2f34b777a4bfa445912c6f04f0@changeid |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/net/wireless/intel/iwlwifi/cfg/22000.c | 18 ++++++++++++++++ |
| drivers/net/wireless/intel/iwlwifi/iwl-config.h | 3 ++ |
| drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 26 ++++++++++++++++++++++++ |
| 3 files changed, 47 insertions(+) |
| |
| --- a/drivers/net/wireless/intel/iwlwifi/cfg/22000.c |
| +++ b/drivers/net/wireless/intel/iwlwifi/cfg/22000.c |
| @@ -635,6 +635,24 @@ const struct iwl_cfg iwl_cfg_snj_a0_mr_a |
| .num_rbds = IWL_NUM_RBDS_AX210_HE, |
| }; |
| |
| +const struct iwl_cfg iwl_cfg_so_a0_hr_a0 = { |
| + .fw_name_pre = IWL_SO_A_HR_B_FW_PRE, |
| + IWL_DEVICE_AX210, |
| + .num_rbds = IWL_NUM_RBDS_AX210_HE, |
| +}; |
| + |
| +const struct iwl_cfg iwl_cfg_quz_a0_hr_b0 = { |
| + .fw_name_pre = IWL_QUZ_A_HR_B_FW_PRE, |
| + IWL_DEVICE_22500, |
| + /* |
| + * This device doesn't support receiving BlockAck with a large bitmap |
| + * so we need to restrict the size of transmitted aggregation to the |
| + * HT size; mac80211 would otherwise pick the HE max (256) by default. |
| + */ |
| + .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT, |
| + .num_rbds = IWL_NUM_RBDS_22000_HE, |
| +}; |
| + |
| MODULE_FIRMWARE(IWL_QU_B_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); |
| MODULE_FIRMWARE(IWL_QNJ_B_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); |
| MODULE_FIRMWARE(IWL_QU_C_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); |
| --- a/drivers/net/wireless/intel/iwlwifi/iwl-config.h |
| +++ b/drivers/net/wireless/intel/iwlwifi/iwl-config.h |
| @@ -418,6 +418,7 @@ struct iwl_cfg { |
| #define IWL_CFG_MAC_TYPE_QU 0x33 |
| #define IWL_CFG_MAC_TYPE_QUZ 0x35 |
| #define IWL_CFG_MAC_TYPE_QNJ 0x36 |
| +#define IWL_CFG_MAC_TYPE_SO 0x37 |
| #define IWL_CFG_MAC_TYPE_SNJ 0x42 |
| #define IWL_CFG_MAC_TYPE_MA 0x44 |
| |
| @@ -604,6 +605,8 @@ extern const struct iwl_cfg iwlax201_cfg |
| extern const struct iwl_cfg iwl_cfg_ma_a0_gf_a0; |
| extern const struct iwl_cfg iwl_cfg_ma_a0_mr_a0; |
| extern const struct iwl_cfg iwl_cfg_snj_a0_mr_a0; |
| +extern const struct iwl_cfg iwl_cfg_so_a0_hr_a0; |
| +extern const struct iwl_cfg iwl_cfg_quz_a0_hr_b0; |
| #endif /* CONFIG_IWLMVM */ |
| |
| #endif /* __IWL_CONFIG_H__ */ |
| --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c |
| +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c |
| @@ -934,6 +934,11 @@ static const struct iwl_dev_info iwl_dev |
| IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, |
| IWL_CFG_ANY, IWL_CFG_ANY, |
| iwl_quz_a0_hr1_b0, iwl_ax101_name), |
| + _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
| + IWL_CFG_MAC_TYPE_QUZ, SILICON_B_STEP, |
| + IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, |
| + IWL_CFG_NO_160, IWL_CFG_ANY, |
| + iwl_cfg_quz_a0_hr_b0, iwl_ax203_name), |
| |
| /* Ma */ |
| _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
| @@ -952,6 +957,27 @@ static const struct iwl_dev_info iwl_dev |
| IWL_CFG_ANY, IWL_CFG_ANY, |
| iwl_cfg_snj_a0_mr_a0, iwl_ma_name), |
| |
| +/* So with Hr */ |
| + _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
| + IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, |
| + IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, |
| + IWL_CFG_NO_160, IWL_CFG_ANY, |
| + iwl_cfg_so_a0_hr_a0, iwl_ax203_name), |
| + _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
| + IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, |
| + IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, |
| + IWL_CFG_NO_160, IWL_CFG_ANY, |
| + iwl_cfg_so_a0_hr_a0, iwl_ax203_name), |
| + _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
| + IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, |
| + IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, |
| + IWL_CFG_160, IWL_CFG_ANY, |
| + iwl_cfg_so_a0_hr_a0, iwl_ax101_name), |
| + _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, |
| + IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, |
| + IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, |
| + IWL_CFG_160, IWL_CFG_ANY, |
| + iwl_cfg_so_a0_hr_a0, iwl_ax201_name) |
| |
| #endif /* CONFIG_IWLMVM */ |
| }; |