linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/12] wcn36xx: Add support for extended V1 SMD parameter passing
@ 2020-08-29  3:38 Bryan O'Donoghue
  2020-08-29  3:38 ` [PATCH v2 01/12] wcn36xx: Add VHT fields to parameter data structures Bryan O'Donoghue
                   ` (11 more replies)
  0 siblings, 12 replies; 16+ messages in thread
From: Bryan O'Donoghue @ 2020-08-29  3:38 UTC (permalink / raw)
  To: kvalo, wcn36xx, linux-wireless; +Cc: bryan.odonoghue, shawn.guo, loic.poulain

This series is two of a set of five to add support for wcn3680 at 802.11ac
data-rates.

This set makes a series of modifications to enable passing of an extended
V1 data-structure to the firmware.

A series of of helper functions are added to facilitate the setup.

The final step in the process is enabling the extended data-structure
parameter passing for the wcn3680 only.

Only a firmware that is capable of 80211.ac will accept the larger V1
messages and only after explicitly enabling the DOT11AC firmware feature
bit.

V2:
- No functional difference from V1 for these patches
  Breaking into smaller chunks to enable easier review/merging

V1:

https://lore.kernel.org/linux-wireless/87eensldhi.fsf@codeaurora.org/T/#t

Bryan O'Donoghue (12):
  wcn36xx: Add VHT fields to parameter data structures
  wcn36xx: Use V1 data structure to store supported rates
  wcn36xx: Add wcn36xx_set_default_rates_v1
  wcn36xx: Add VHT rates to wcn36xx_update_allowed_rates()
  wcn36xx: Add wcn36xx_smd_set_sta_default_vht_params()
  wcn36xx: Add wcn36xx_smd_set_sta_default_ht_ldpc_params()
  wcn36xx: Add wcn36xx_smd_set_sta_vht_params()
  wcn36xx: Add wcn36xx_smd_set_sta_ht_ldpc_params()
  wcn36xx: Add wcn36xx_smd_set_bss_vht_params()
  wcn36xx: Add wrapper function wcn36xx_smd_set_sta_params_v1()
  wcn36xx: Define INIT_HAL_MSG_V1()
  wcn36xx: Convert to VHT parameter structure on wcn3680

 drivers/net/wireless/ath/wcn36xx/hal.h     |  14 ++-
 drivers/net/wireless/ath/wcn36xx/main.c    |  16 +++
 drivers/net/wireless/ath/wcn36xx/smd.c     | 117 +++++++++++++++++++--
 drivers/net/wireless/ath/wcn36xx/wcn36xx.h |   3 +-
 4 files changed, 142 insertions(+), 8 deletions(-)

-- 
2.27.0


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2 01/12] wcn36xx: Add VHT fields to parameter data structures
  2020-08-29  3:38 [PATCH v2 00/12] wcn36xx: Add support for extended V1 SMD parameter passing Bryan O'Donoghue
@ 2020-08-29  3:38 ` Bryan O'Donoghue
  2020-09-02  8:59   ` Kalle Valo
       [not found]   ` <20200902085942.05A42C433C6@smtp.codeaurora.org>
  2020-08-29  3:38 ` [PATCH v2 02/12] wcn36xx: Use V1 data structure to store supported rates Bryan O'Donoghue
                   ` (10 subsequent siblings)
  11 siblings, 2 replies; 16+ messages in thread
From: Bryan O'Donoghue @ 2020-08-29  3:38 UTC (permalink / raw)
  To: kvalo, wcn36xx, linux-wireless; +Cc: bryan.odonoghue, shawn.guo, loic.poulain

In order to pass VHT parameters to wcn3680 we need to use a super-set of
the V1 data-structures with additional VHT parameters tacked on.

This patch adds the additional fields to the STA and BSS parameter
structures with some utility macros to make calculation of the structure
size easier.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
 drivers/net/wireless/ath/wcn36xx/hal.h | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/wcn36xx/hal.h b/drivers/net/wireless/ath/wcn36xx/hal.h
index 573799274a02..3cceeaf0136f 100644
--- a/drivers/net/wireless/ath/wcn36xx/hal.h
+++ b/drivers/net/wireless/ath/wcn36xx/hal.h
@@ -1592,9 +1592,15 @@ struct wcn36xx_hal_config_sta_params_v1 {
 	u8 reserved:4;
 
 	/* These rates are the intersection of peer and self capabilities. */
-	struct wcn36xx_hal_supported_rates supported_rates;
+	struct wcn36xx_hal_supported_rates_v1 supported_rates;
+
+	u8 vht_capable;
+	u8 vht_tx_channel_width_set;
+
 } __packed;
 
+#define WCN36XX_DIFF_STA_PARAMS_V1_NOVHT 10
+
 struct wcn36xx_hal_config_sta_req_msg_v1 {
 	struct wcn36xx_hal_msg_header header;
 	struct wcn36xx_hal_config_sta_params_v1 sta_params;
@@ -2015,8 +2021,14 @@ struct wcn36xx_hal_config_bss_params_v1 {
 	 *  "STA context"
 	 */
 	struct wcn36xx_hal_config_sta_params_v1 sta;
+
+	u8 vht_capable;
+	u8 vht_tx_channel_width_set;
+
 } __packed;
 
+#define WCN36XX_DIFF_BSS_PARAMS_V1_NOVHT (WCN36XX_DIFF_STA_PARAMS_V1_NOVHT + 2)
+
 struct wcn36xx_hal_config_bss_req_msg_v1 {
 	struct wcn36xx_hal_msg_header header;
 	struct wcn36xx_hal_config_bss_params_v1 bss_params;
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v2 02/12] wcn36xx: Use V1 data structure to store supported rates
  2020-08-29  3:38 [PATCH v2 00/12] wcn36xx: Add support for extended V1 SMD parameter passing Bryan O'Donoghue
  2020-08-29  3:38 ` [PATCH v2 01/12] wcn36xx: Add VHT fields to parameter data structures Bryan O'Donoghue
