Message ID | 20230613155501.de019d7cc174.I806f0f6042b89274192701a60b4f7900822db666@changeid |
---|---|
State | New |
Headers | show |
Series | wifi: iwlwifi: updates intended for v6.5 2023-06-13 | expand |
On 6/13/2023 8:57 PM, gregory.greenman@intel.com wrote: > From: Gregory Greenman <gregory.greenman@intel.com> > > Add support for Extra EHT LTF defined in 9.4.2.313 > EHT Capabilities element. > > Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> > --- > drivers/net/wireless/intel/iwlwifi/fw/api/rs.h | 2 ++ > .../net/wireless/intel/iwlwifi/iwl-nvm-parse.c | 2 ++ > drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c | 15 +++++++++++++++ > include/linux/ieee80211.h | 1 + > 4 files changed, 20 insertions(+) > This patch changed both ieee80211.h and iwlwifi, if separate the change of ieee80211.h to another patch such as commit 4fdeb8471302(wifi: ieee80211: clean up public action codes), then it will be easy for someone to pick the patch if he/she only need the change of ieee80211.h. Also same for commit 2c9abe653bc5(wifi: ieee80211: correctly mark FTM frames non-bufferable) and commit 1a30a6b25f26(wifi: brcmfmac: p2p: Introduce generic flexible array frame member). Right?😁
Hi Johannes, On 7/20/2023 12:02 PM, Wen Gong wrote: > On 6/13/2023 8:57 PM, gregory.greenman@intel.com wrote: >> From: Gregory Greenman <gregory.greenman@intel.com> >> >> Add support for Extra EHT LTF defined in 9.4.2.313 >> EHT Capabilities element. >> >> Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> >> --- >> drivers/net/wireless/intel/iwlwifi/fw/api/rs.h | 2 ++ >> .../net/wireless/intel/iwlwifi/iwl-nvm-parse.c | 2 ++ >> drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c | 15 +++++++++++++++ >> include/linux/ieee80211.h | 1 + >> 4 files changed, 20 insertions(+) >> > This patch changed both ieee80211.h and iwlwifi, if separate the > change of ieee80211.h > to another patch such as commit 4fdeb8471302(wifi: ieee80211: clean up > public action codes), > then it will be easy for someone to pick the patch if he/she only need > the change of ieee80211.h. > > Also same for commit 2c9abe653bc5(wifi: ieee80211: correctly mark FTM > frames non-bufferable) > and commit 1a30a6b25f26(wifi: brcmfmac: p2p: Introduce generic > flexible array frame member). > > Right?😁 Hi Johannes, please correct me if something is not correct.😁
On Thu, 2023-07-20 at 12:02 +0800, Wen Gong wrote: > On 6/13/2023 8:57 PM, gregory.greenman@intel.com wrote: > > From: Gregory Greenman <gregory.greenman@intel.com> > > > > Add support for Extra EHT LTF defined in 9.4.2.313 > > EHT Capabilities element. > > > > Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> > > --- > > drivers/net/wireless/intel/iwlwifi/fw/api/rs.h | 2 ++ > > .../net/wireless/intel/iwlwifi/iwl-nvm-parse.c | 2 ++ > > drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c | 15 +++++++++++++++ > > include/linux/ieee80211.h | 1 + > > 4 files changed, 20 insertions(+) > > > This patch changed both ieee80211.h and iwlwifi, if separate the change > of ieee80211.h > to another patch such as commit 4fdeb8471302(wifi: ieee80211: clean up > public action codes), Well, we've not always been so picky about that, and this is literally a single line addition. So there have always been changes like that, and I don't think we'll ever stop. > then it will be easy for someone to pick the patch if he/she only need > the change of ieee80211.h. No. Don't even go there. I don't care about non-upstream stuff you do the slightest. johannes
diff --git a/drivers/net/wireless/intel/iwlwifi/fw/api/rs.h b/drivers/net/wireless/intel/iwlwifi/fw/api/rs.h index c9a48fc5fac8..a1a272433b09 100644 --- a/drivers/net/wireless/intel/iwlwifi/fw/api/rs.h +++ b/drivers/net/wireless/intel/iwlwifi/fw/api/rs.h @@ -21,6 +21,7 @@ * @IWL_TLC_MNG_CFG_FLAGS_HE_DCM_NSS_2_MSK: enable HE Dual Carrier Modulation * for BPSK (MCS 0) with 2 spatial * streams + * @IWL_TLC_MNG_CFG_FLAGS_EHT_EXTRA_LTF_MSK: enable support for EHT extra LTF */ enum iwl_tlc_mng_cfg_flags { IWL_TLC_MNG_CFG_FLAGS_STBC_MSK = BIT(0), @@ -28,6 +29,7 @@ enum iwl_tlc_mng_cfg_flags { IWL_TLC_MNG_CFG_FLAGS_HE_STBC_160MHZ_MSK = BIT(2), IWL_TLC_MNG_CFG_FLAGS_HE_DCM_NSS_1_MSK = BIT(3), IWL_TLC_MNG_CFG_FLAGS_HE_DCM_NSS_2_MSK = BIT(4), + IWL_TLC_MNG_CFG_FLAGS_EHT_EXTRA_LTF_MSK = BIT(6), }; /** diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c index 7edb98ef8093..fad71f490313 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c +++ b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c @@ -1012,6 +1012,8 @@ iwl_nvm_fixup_sband_iftd(struct iwl_trans *trans, iftype_data->eht_cap.eht_cap_elem.phy_cap_info[6] &= ~(IEEE80211_EHT_PHY_CAP6_MCS15_SUPP_MASK | IEEE80211_EHT_PHY_CAP6_EHT_DUP_6GHZ_SUPP); + iftype_data->eht_cap.eht_cap_elem.phy_cap_info[5] |= + IEEE80211_EHT_PHY_CAP5_SUPP_EXTRA_EHT_LTF; } if (fw_has_capa(&fw->ucode_capa, IWL_UCODE_TLV_CAPA_BROADCAST_TWT)) diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c b/drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c index 992642edfcbe..782d53d15a1b 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c @@ -592,6 +592,21 @@ void iwl_mvm_rs_fw_rate_init(struct iwl_mvm *mvm, int cmd_ver; int ret; + /* Enable external EHT LTF only for GL device and if there's + * mutual support by AP and client + */ + if (CSR_HW_REV_TYPE(mvm->trans->hw_rev) == IWL_CFG_MAC_TYPE_GL && + sband->iftype_data->eht_cap.has_eht && + sband->iftype_data->eht_cap.eht_cap_elem.phy_cap_info[5] & + IEEE80211_EHT_PHY_CAP5_SUPP_EXTRA_EHT_LTF && + link_sta->eht_cap.has_eht && + link_sta->eht_cap.eht_cap_elem.phy_cap_info[5] & + IEEE80211_EHT_PHY_CAP5_SUPP_EXTRA_EHT_LTF) { + IWL_DEBUG_RATE(mvm, "Set support for Extra EHT LTF\n"); + cfg_cmd.flags |= + cpu_to_le16(IWL_TLC_MNG_CFG_FLAGS_EHT_EXTRA_LTF_MSK); + } + rcu_read_lock(); mvm_link_sta = rcu_dereference(mvmsta->link[link_id]); if (WARN_ON_ONCE(!mvm_link_sta)) { diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h index 516cd32d6196..5dfed1a6625c 100644 --- a/include/linux/ieee80211.h +++ b/include/linux/ieee80211.h @@ -2859,6 +2859,7 @@ ieee80211_he_spr_size(const u8 *he_spr_ie) /* Maximum number of supported EHT LTF is split */ #define IEEE80211_EHT_PHY_CAP5_MAX_NUM_SUPP_EHT_LTF_MASK 0xc0 +#define IEEE80211_EHT_PHY_CAP5_SUPP_EXTRA_EHT_LTF 0x40 #define IEEE80211_EHT_PHY_CAP6_MAX_NUM_SUPP_EHT_LTF_MASK 0x07 #define IEEE80211_EHT_PHY_CAP6_MCS15_SUPP_MASK 0x78