diff mbox series

[06/14] wifi: iwlwifi: mvm: add support for Extra EHT LTF

Message ID 20230613155501.de019d7cc174.I806f0f6042b89274192701a60b4f7900822db666@changeid
State New
Headers show
Series wifi: iwlwifi: updates intended for v6.5 2023-06-13 | expand

Commit Message

Greenman, Gregory June 13, 2023, 12:57 p.m. UTC
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(+)

Comments

Wen Gong July 20, 2023, 4:02 a.m. UTC | #1
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?😁
Wen Gong July 20, 2023, 8:05 a.m. UTC | #2
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.😁
Johannes Berg Aug. 11, 2023, 9:12 a.m. UTC | #3
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 mbox series

Patch

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