@ 2020-08-29  3:38 ` Bryan O'Donoghue
  2020-08-29  3:38 ` [PATCH v2 03/12] wcn36xx: Add wcn36xx_set_default_rates_v1 Bryan O'Donoghue
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 16+ messages in thread
From: Bryan O'Donoghue @ 2020-08-29  3:38 UTC (permalink / raw)
  To: kvalo, wcn36xx, linux-wireless; +Cc: bryan.odonoghue, shawn.guo, loic.poulain

This patch converts the internal data structure used to store data-rates
from version 0 to version 1.

This allows us to extend out the internal storage to represent VHT
parameters.

Using the extended version 1 data-structure allows us to avoid a whole raft
of version 1 specific fixup functions.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
 drivers/net/wireless/ath/wcn36xx/smd.c     | 5 +++--
 drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c
index 4c30036e2e56..8534d36c3ae0 100644
--- a/drivers/net/wireless/ath/wcn36xx/smd.c
+++ b/drivers/net/wireless/ath/wcn36xx/smd.c
@@ -242,9 +242,10 @@ static void wcn36xx_smd_set_sta_params(struct wcn36xx *wcn,
 		sta_params->aid = sta_priv->aid;
 		wcn36xx_smd_set_sta_ht_params(sta, sta_params);
 		memcpy(&sta_params->supported_rates, &sta_priv->supported_rates,
-			sizeof(sta_priv->supported_rates));
+			sizeof(struct wcn36xx_hal_supported_rates));
 	} else {
-		wcn36xx_set_default_rates(&sta_params->supported_rates);
+		wcn36xx_set_default_rates((struct wcn36xx_hal_supported_rates *)
+					  &sta_params->supported_rates);
 		wcn36xx_smd_set_sta_default_ht_params(sta_params);
 	}
 }
diff --git a/drivers/net/wireless/ath/wcn36xx/wcn36xx.h b/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
index 342ca0ae7e28..d7d349de20e6 100644
--- a/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
+++ b/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
@@ -169,7 +169,7 @@ struct wcn36xx_sta {
 	u8 bss_dpu_desc_index;
 	bool is_data_encrypted;
 	/* Rates */
-	struct wcn36xx_hal_supported_rates supported_rates;
+	struct wcn36xx_hal_supported_rates_v1 supported_rates;
 
 	spinlock_t ampdu_lock;		/* protects next two fields */
 	enum wcn36xx_ampdu_state ampdu_state[16];
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v2 03/12] wcn36xx: Add wcn36xx_set_default_rates_v1
  2020-08-29  3:38 [PATCH v2 00/12] wcn36xx: Add support for extended V1 SMD parameter passing Bryan O'Donoghue
  2020-08-29  3:38 ` [PATCH v2 01/12] wcn36xx: Add VHT fields to parameter data structures Bryan O'Donoghue
  2020-08-29  3:38 ` [PATCH v2 02/12] wcn36xx: Use V1 data structure to store supported rates Bryan O'Donoghue
@ 2020-08-29  3:38 ` Bryan O'Donoghue
  2020-08-29  3:39 ` [PATCH v2 04/12] wcn36xx: Add VHT rates to wcn36xx_update_allowed_rates() Bryan O'Donoghue
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 16+ messages in thread
From: Bryan O'Donoghue @ 2020-08-29  3:38 UTC (permalink / raw)
  To: kvalo, wcn36xx, linux-wireless; +Cc: bryan.odonoghue, shawn.guo, loic.poulain

Add a routine to set some additional default parameters associated with the
V1 data structure.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
 drivers/net/wireless/ath/wcn36xx/main.c    | 8 ++++++++
 drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 1 +
 2 files changed, 9 insertions(+)

diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c
index 08e23dbb60fb..d589a00d901b 100644
--- a/drivers/net/wireless/ath/wcn36xx/main.c
+++ b/drivers/net/wireless/ath/wcn36xx/main.c
@@ -793,6 +793,14 @@ void wcn36xx_set_default_rates(struct wcn36xx_hal_supported_rates *rates)
 		sizeof(*ofdm_rates) * WCN36XX_HAL_NUM_OFDM_RATES);
 	rates->supported_mcs_set[0] = 0xFF;
 }
+
+void wcn36xx_set_default_rates_v1(struct wcn36xx_hal_supported_rates_v1 *rates)
+{
+	rates->op_rate_mode = STA_11ac;
+	rates->vht_rx_mcs_map = IEEE80211_VHT_MCS_SUPPORT_0_9;
+	rates->vht_tx_mcs_map = IEEE80211_VHT_MCS_SUPPORT_0_9;
+}
+
 static void wcn36xx_bss_info_changed(struct ieee80211_hw *hw,
 				     struct ieee80211_vif *vif,
 				     struct ieee80211_bss_conf *bss_conf,
diff --git a/drivers/net/wireless/ath/wcn36xx/wcn36xx.h b/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
index d7d349de20e6..2da81d9926c4 100644
--- a/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
+++ b/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
@@ -271,6 +271,7 @@ static inline bool wcn36xx_is_fw_version(struct wcn36xx *wcn,
 		wcn->fw_revision == revision);
 }
 void wcn36xx_set_default_rates(struct wcn36xx_hal_supported_rates *rates);
