2023-06-13 13:02:58

by Greenman, Gregory

[permalink] [raw]
Subject: [PATCH 06/14] wifi: iwlwifi: mvm: add support for Extra EHT LTF

From: Gregory Greenman <[email protected]>

Add support for Extra EHT LTF defined in 9.4.2.313
EHT Capabilities element.

Signed-off-by: Gregory Greenman <[email protected]>
---
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(+)

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
--
2.38.1



2023-07-20 04:13:45

by Wen Gong

[permalink] [raw]
Subject: Re: [PATCH 06/14] wifi: iwlwifi: mvm: add support for Extra EHT LTF

On 6/13/2023 8:57 PM, [email protected] wrote:
> From: Gregory Greenman <[email protected]>
>
> Add support for Extra EHT LTF defined in 9.4.2.313
> EHT Capabilities element.
>
> Signed-off-by: Gregory Greenman <[email protected]>
> ---
> 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?????


2023-07-20 08:16:44

by Wen Gong

[permalink] [raw]
Subject: Re: [PATCH 06/14] wifi: iwlwifi: mvm: add support for Extra EHT LTF

Hi Johannes,

On 7/20/2023 12:02 PM, Wen Gong wrote:
> On 6/13/2023 8:57 PM, [email protected] wrote:
>> From: Gregory Greenman <[email protected]>
>>
>> Add support for Extra EHT LTF defined in 9.4.2.313
>> EHT Capabilities element.
>>
>> Signed-off-by: Gregory Greenman <[email protected]>
>> ---
>>   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.????

2023-08-11 09:32:13

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH 06/14] wifi: iwlwifi: mvm: add support for Extra EHT LTF

On Thu, 2023-07-20 at 12:02 +0800, Wen Gong wrote:
> On 6/13/2023 8:57 PM, [email protected] wrote:
> > From: Gregory Greenman <[email protected]>
> >
> > Add support for Extra EHT LTF defined in 9.4.2.313
> > EHT Capabilities element.
> >
> > Signed-off-by: Gregory Greenman <[email protected]>
> > ---
> > 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