+void wcn36xx_set_default_rates_v1(struct wcn36xx_hal_supported_rates_v1 *rates);
 
 static inline
 struct ieee80211_sta *wcn36xx_priv_to_sta(struct wcn36xx_sta *sta_priv)
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v2 04/12] wcn36xx: Add VHT rates to wcn36xx_update_allowed_rates()
  2020-08-29  3:38 [PATCH v2 00/12] wcn36xx: Add support for extended V1 SMD parameter passing Bryan O'Donoghue
                   ` (2 preceding siblings ...)
  2020-08-29  3:38 ` [PATCH v2 03/12] wcn36xx: Add wcn36xx_set_default_rates_v1 Bryan O'Donoghue
@ 2020-08-29  3:39 ` Bryan O'Donoghue
  2020-08-29  3:39 ` [PATCH v2 05/12] wcn36xx: Add wcn36xx_smd_set_sta_default_vht_params() Bryan O'Donoghue
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 16+ messages in thread
From: Bryan O'Donoghue @ 2020-08-29  3:39 UTC (permalink / raw)
  To: kvalo, wcn36xx, linux-wireless; +Cc: bryan.odonoghue, shawn.guo, loic.poulain

This commit adds VHT rates to the wcn36xx_update_allowed_rates() routine.
Thus allowing the driver to latch the declared rates and transmit them to
the firmware in the same way as other 80211.n rates are.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
 drivers/net/wireless/ath/wcn36xx/main.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c
index d589a00d901b..e92907a33443 100644
--- a/drivers/net/wireless/ath/wcn36xx/main.c
+++ b/drivers/net/wireless/ath/wcn36xx/main.c
@@ -766,6 +766,14 @@ static void wcn36xx_update_allowed_rates(struct ieee80211_sta *sta,
 		       sta->ht_cap.mcs.rx_mask,
 		       sizeof(sta->ht_cap.mcs.rx_mask));
 	}
+
+	if (sta->vht_cap.vht_supported) {
+		sta_priv->supported_rates.op_rate_mode = STA_11ac;
+		sta_priv->supported_rates.vht_rx_mcs_map =
+				sta->vht_cap.vht_mcs.rx_mcs_map;
+		sta_priv->supported_rates.vht_tx_mcs_map =
+				sta->vht_cap.vht_mcs.tx_mcs_map;
+	}
 }
 void wcn36xx_set_default_rates(struct wcn36xx_hal_supported_rates *rates)
 {
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v2 05/12] wcn36xx: Add wcn36xx_smd_set_sta_default_vht_params()
  2020-08-29  3:38 [PATCH v2 00/12] wcn36xx: Add support for extended V1 SMD parameter passing Bryan O'Donoghue
                   ` (3 preceding siblings ...)
  2020-08-29  3:39 ` [PATCH v2 04/12] wcn36xx: Add VHT rates to wcn36xx_update_allowed_rates() Bryan O'Donoghue
@ 2020-08-29  3:39 ` Bryan O'Donoghue
  2020-08-29  3:39 ` [PATCH v2 06/12] wcn36xx: Add wcn36xx_smd_set_sta_default_ht_ldpc_params() Bryan O'Donoghue
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 16+ messages in thread
From: Bryan O'Donoghue @ 2020-08-29  3:39 UTC (permalink / raw)
  To: kvalo, wcn36xx, linux-wireless; +Cc: bryan.odonoghue, shawn.guo, loic.poulain

This commit adds support for setting default VHT parameters, which are
exposed by the extended version 1 STA parameter type.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
 drivers/net/wireless/ath/wcn36xx/smd.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c
index 8534d36c3ae0..45359e72a877 100644
--- a/drivers/net/wireless/ath/wcn36xx/smd.c
+++ b/drivers/net/wireless/ath/wcn36xx/smd.c
@@ -190,6 +190,22 @@ static void wcn36xx_smd_set_sta_default_ht_params(
 	sta_params->dsss_cck_mode_40mhz = 1;
 }
 
+static void wcn36xx_smd_set_sta_default_vht_params(struct wcn36xx *wcn,
+		struct wcn36xx_hal_config_sta_params_v1 *sta_params)
+{
+	if (wcn->rf_id == RF_IRIS_WCN3680) {
+		sta_params->vht_capable = 1;
+		sta_params->vht_tx_mu_beamformee_capable = 1;
+	} else {
+		sta_params->vht_capable = 0;
+		sta_params->vht_tx_mu_beamformee_capable = 0;
+	}
+
+	sta_params->vht_ldpc_enabled = 0;
+	sta_params->vht_tx_channel_width_set = 0;
+	sta_params->vht_tx_bf_enabled = 0;
+}
+
 static void wcn36xx_smd_set_sta_params(struct wcn36xx *wcn,
 		struct ieee80211_vif *vif,
 		struct ieee80211_sta *sta,
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v2 06/12] wcn36xx: Add wcn36xx_smd_set_sta_default_ht_ldpc_params()
  2020-08-29  3:38 [PATCH v2 00/12] wcn36xx: Add support for extended V1 SMD parameter passing Bryan O'Donoghue
                   ` (4 preceding siblings ...)
  2020-08-29  3:39 ` [PATCH v2 05/12] wcn36xx: Add wcn36xx_smd_set_sta_default_vht_params() Bryan O'Donoghue
@ 2020-08-29  3:39 ` Bryan O'Donoghue
  2020-08-29  3:39 ` [PATCH v2 07/12] wcn36xx: Add wcn36xx_smd_set_sta_vht_params() Bryan O'Donoghue
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 16+ messages in thread
From: Bryan O'Donoghue @ 2020-08-29  3:39 UTC (permalink / raw)
  To: kvalo, wcn36xx, linux-wireless; +Cc: bryan.odonoghue, shawn.guo, loic.poulain

Toggling the LDPC enabled bit is possible only via the extended V1
data-structure. This function provides a means of setting the default
depending on chip-type.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
 drivers/net/wireless/ath/wcn36xx/smd.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c
index 45359e72a877..cf20a0f63259 100644
--- a/drivers/net/wireless/ath/wcn36xx/smd.c
+++ b/drivers/net/wireless/ath/wcn36xx/smd.c
@@ -206,6 +206,15 @@ static void wcn36xx_smd_set_sta_default_vht_params(struct wcn36xx *wcn,
 	sta_params->vht_tx_bf_enabled = 0;
 }
 
+static void wcn36xx_smd_set_sta_default_ht_ldpc_params(struct wcn36xx *wcn,
+		struct wcn36xx_hal_config_sta_params_v1 *sta_params)
+{
+	if (wcn->rf_id == RF_IRIS_WCN3680)
+		sta_params->ht_ldpc_enabled = 1;
+	else
+		sta_params->ht_ldpc_enabled = 0;
+}
+
 static void wcn36xx_smd_set_sta_params(struct wcn36xx *wcn,
 		struct ieee80211_vif *vif,
 		struct ieee80211_sta *sta,
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v2 07/12] wcn36xx: Add wcn36xx_smd_set_sta_vht_params()
  2020-08-29  3:38 [PATCH v2 00/12] wcn36xx: Add support for extended V1 SMD parameter passing Bryan O'Donoghue
                   ` (5 preceding siblings ...)
  2020-08-29  3:39 ` [PATCH v2 06/12] wcn36xx: Add wcn36xx_smd_set_sta_default_ht_ldpc_params() Bryan O'Donoghue
@ 2020-08-29  3:39 ` Bryan O'Donoghue
  2020-08-29  3:39 ` [PATCH v2 08/12] wcn36xx: Add wcn36xx_smd_set_sta_ht_ldpc_params() Bryan O'Donoghue
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 16+ messages in thread
From: Bryan O'Donoghue @ 2020-08-29  3:39 UTC (permalink / raw)
  To: kvalo, wcn36xx, linux-wireless; +Cc: bryan.odonoghue, shawn.guo, loic.poulain

This commit adds support for setting VHT parameters based on the declared
VHT capability bits in the VHT capability structure.

The bit-field TX-BF is purposefully left out since wcn3680 is the only
wcn36xx that can do VHT/80211.ac and is not TX beamformer capable. TX-BF is
a dead bit.

Similarly we cannot do 160MHz so VHT Channel width set should be zero.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
 drivers/net/wireless/ath/wcn36xx/smd.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c
index cf20a0f63259..e44e4a21153e 100644
--- a/drivers/net/wireless/ath/wcn36xx/smd.c
+++ b/drivers/net/wireless/ath/wcn36xx/smd.c
@@ -174,6 +174,26 @@ static void wcn36xx_smd_set_sta_ht_params(struct ieee80211_sta *sta,
 	}
 }
 
+static void wcn36xx_smd_set_sta_vht_params(struct wcn36xx *wcn,
+		struct ieee80211_sta *sta,
+		struct wcn36xx_hal_config_sta_params_v1 *sta_params)
+{
+	if (sta->vht_cap.vht_supported) {
+		unsigned long caps = sta->vht_cap.cap;
+
+		sta_params->vht_capable = sta->vht_cap.vht_supported;
+		sta_params->vht_ldpc_enabled =
+			is_cap_supported(caps, IEEE80211_VHT_CAP_RXLDPC);
+		if (get_feat_caps(wcn->fw_feat_caps, MU_MIMO)) {
+			sta_params->vht_tx_mu_beamformee_capable =
+				is_cap_supported(caps, IEEE80211_VHT_CAP_MU_BEAMFORMER_CAPABLE);
+		} else {
+			sta_params->vht_tx_mu_beamformee_capable = 0;
+		}
+		sta_params->vht_tx_channel_width_set = 0;
+	}
+}
+
 static void wcn36xx_smd_set_sta_default_ht_params(
 		struct wcn36xx_hal_config_sta_params *sta_params)
 {
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v2 08/12] wcn36xx: Add wcn36xx_smd_set_sta_ht_ldpc_params()
  2020-08-29  3:38 [PATCH v2 00/12] wcn36xx: Add support for extended V1 SMD parameter passing Bryan O'Donoghue
                   ` (6 preceding siblings ...)
  2020-08-29  3:39 ` [PATCH v2 07/12] wcn36xx: Add wcn36xx_smd_set_sta_vht_params() Bryan O'Donoghue
@ 2020-08-29  3:39 ` Bryan O'Donoghue
  2020-08-29  3:39 ` [PATCH v2 09/12] wcn36xx: Add wcn36xx_smd_set_bss_vht_params() Bryan O'Donoghue
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 16+ messages in thread
From: Bryan O'Donoghue @ 2020-08-29  3:39 UTC (permalink / raw)
  To: kvalo, wcn36xx, linux-wireless; +Cc: bryan.odonoghue, shawn.guo, loic.poulain

Adds a routine to allow setting the LDPC bit for HT parameter passing
inside the version 1 STA parameters data structure.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
 drivers/net/wireless/ath/wcn36xx/smd.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c
index e44e4a21153e..a6106ba9cc89 100644
--- a/drivers/net/wireless/ath/wcn36xx/smd.c
+++ b/drivers/net/wireless/ath/wcn36xx/smd.c
@@ -194,6 +194,15 @@ static void wcn36xx_smd_set_sta_vht_params(struct wcn36xx *wcn,
 	}
 }
 
+static void wcn36xx_smd_set_sta_ht_ldpc_params(struct ieee80211_sta *sta,
+		struct wcn36xx_hal_config_sta_params_v1 *sta_params)
+{
+	if (sta->ht_cap.ht_supported) {
+		sta_params->ht_ldpc_enabled =
+			is_cap_supported(sta->ht_cap.cap, IEEE80211_HT_CAP_LDPC_CODING);
+	}
+}
+
 static void wcn36xx_smd_set_sta_default_ht_params(
 		struct wcn36xx_hal_config_sta_params *sta_params)
 {
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v2 09/12] wcn36xx: Add wcn36xx_smd_set_bss_vht_params()
  2020-08-29  3:38 [PATCH v2 00/12] wcn36xx: Add support for extended V1 SMD parameter passing Bryan O'Donoghue
                   ` (7 preceding siblings ...)
  2020-08-29  3:39 ` [PATCH v2 08/12] wcn36xx: Add wcn36xx_smd_set_sta_ht_ldpc_params() Bryan O'Donoghue
@ 2020-08-29  3:39 ` Bryan O'Donoghue
  2020-08-29  3:39 ` [PATCH v2 10/12] wcn36xx: Add wrapper function wcn36xx_smd_set_sta_params_v1() Bryan O'Donoghue
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 16+ messages in thread
From: Bryan O'Donoghue @ 2020-08-29  3:39 UTC (permalink / raw)
  To: kvalo, wcn36xx, linux-wireless; +Cc: bryan.odonoghue, shawn.guo, loic.poulain

This commit adds wcn36xx_smd_set_bss_vht_params(). The job of this function
is to decide if the BSS is VHT capable and if so set the appropriate bit
in the BSS parameter structure for passing to the firmware.

VHT Channel width set is not set since we don't support 160MHz.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
 drivers/net/wireless/ath/wcn36xx/smd.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c
index a6106ba9cc89..b311b170fd36 100644
--- a/drivers/net/wireless/ath/wcn36xx/smd.c
+++ b/drivers/net/wireless/ath/wcn36xx/smd.c
@@ -146,6 +146,15 @@ static void wcn36xx_smd_set_bss_ht_params(struct ieee80211_vif *vif,
 	}
 }
 
+static void
+wcn36xx_smd_set_bss_vht_params(struct ieee80211_vif *vif,
+			       struct ieee80211_sta *sta,
+			       struct wcn36xx_hal_config_bss_params_v1 *bss)
+{
+	if (sta && sta->vht_cap.vht_supported)
+		bss->vht_capable = 1;
+}
+
 static void wcn36xx_smd_set_sta_ht_params(struct ieee80211_sta *sta,
 		struct wcn36xx_hal_config_sta_params *sta_params)
 {
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v2 10/12] wcn36xx: Add wrapper function wcn36xx_smd_set_sta_params_v1()
  2020-08-29  3:38 [PATCH v2 00/12] wcn36xx: Add support for extended V1 SMD parameter passing Bryan O'Donoghue
                   ` (8 preceding siblings ...)
  2020-08-29  3:39 ` [PATCH v2 09/12] wcn36xx: Add wcn36xx_smd_set_bss_vht_params() Bryan O'Donoghue
@ 2020-08-29  3:39 ` Bryan O'Donoghue
  2020-08-29  3:39 ` [PATCH v2 11/12] wcn36xx: Define INIT_HAL_MSG_V1() Bryan O'Donoghue
  2020-08-29  3:39 ` [PATCH v2 12/12] wcn36xx: Convert to VHT parameter structure on wcn3680 Bryan O'Donoghue
  11 siblings, 0 replies; 16+ messages in thread
From: Bryan O'Donoghue @ 2020-08-29  3:39 UTC (permalink / raw)
  To: kvalo, wcn36xx, linux-wireless; +Cc: bryan.odonoghue, shawn.guo, loic.poulain

This commit adds a wrapper function wcn36xx_smd_set_sta_params_v1() which
calls into wcn36xx_smd_set_sta_params() and then subsequently sets
version-1 specific parameters.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
 drivers/net/wireless/ath/wcn36xx/smd.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c
index b311b170fd36..86411f3da79d 100644
--- a/drivers/net/wireless/ath/wcn36xx/smd.c
+++ b/drivers/net/wireless/ath/wcn36xx/smd.c
@@ -1247,6 +1247,31 @@ static void wcn36xx_smd_convert_sta_to_v1(struct wcn36xx *wcn,
 	v1->p2p = orig->p2p;
 }
 
+static void
+wcn36xx_smd_set_sta_params_v1(struct wcn36xx *wcn,
+			      struct ieee80211_vif *vif,
+			      struct ieee80211_sta *sta,
+			      struct wcn36xx_hal_config_sta_params_v1 *sta_par)
+{
+	struct wcn36xx_sta *sta_priv = NULL;
+	struct wcn36xx_hal_config_sta_params sta_par_v0;
+
+	wcn36xx_smd_set_sta_params(wcn, vif, sta, &sta_par_v0);
+	wcn36xx_smd_convert_sta_to_v1(wcn, &sta_par_v0, sta_par);
+
+	if (sta) {
+		sta_priv = wcn36xx_sta_to_priv(sta);
+		wcn36xx_smd_set_sta_vht_params(wcn, sta, sta_par);
+		wcn36xx_smd_set_sta_ht_ldpc_params(sta, sta_par);
+		memcpy(&sta_par->supported_rates, &sta_priv->supported_rates,
+		       sizeof(sta_par->supported_rates));
+	} else {
+		wcn36xx_set_default_rates_v1(&sta_par->supported_rates);
+		wcn36xx_smd_set_sta_default_vht_params(wcn, sta_par);
+		wcn36xx_smd_set_sta_default_ht_ldpc_params(wcn, sta_par);
+	}
+}
+
 static int wcn36xx_smd_config_sta_rsp(struct wcn36xx *wcn,
 				      struct ieee80211_sta *sta,
 				      void *buf,
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v2 11/12] wcn36xx: Define INIT_HAL_MSG_V1()
  2020-08-29  3:38 [PATCH v2 00/12] wcn36xx: Add support for extended V1 SMD parameter passing Bryan O'Donoghue
                   ` (9 preceding siblings ...)
  2020-08-29  3:39 ` [PATCH v2 10/12] wcn36xx: Add wrapper function wcn36xx_smd_set_sta_params_v1() Bryan O'Donoghue
@ 2020-08-29  3:39 ` Bryan O'Donoghue
  2020-08-29  3:39 ` [PATCH v2 12/12] wcn36xx: Convert to VHT parameter structure on wcn3680 Bryan O'Donoghue
  11 siblings, 0 replies; 16+ messages in thread
From: Bryan O'Donoghue @ 2020-08-29  3:39 UTC (permalink / raw)
  To: kvalo, wcn36xx, linux-wireless; +Cc: bryan.odonoghue, shawn.guo, loic.poulain

In order to pass 802.11ac VHT parameters from the SoC to wcn36xx we need to
use the V1 data structures associated with BSS and STA parameters.

The means of identifying a V1 data-structure is via the SMD version field.
This patch defines a INIT_HAL_MSG_V1() which operates the same way as
INIT_HAL_MSG() with the exception that it defines VERSION1 as opposed to
VERSION0.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
 drivers/net/wireless/ath/wcn36xx/smd.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c
index 86411f3da79d..d9bbbdc8d013 100644
--- a/drivers/net/wireless/ath/wcn36xx/smd.c
+++ b/drivers/net/wireless/ath/wcn36xx/smd.c
@@ -355,14 +355,20 @@ static void init_hal_msg(struct wcn36xx_hal_msg_header *hdr,
 	hdr->len = msg_size + sizeof(*hdr);
 }
 
-#define INIT_HAL_MSG(msg_body, type) \
+#define __INIT_HAL_MSG(msg_body, type, version) \
 	do {								\
 		memset(&msg_body, 0, sizeof(msg_body));			\
 		msg_body.header.msg_type = type;			\
-		msg_body.header.msg_version = WCN36XX_HAL_MSG_VERSION0; \
+		msg_body.header.msg_version = version;			\
 		msg_body.header.len = sizeof(msg_body);			\
 	} while (0)							\
 
+#define INIT_HAL_MSG(msg_body, type)	\
+	__INIT_HAL_MSG(msg_body, type, WCN36XX_HAL_MSG_VERSION0)
+
+#define INIT_HAL_MSG_V1(msg_body, type) \
+	__INIT_HAL_MSG(msg_body, type, WCN36XX_HAL_MSG_VERSION1)
+
 #define INIT_HAL_PTT_MSG(p_msg_body, ppt_msg_len) \
 	do { \
 		memset(p_msg_body, 0, sizeof(*p_msg_body) + ppt_msg_len); \
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v2 12/12] wcn36xx: Convert to VHT parameter structure on wcn3680
  2020-08-29  3:38 [PATCH v2 00/12] wcn36xx: Add support for extended V1 SMD parameter passing Bryan O'Donoghue
                   ` (10 preceding siblings ...)
  2020-08-29  3:39 ` [PATCH v2 11/12] wcn36xx: Define INIT_HAL_MSG_V1() Bryan O'Donoghue
@ 2020-08-29  3:39 ` Bryan O'Donoghue
  11 siblings, 0 replies; 16+ messages in thread
From: Bryan O'Donoghue @ 2020-08-29  3:39 UTC (permalink / raw)
  To: kvalo, wcn36xx, linux-wireless; +Cc: bryan.odonoghue, shawn.guo, loic.poulain

In order to send VHT parameters to wcn3680 we need to pass the extended V1
parameter structures to the firmware. These commands need to have the
version number set to 1.

This patch makes the conversion. The conversion consists of

1. Setting the version number for wcn3680 or leaving it at 0 otherwise
2. Setting the sizeo of the packet header lower for wcn3620 and wcn3660

Once done all three chips can continue to use the same code to pass
parameters to their respective firmware. In the case of the wcn3680 the
passed structures will be slightly larger to accommodate communication of
VHT descriptors.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
 drivers/net/wireless/ath/wcn36xx/smd.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c
index d9bbbdc8d013..97fb47a8bc1a 100644
--- a/drivers/net/wireless/ath/wcn36xx/smd.c
+++ b/drivers/net/wireless/ath/wcn36xx/smd.c
@@ -1317,7 +1317,12 @@ static int wcn36xx_smd_config_sta_v1(struct wcn36xx *wcn,
 	struct wcn36xx_hal_config_sta_req_msg_v1 msg_body;
 	struct wcn36xx_hal_config_sta_params_v1 *sta = &msg_body.sta_params;
 
-	INIT_HAL_MSG(msg_body, WCN36XX_HAL_CONFIG_STA_REQ);
+	if (wcn->rf_id == RF_IRIS_WCN3680) {
+		INIT_HAL_MSG_V1(msg_body, WCN36XX_HAL_CONFIG_STA_REQ);
+	} else {
+		INIT_HAL_MSG(msg_body, WCN36XX_HAL_CONFIG_STA_REQ);
+		msg_body.header.len -= WCN36XX_DIFF_STA_PARAMS_V1_NOVHT;
+	}
 
 	wcn36xx_smd_convert_sta_to_v1(wcn, &orig->sta_params,
 				      &msg_body.sta_params);
@@ -1388,7 +1393,12 @@ static int wcn36xx_smd_config_bss_v1(struct wcn36xx *wcn,
 	if (!msg_body)
 		return -ENOMEM;
 
-	INIT_HAL_MSG((*msg_body), WCN36XX_HAL_CONFIG_BSS_REQ);
+	if (wcn->rf_id == RF_IRIS_WCN3680) {
+		INIT_HAL_MSG_V1((*msg_body), WCN36XX_HAL_CONFIG_BSS_REQ);
+	} else {
+		INIT_HAL_MSG((*msg_body), WCN36XX_HAL_CONFIG_BSS_REQ);
+		msg_body->header.len -= WCN36XX_DIFF_BSS_PARAMS_V1_NOVHT;
+	}
 
 	bss = &msg_body->bss_params;
 	sta = &bss->sta;
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH v2 01/12] wcn36xx: Add VHT fields to parameter data structures
  2020-08-29  3:38 ` [PATCH v2 01/12] wcn36xx: Add VHT fields to parameter data structures Bryan O'Donoghue
@ 2020-09-02  8:59   ` Kalle Valo
       [not found]   ` <20200902085942.05A42C433C6@smtp.codeaurora.org>
  1 sibling, 0 replies; 16+ messages in thread
From: Kalle Valo @ 2020-09-02  8:59 UTC (permalink / raw)
  To: Bryan O'Donoghue
  Cc: wcn36xx, linux-wireless, bryan.odonoghue, shawn.guo, loic.poulain

Bryan O'Donoghue <bryan.odonoghue@linaro.org> wrote:

> In order to pass VHT parameters to wcn3680 we need to use a super-set of
> the V1 data-structures with additional VHT parameters tacked on.
> 
> This patch adds the additional fields to the STA and BSS parameter
> structures with some utility macros to make calculation of the structure
> size easier.
> 
> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>

New warnings:

drivers/net/wireless/ath/wcn36xx/smd.c:1257:1: warning: 'wcn36xx_smd_set_sta_params_v1' defined but not used [-Wunused-function]
 1257 | wcn36xx_smd_set_sta_params_v1(struct wcn36xx *wcn,
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/ath/wcn36xx/smd.c:150:1: warning: 'wcn36xx_smd_set_bss_vht_params' defined but not used [-Wunused-function]
  150 | wcn36xx_smd_set_bss_vht_params(struct ieee80211_vif *vif,
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

12 patches set to Changes Requested.

11743937 [v2,01/12] wcn36xx: Add VHT fields to parameter data structures
11743997 [v2,02/12] wcn36xx: Use V1 data structure to store supported rates
11743939 [v2,03/12] wcn36xx: Add wcn36xx_set_default_rates_v1
11743977 [v2,04/12] wcn36xx: Add VHT rates to wcn36xx_update_allowed_rates()
11743963 [v2,05/12] wcn36xx: Add wcn36xx_smd_set_sta_default_vht_params()
11743943 [v2,06/12] wcn36xx: Add wcn36xx_smd_set_sta_default_ht_ldpc_params()
11743945 [v2,07/12] wcn36xx: Add wcn36xx_smd_set_sta_vht_params()
11743951 [v2,08/12] wcn36xx: Add wcn36xx_smd_set_sta_ht_ldpc_params()
11743949 [v2,09/12] wcn36xx: Add wcn36xx_smd_set_bss_vht_params()
11743947 [v2,10/12] wcn36xx: Add wrapper function wcn36xx_smd_set_sta_params_v1()
11743961 [v2,11/12] wcn36xx: Define INIT_HAL_MSG_V1()
11743953 [v2,12/12] wcn36xx: Convert to VHT parameter structure on wcn3680

-- 
https://patchwork.kernel.org/patch/11743937/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v2 01/12] wcn36xx: Add VHT fields to parameter data structures
       [not found]   ` <20200902085942.05A42C433C6@smtp.codeaurora.org>
@ 2020-09-02  9:39     ` Bryan O'Donoghue
  2020-09-02 12:19       ` Kalle Valo
  0 siblings, 1 reply; 16+ messages in thread
From: Bryan O'Donoghue @ 2020-09-02  9:39 UTC (permalink / raw)
  To: Kalle Valo; +Cc: wcn36xx, linux-wireless, shawn.guo, loic.poulain

On 02/09/2020 09:59, Kalle Valo wrote:
> Bryan O'Donoghue <bryan.odonoghue@linaro.org> wrote:
> 
>> In order to pass VHT parameters to wcn3680 we need to use a super-set of
>> the V1 data-structures with additional VHT parameters tacked on.
>>
>> This patch adds the additional fields to the STA and BSS parameter
>> structures with some utility macros to make calculation of the structure
>> size easier.
>>
>> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> 
> New warnings:
> 
> drivers/net/wireless/ath/wcn36xx/smd.c:1257:1: warning: 'wcn36xx_smd_set_sta_params_v1' defined but not used [-Wunused-function]
>   1257 | wcn36xx_smd_set_sta_params_v1(struct wcn36xx *wcn,
>        | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/net/wireless/ath/wcn36xx/smd.c:150:1: warning: 'wcn36xx_smd_set_bss_vht_params' defined but not used [-Wunused-function]
>    150 | wcn36xx_smd_set_bss_vht_params(struct ieee80211_vif *vif,
>        | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I'm declaring a series of functions in patches for later use, in patches 
03-10.

Do you want those squashed into the patch/patches where they are first 
used ?

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v2 01/12] wcn36xx: Add VHT fields to parameter data structures
  2020-09-02  9:39     ` Bryan O'Donoghue
@ 2020-09-02 12:19       ` Kalle Valo
  0 siblings, 0 replies; 16+ messages in thread
From: Kalle Valo @ 2020-09-02 12:19 UTC (permalink / raw)
  To: Bryan O'Donoghue; +Cc: wcn36xx, linux-wireless, shawn.guo, loic.poulain

Bryan O'Donoghue <bryan.odonoghue@linaro.org> writes:

> On 02/09/2020 09:59, Kalle Valo wrote:
>> Bryan O'Donoghue <bryan.odonoghue@linaro.org> wrote:
>>
>>> In order to pass VHT parameters to wcn3680 we need to use a super-set of
>>> the V1 data-structures with additional VHT parameters tacked on.
>>>
>>> This patch adds the additional fields to the STA and BSS parameter
>>> structures with some utility macros to make calculation of the structure
>>> size easier.
>>>
>>> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
>>
>> New warnings:
>>
>> drivers/net/wireless/ath/wcn36xx/smd.c:1257:1: warning:
>> 'wcn36xx_smd_set_sta_params_v1' defined but not used
>> [-Wunused-function]
>>   1257 | wcn36xx_smd_set_sta_params_v1(struct wcn36xx *wcn,
>>        | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/wireless/ath/wcn36xx/smd.c:150:1: warning:
>> 'wcn36xx_smd_set_bss_vht_params' defined but not used
>> [-Wunused-function]
>>    150 | wcn36xx_smd_set_bss_vht_params(struct ieee80211_vif *vif,
>>        | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> I'm declaring a series of functions in patches for later use, in
> patches 03-10.
>
> Do you want those squashed into the patch/patches where they are first
> used ?

Yeah, squashing them is better. Every patch should compile on it's own
and be warning free. Kbuild bot will even check that and report if there
are warnings in-between patches.

-- 
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2020-09-02 12:19 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-29  3:38 [PATCH v2 00/12] wcn36xx: Add support for extended V1 SMD parameter passing Bryan O'Donoghue
2020-08-29  3:38 ` [PATCH v2 01/12] wcn36xx: Add VHT fields to parameter data structures Bryan O'Donoghue
2020-09-02  8:59   ` Kalle Valo
     [not found]   ` <20200902085942.05A42C433C6@smtp.codeaurora.org>
2020-09-02  9:39     ` Bryan O'Donoghue
2020-09-02 12:19       ` Kalle Valo
2020-08-29  3:38 ` [PATCH v2 02/12] wcn36xx: Use V1 data structure to store supported rates Bryan O'Donoghue
2020-08-29  3:38 ` [PATCH v2 03/12] wcn36xx: Add wcn36xx_set_default_rates_v1 Bryan O'Donoghue
2020-08-29  3:39 ` [PATCH v2 04/12] wcn36xx: Add VHT rates to wcn36xx_update_allowed_rates() Bryan O'Donoghue
2020-08-29  3:39 ` [PATCH v2 05/12] wcn36xx: Add wcn36xx_smd_set_sta_default_vht_params() Bryan O'Donoghue
2020-08-29  3:39 ` [PATCH v2 06/12] wcn36xx: Add wcn36xx_smd_set_sta_default_ht_ldpc_params() Bryan O'Donoghue
2020-08-29  3:39 ` [PATCH v2 07/12] wcn36xx: Add wcn36xx_smd_set_sta_vht_params() Bryan O'Donoghue
2020-08-29  3:39 ` [PATCH v2 08/12] wcn36xx: Add wcn36xx_smd_set_sta_ht_ldpc_params() Bryan O'Donoghue
2020-08-29  3:39 ` [PATCH v2 09/12] wcn36xx: Add wcn36xx_smd_set_bss_vht_params() Bryan O'Donoghue
2020-08-29  3:39 ` [PATCH v2 10/12] wcn36xx: Add wrapper function wcn36xx_smd_set_sta_params_v1() Bryan O'Donoghue
2020-08-29  3:39 ` [PATCH v2 11/12] wcn36xx: Define INIT_HAL_MSG_V1() Bryan O'Donoghue
2020-08-29  3:39 ` [PATCH v2 12/12] wcn36xx: Convert to VHT parameter structure on wcn3680 Bryan O'Donoghue

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).