linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/10] wcn36xx: Add basic support for wcn3680 up to MCS7/40MHz
@ 2020-08-29  3:38 Bryan O'Donoghue
  2020-08-29  3:38 ` [PATCH v2 01/10] wcn36xx: Add a chip identifier for WCN3680 Bryan O'Donoghue
                   ` (9 more replies)
  0 siblings, 10 replies; 15+ 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 one of a set of five to add support for wcn3680 at 802.11ac
data-rates.

This series adds the simple case of the wcn3680 chip with some associated
VHT parameters and data-rate parsing fixes associated with 5GHz.

Given this is only 1/5 of a set the STA and AP will not negotiate any of
the 802.11ac data-rates.

At the end of this series we can identify a wcn3680, place the firmware
into DOT11AC mode and achieve the same data-rates as a wcn3660, i.e MCS7 @
40MHz.

Subsequent patches in separate series will enable MCS8/MCS9 @ 80MHz.

V2:

Changes from V1
- Rebased on top of ath/pending
- Included a patch from Loic I have in my tree that
  "wcn36xx: Specify ieee80211_rx_status.nss" relies on
- Added IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE

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

Bryan O'Donoghue (9):
  wcn36xx: Add a chip identifier for WCN3680
  wcn36xx: Hook and identify RF_IRIS_WCN3680
  wcn36xx: Add ieee802.11 VHT flags
  wcn36xx: Add 802.11ac MCS rates
  wcn36xx: Specify ieee80211_rx_status.nss
  wcn36xx: Add 802.11ac HAL param bitfields
  wcn36xx: Add Supported rates V1 structure
  wcn36xx: Use existing pointers in wcn36xx_smd_config_bss_v1
  wcn36xx: Set feature DOT11AC for wcn3680

Loic Poulain (1):
  wcn36xx: Fix warning due to bad rate_idx

 drivers/net/wireless/ath/wcn36xx/hal.h     |  76 ++++++++++++-
 drivers/net/wireless/ath/wcn36xx/main.c    |  34 ++++++
 drivers/net/wireless/ath/wcn36xx/smd.c     | 112 +++++++++----------
 drivers/net/wireless/ath/wcn36xx/txrx.c    | 119 ++++++++++++++++++++-
 drivers/net/wireless/ath/wcn36xx/wcn36xx.h |   1 +
 5 files changed, 277 insertions(+), 65 deletions(-)

-- 
2.27.0


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

* [PATCH v2 01/10] wcn36xx: Add a chip identifier for WCN3680
  2020-08-29  3:38 [PATCH v2 00/10] wcn36xx: Add basic support for wcn3680 up to MCS7/40MHz Bryan O'Donoghue
@ 2020-08-29  3:38 ` Bryan O'Donoghue
  2020-09-02  8:49   ` Kalle Valo
  2020-08-29  3:38 ` [PATCH v2 02/10] wcn36xx: Hook and identify RF_IRIS_WCN3680 Bryan O'Donoghue
                   ` (8 subsequent siblings)
  9 siblings, 1 reply; 15+ 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

The WCN3680 has some specific behaviours that we want to capture to
distinguish it from the WCN3620 and WCN3660 respectively.

Add an identifier for this purpose.

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

diff --git a/drivers/net/wireless/ath/wcn36xx/wcn36xx.h b/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
index 719a6daf9298..342ca0ae7e28 100644
--- a/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
+++ b/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
@@ -92,6 +92,7 @@ enum wcn36xx_ampdu_state {
 
 #define RF_UNKNOWN	0x0000
 #define RF_IRIS_WCN3620	0x3620
+#define RF_IRIS_WCN3680	0x3680
 
 static inline void buff_to_be(u32 *buf, size_t len)
 {
-- 
2.27.0


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

* [PATCH v2 02/10] wcn36xx: Hook and identify RF_IRIS_WCN3680
  2020-08-29  3:38 [PATCH v2 00/10] wcn36xx: Add basic support for wcn3680 up to MCS7/40MHz Bryan O'Donoghue
  2020-08-29  3:38 ` [PATCH v2 01/10] wcn36xx: Add a chip identifier for WCN3680 Bryan O'Donoghue
@ 2020-08-29  3:38 ` Bryan O'Donoghue
  2020-08-29  3:38 ` [PATCH v2 03/10] wcn36xx: Add ieee802.11 VHT flags Bryan O'Donoghue
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 15+ 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

If DT indicates we are dealing with a WCN3680 mark the rf_id field as
RF_IRIS_WCN3680 allowing for further chip-specific logic.

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

diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c
index 44b8707d3fe9..eb518bd88870 100644
--- a/drivers/net/wireless/ath/wcn36xx/main.c
+++ b/drivers/net/wireless/ath/wcn36xx/main.c
@@ -1309,6 +1309,8 @@ static int wcn36xx_platform_get_resources(struct wcn36xx *wcn,
 	if (iris_node) {
 		if (of_device_is_compatible(iris_node, "qcom,wcn3620"))
 			wcn->rf_id = RF_IRIS_WCN3620;
+		if (of_device_is_compatible(iris_node, "qcom,wcn3680"))
+			wcn->rf_id = RF_IRIS_WCN3680;
 		of_node_put(iris_node);
 	}
 
-- 
2.27.0


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

* [PATCH v2 03/10] wcn36xx: Add ieee802.11 VHT flags
  2020-08-29  3:38 [PATCH v2 00/10] wcn36xx: Add basic support for wcn3680 up to MCS7/40MHz Bryan O'Donoghue
  2020-08-29  3:38 ` [PATCH v2 01/10] wcn36xx: Add a chip identifier for WCN3680 Bryan O'Donoghue
  2020-08-29  3:38 ` [PATCH v2 02/10] wcn36xx: Hook and identify RF_IRIS_WCN3680 Bryan O'Donoghue
@ 2020-08-29  3:38 ` Bryan O'Donoghue
  2020-09-02  8:55   ` Kalle Valo
       [not found]   ` <20200902085545.5CC7EC433CA@smtp.codeaurora.org>
  2020-08-29  3:38 ` [PATCH v2 04/10] wcn36xx: Add 802.11ac MCS rates Bryan O'Donoghue
                   ` (6 subsequent siblings)
  9 siblings, 2 replies; 15+ 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 adds ieee802.11 VHT flags for the wcn3680b.

- RX_STBC1
- SU Beamformee
- MU Beamformee
- VHT80 SGI
- Single spatial stream

RX LDPC is declared as supported in the datasheet but not enabled at this
time.

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

diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c
index eb518bd88870..08e23dbb60fb 100644
--- a/drivers/net/wireless/ath/wcn36xx/main.c
+++ b/drivers/net/wireless/ath/wcn36xx/main.c
@@ -1184,6 +1184,35 @@ static const struct ieee80211_ops wcn36xx_ops = {
 	CFG80211_TESTMODE_CMD(wcn36xx_tm_cmd)
 };
 
+static void
+wcn36xx_set_ieee80211_vht_caps(struct ieee80211_sta_vht_cap *vht_cap)
+{
+	vht_cap->vht_supported = true;
+
+	vht_cap->cap = (IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_3895 |
+			IEEE80211_VHT_CAP_SHORT_GI_80 |
+			IEEE80211_VHT_CAP_RXSTBC_1 |
+			IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE |
+			IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE |
+			3 << IEEE80211_VHT_CAP_BEAMFORMEE_STS_SHIFT |
+			7 << IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_SHIFT);
+
+	vht_cap->vht_mcs.rx_mcs_map =
+		cpu_to_le16(IEEE80211_VHT_MCS_SUPPORT_0_9 |
+			    IEEE80211_VHT_MCS_NOT_SUPPORTED << 2 |
+			    IEEE80211_VHT_MCS_NOT_SUPPORTED << 4 |
+			    IEEE80211_VHT_MCS_NOT_SUPPORTED << 6 |
+			    IEEE80211_VHT_MCS_NOT_SUPPORTED << 8 |
+			    IEEE80211_VHT_MCS_NOT_SUPPORTED << 10 |
+			    IEEE80211_VHT_MCS_NOT_SUPPORTED << 12 |
+			    IEEE80211_VHT_MCS_NOT_SUPPORTED << 14);
+
+	vht_cap->vht_mcs.rx_highest = cpu_to_le16(433);
+	vht_cap->vht_mcs.tx_highest = vht_cap->vht_mcs.rx_highest;
+
+	vht_cap->vht_mcs.tx_mcs_map = vht_cap->vht_mcs.rx_mcs_map;
+}
+
 static int wcn36xx_init_ieee80211(struct wcn36xx *wcn)
 {
 	static const u32 cipher_suites[] = {
@@ -1212,6 +1241,9 @@ static int wcn36xx_init_ieee80211(struct wcn36xx *wcn)
 		wcn->hw->wiphy->bands[NL80211_BAND_5GHZ] = &wcn_band_5ghz;
 	}
 
+	if (wcn->rf_id == RF_IRIS_WCN3680)
+		wcn36xx_set_ieee80211_vht_caps(&wcn_band_5ghz.vht_cap);
+
 	wcn->hw->wiphy->max_scan_ssids = WCN36XX_MAX_SCAN_SSIDS;
 	wcn->hw->wiphy->max_scan_ie_len = WCN36XX_MAX_SCAN_IE_LEN;
 
-- 
2.27.0


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

* [PATCH v2 04/10] wcn36xx: Add 802.11ac MCS rates
  2020-08-29  3:38 [PATCH v2 00/10] wcn36xx: Add basic support for wcn3680 up to MCS7/40MHz Bryan O'Donoghue
                   ` (2 preceding siblings ...)
  2020-08-29  3:38 ` [PATCH v2 03/10] wcn36xx: Add ieee802.11 VHT flags Bryan O'Donoghue
@ 2020-08-29  3:38 ` Bryan O'Donoghue
  2020-08-29  3:38 ` [PATCH v2 05/10] wcn36xx: Fix warning due to bad rate_idx Bryan O'Donoghue
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 15+ 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 commit incorporates the 802.11ac table defined in downstream into
upstream wcn36xx.

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

diff --git a/drivers/net/wireless/ath/wcn36xx/txrx.c b/drivers/net/wireless/ath/wcn36xx/txrx.c
index 564130d6b8cb..80e96c2296af 100644
--- a/drivers/net/wireless/ath/wcn36xx/txrx.c
+++ b/drivers/net/wireless/ath/wcn36xx/txrx.c
@@ -114,7 +114,114 @@ static const struct wcn36xx_rate wcn36xx_rate_table[] = {
 	{ 1215, 6, RX_ENC_HT, RX_ENC_FLAG_HT_GF, RATE_INFO_BW_40 },
 	{ 1350, 7, RX_ENC_HT, RX_ENC_FLAG_HT_GF, RATE_INFO_BW_40 },
 
-	/* TODO: AC rates */
+	/* 11ac reserved indices */
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+
+	/* 11ac 20 MHz 800ns GI MCS 0-8 */
+	{   65, 0, RX_ENC_HT, 0, RATE_INFO_BW_20 },
+	{  130, 1, RX_ENC_HT, 0, RATE_INFO_BW_20 },
+	{  195, 2, RX_ENC_HT, 0, RATE_INFO_BW_20 },
+	{  260, 3, RX_ENC_HT, 0, RATE_INFO_BW_20 },
+	{  390, 4, RX_ENC_HT, 0, RATE_INFO_BW_20 },
+	{  520, 5, RX_ENC_HT, 0, RATE_INFO_BW_20 },
+	{  585, 6, RX_ENC_HT, 0, RATE_INFO_BW_20 },
+	{  650, 7, RX_ENC_HT, 0, RATE_INFO_BW_20 },
+	{  780, 8, RX_ENC_HT, 0, RATE_INFO_BW_20 },
+
+	/* 11ac reserved indices */
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+
+	/* 11ac 20 MHz 400ns SGI MCS 6-8 */
+	{  655, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_20 },
+	{  722, 7, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_20 },
+	{  866, 8, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_20 },
+
+	/* 11ac reserved indices */
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+
+	/* 11ac 40 MHz 800ns GI MCS 0-9 */
+	{  135, 0, RX_ENC_HT, 0, RATE_INFO_BW_40 },
+	{  270, 1, RX_ENC_HT, 0, RATE_INFO_BW_40 },
+	{  405, 2, RX_ENC_HT, 0, RATE_INFO_BW_40 },
+	{  540, 3, RX_ENC_HT, 0, RATE_INFO_BW_40 },
+	{  810, 4, RX_ENC_HT, 0, RATE_INFO_BW_40 },
+	{ 1080, 5, RX_ENC_HT, 0, RATE_INFO_BW_40 },
+	{ 1215, 6, RX_ENC_HT, 0, RATE_INFO_BW_40 },
+	{ 1350, 7, RX_ENC_HT, 0, RATE_INFO_BW_40 },
+	{ 1350, 7, RX_ENC_HT, 0, RATE_INFO_BW_40 },
+	{ 1620, 8, RX_ENC_HT, 0, RATE_INFO_BW_40 },
+	{ 1800, 9, RX_ENC_HT, 0, RATE_INFO_BW_40 },
+
+	/* 11ac reserved indices */
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+
+	/* 11ac 40 MHz 400ns SGI MCS 5-7 */
+	{ 1200, 5, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+	{ 1500, 7, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+
+	/* 11ac reserved index */
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+
+	/* 11ac 40 MHz 400ns SGI MCS 5-7 */
+	{ 1800, 8, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+	{ 2000, 9, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+
+	/* 11ac reserved index */
+	{ 1350, 6, RX_ENC_HT,  RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+
+	/* 11ac 80 MHz 800ns GI MCS 0-7 */
+	{  292, 0, RX_ENC_HT, 0, RATE_INFO_BW_80},
+	{  585, 1, RX_ENC_HT, 0, RATE_INFO_BW_80},
+	{  877, 2, RX_ENC_HT, 0, RATE_INFO_BW_80},
+	{ 1170, 3, RX_ENC_HT, 0, RATE_INFO_BW_80},
+	{ 1755, 4, RX_ENC_HT, 0, RATE_INFO_BW_80},
+	{ 2340, 5, RX_ENC_HT, 0, RATE_INFO_BW_80},
+	{ 2632, 6, RX_ENC_HT, 0, RATE_INFO_BW_80},
+	{ 2925, 7, RX_ENC_HT, 0, RATE_INFO_BW_80},
+
+	/* 11 ac reserved index */
+	{ 1350, 6, RX_ENC_HT,  RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+
+	/* 11ac 80 MHz 800 ns GI MCS 8-9 */
+	{ 3510, 8, RX_ENC_HT, 0, RATE_INFO_BW_80},
+	{ 3900, 9, RX_ENC_HT, 0, RATE_INFO_BW_80},
+
+	/* 11 ac reserved indices */
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+	{ 1350, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+
+	/* 11ac 80 MHz 400 ns SGI MCS 6-7 */
+	{ 2925, 6, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_80 },
+	{ 3250, 7, RX_ENC_HT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_80 },
+
+	/* 11ac reserved index */
+	{ 1350, 6, RX_ENC_HT,  RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_40 },
+
+	/* 11ac 80 MHz 400ns SGI MCS 8-9 */
+	{ 3900, 8, RX_ENC_VHT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_80 },
+	{ 4333, 9, RX_ENC_VHT, RX_ENC_FLAG_SHORT_GI, RATE_INFO_BW_80 },
 };
 
 int wcn36xx_rx_skb(struct wcn36xx *wcn, struct sk_buff *skb)
-- 
2.27.0


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

* [PATCH v2 05/10] wcn36xx: Fix warning due to bad rate_idx
  2020-08-29  3:38 [PATCH v2 00/10] wcn36xx: Add basic support for wcn3680 up to MCS7/40MHz Bryan O'Donoghue
                   ` (3 preceding siblings ...)
  2020-08-29  3:38 ` [PATCH v2 04/10] wcn36xx: Add 802.11ac MCS rates Bryan O'Donoghue
@ 2020-08-29  3:38 ` Bryan O'Donoghue
  2020-08-29  3:38 ` [PATCH v2 06/10] wcn36xx: Specify ieee80211_rx_status.nss Bryan O'Donoghue
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 15+ 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

From: Loic Poulain <loic.poulain@linaro.org>

The rate_idx is the index of the bitrate in the supported rate table.
However the 5Ghz band has a smaller legacy bitrate table than 2.4Ghz
since it does not have the DSSS bitrates (1, 2, 5.5, 11).

So in 5Ghz band the index should adjusted accrodingly (-4).

Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
[bod: Made sure fix is only applied if the rate_idx > n_bitrates]
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
 drivers/net/wireless/ath/wcn36xx/txrx.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/net/wireless/ath/wcn36xx/txrx.c b/drivers/net/wireless/ath/wcn36xx/txrx.c
index 80e96c2296af..05a84f82584c 100644
--- a/drivers/net/wireless/ath/wcn36xx/txrx.c
+++ b/drivers/net/wireless/ath/wcn36xx/txrx.c
@@ -230,6 +230,7 @@ int wcn36xx_rx_skb(struct wcn36xx *wcn, struct sk_buff *skb)
 	const struct wcn36xx_rate *rate;
 	struct ieee80211_hdr *hdr;
 	struct wcn36xx_rx_bd *bd;
+	struct ieee80211_supported_band *sband;
 	u16 fc, sn;
 
 	/*
@@ -270,6 +271,14 @@ int wcn36xx_rx_skb(struct wcn36xx *wcn, struct sk_buff *skb)
 		status.enc_flags = rate->encoding_flags;
 		status.bw = rate->bw;
 		status.rate_idx = rate->mcs_or_legacy_index;
+		sband = wcn->hw->wiphy->bands[status.band];
+
+		if (status.band == NL80211_BAND_5GHZ &&
+		    status.encoding == RX_ENC_LEGACY &&
+		    status.rate_idx >= sband->n_bitrates) {
+			/* no dsss rates in 5Ghz rates table */
+			status.rate_idx -= 4;
+		}
 	} else {
 		status.encoding = 0;
 		status.bw = 0;
-- 
2.27.0


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

* [PATCH v2 06/10] wcn36xx: Specify ieee80211_rx_status.nss
  2020-08-29  3:38 [PATCH v2 00/10] wcn36xx: Add basic support for wcn3680 up to MCS7/40MHz Bryan O'Donoghue
                   ` (4 preceding siblings ...)
  2020-08-29  3:38 ` [PATCH v2 05/10] wcn36xx: Fix warning due to bad rate_idx Bryan O'Donoghue
@ 2020-08-29  3:38 ` Bryan O'Donoghue
  2020-08-29  3:38 ` [PATCH v2 07/10] wcn36xx: Add 802.11ac HAL param bitfields Bryan O'Donoghue
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 15+ 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

Specify the number of spatial streams in ieee80211_rx_status. For non VHT
data-rates the wireless core doesn't care about this field, however for VHT
data-rates it does.

Every version of wcn36xx has one spatial stream, so specify nss for
wcn3620, wcn3660 and wcn3680 now.

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

diff --git a/drivers/net/wireless/ath/wcn36xx/txrx.c b/drivers/net/wireless/ath/wcn36xx/txrx.c
index 05a84f82584c..903b47b55728 100644
--- a/drivers/net/wireless/ath/wcn36xx/txrx.c
+++ b/drivers/net/wireless/ath/wcn36xx/txrx.c
@@ -272,6 +272,7 @@ int wcn36xx_rx_skb(struct wcn36xx *wcn, struct sk_buff *skb)
 		status.bw = rate->bw;
 		status.rate_idx = rate->mcs_or_legacy_index;
 		sband = wcn->hw->wiphy->bands[status.band];
+		status.nss = 1;
 
 		if (status.band == NL80211_BAND_5GHZ &&
 		    status.encoding == RX_ENC_LEGACY &&
-- 
2.27.0


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

* [PATCH v2 07/10] wcn36xx: Add 802.11ac HAL param bitfields
  2020-08-29  3:38 [PATCH v2 00/10] wcn36xx: Add basic support for wcn3680 up to MCS7/40MHz Bryan O'Donoghue
                   ` (5 preceding siblings ...)
  2020-08-29  3:38 ` [PATCH v2 06/10] wcn36xx: Specify ieee80211_rx_status.nss Bryan O'Donoghue
@ 2020-08-29  3:38 ` Bryan O'Donoghue
  2020-08-29  3:38 ` [PATCH v2 08/10] wcn36xx: Add Supported rates V1 structure Bryan O'Donoghue
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 15+ 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 enumerates four previously unused bits in
wcn36xx_hal_config_sta_params_v1 describing

- HT LDPC enable
- VHT LDPC enable
- VHT TX BF enable
- VHT MU Beamformee enable

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

diff --git a/drivers/net/wireless/ath/wcn36xx/hal.h b/drivers/net/wireless/ath/wcn36xx/hal.h
index 30476f857d23..c7661fb50c10 100644
--- a/drivers/net/wireless/ath/wcn36xx/hal.h
+++ b/drivers/net/wireless/ath/wcn36xx/hal.h
@@ -1515,7 +1515,11 @@ struct wcn36xx_hal_config_sta_params_v1 {
 	u8 p2p;
 
 	/* Reserved to align next field on a dword boundary */
-	u8 reserved;
+	u8 ht_ldpc_enabled:1;
+	u8 vht_ldpc_enabled:1;
+	u8 vht_tx_bf_enabled:1;
+	u8 vht_tx_mu_beamformee_capable:1;
+	u8 reserved:4;
 
 	/* These rates are the intersection of peer and self capabilities. */
 	struct wcn36xx_hal_supported_rates supported_rates;
-- 
2.27.0


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

* [PATCH v2 08/10] wcn36xx: Add Supported rates V1 structure
  2020-08-29  3:38 [PATCH v2 00/10] wcn36xx: Add basic support for wcn3680 up to MCS7/40MHz Bryan O'Donoghue
                   ` (6 preceding siblings ...)
  2020-08-29  3:38 ` [PATCH v2 07/10] wcn36xx: Add 802.11ac HAL param bitfields Bryan O'Donoghue
@ 2020-08-29  3:38 ` Bryan O'Donoghue
  2020-08-29  3:38 ` [PATCH v2 09/10] wcn36xx: Use existing pointers in wcn36xx_smd_config_bss_v1 Bryan O'Donoghue
  2020-08-29  3:38 ` [PATCH v2 10/10] wcn36xx: Set feature DOT11AC for wcn3680 Bryan O'Donoghue
  9 siblings, 0 replies; 15+ 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 commit adds the supported rates V1 structure as defined in Prima
riva/inc/wlan_hal_msg.h

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

diff --git a/drivers/net/wireless/ath/wcn36xx/hal.h b/drivers/net/wireless/ath/wcn36xx/hal.h
index c7661fb50c10..573799274a02 100644
--- a/drivers/net/wireless/ath/wcn36xx/hal.h
+++ b/drivers/net/wireless/ath/wcn36xx/hal.h
@@ -1413,6 +1413,76 @@ struct wcn36xx_hal_config_sta_req_msg {
 	struct wcn36xx_hal_config_sta_params sta_params;
 } __packed;
 
+struct wcn36xx_hal_supported_rates_v1 {
+	/* For Self STA Entry: this represents Self Mode.
+	 * For Peer Stations, this represents the mode of the peer.
+	 * On Station:
+	 *
+	 * --this mode is updated when PE adds the Self Entry.
+	 *
+	 * -- OR when PE sends 'ADD_BSS' message and station context in BSS
+	 *    is used to indicate the mode of the AP.
+	 *
+	 * ON AP:
+	 *
+	 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry
+	 *     for that BSS is used to indicate the self mode of the AP.
+	 *
+	 * -- OR when a station is associated, PE sends 'ADD_STA' message
+	 *    with this mode updated.
+	 */
+
+	enum sta_rate_mode op_rate_mode;
+
+	/* 11b, 11a and aniLegacyRates are IE rates which gives rate in
+	 * unit of 500Kbps
+	 */
+	u16 dsss_rates[WCN36XX_HAL_NUM_DSSS_RATES];
+	u16 ofdm_rates[WCN36XX_HAL_NUM_OFDM_RATES];
+	u16 legacy_rates[WCN36XX_HAL_NUM_POLARIS_RATES];
+	u16 reserved;
+
+	/* Taurus only supports 26 Titan Rates(no ESF/concat Rates will be
+	 * supported) First 26 bits are reserved for those Titan rates and
+	 * the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are
+	 * reserved
+	 * Titan and Taurus Rates
+	 */
+	u32 enhanced_rate_bitmap;
+
+	/* 0-76 bits used, remaining reserved
+	 * bits 0-15 and 32 should be set.
+	 */
+	u8 supported_mcs_set[WCN36XX_HAL_MAC_MAX_SUPPORTED_MCS_SET];
+
+	/* RX Highest Supported Data Rate defines the highest data
+	 * rate that the STA is able to receive, in unites of 1Mbps.
+	 * This value is derived from "Supported MCS Set field" inside
+	 * the HT capability element.
+	 */
+	u16 rx_highest_data_rate;
+
+	/* Indicates the Maximum MCS that can be received for each spatial
+	 * stream.
+	 */
+	u16 vht_rx_mcs_map;
+
+	/* Indicates the highest VHT data rate that the STA is able to
+	 * receive.
+	 */
+	u16 vht_rx_highest_data_rate;
+
+	/* Indicates the Maximum MCS that can be transmitted for each spatial
+	 * stream.
+	 */
+	u16 vht_tx_mcs_map;
+
+	/* Indicates the highest VHT data rate that the STA is able to
+	 * transmit.
+	 */
+	u16 vht_tx_highest_data_rate;
+} __packed;
+
 struct wcn36xx_hal_config_sta_params_v1 {
 	/* BSSID of STA */
 	u8 bssid[ETH_ALEN];
-- 
2.27.0


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

* [PATCH v2 09/10] wcn36xx: Use existing pointers in wcn36xx_smd_config_bss_v1
  2020-08-29  3:38 [PATCH v2 00/10] wcn36xx: Add basic support for wcn3680 up to MCS7/40MHz Bryan O'Donoghue
                   ` (7 preceding siblings ...)
  2020-08-29  3:38 ` [PATCH v2 08/10] wcn36xx: Add Supported rates V1 structure Bryan O'Donoghue
@ 2020-08-29  3:38 ` Bryan O'Donoghue
  2020-08-29  3:38 ` [PATCH v2 10/10] wcn36xx: Set feature DOT11AC for wcn3680 Bryan O'Donoghue
  9 siblings, 0 replies; 15+ 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

Two pointers are already defined in this function "bss" and "sta" which
point to fields within msg_body->bss_params.

We can substantially reduce the amount of extraneous text in this function
by making use of those pointers. This change makes the code easier to read
and modify.

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

diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c
index 92ae77523115..9490b1bf4e05 100644
--- a/drivers/net/wireless/ath/wcn36xx/smd.c
+++ b/drivers/net/wireless/ath/wcn36xx/smd.c
@@ -1299,87 +1299,71 @@ static int wcn36xx_smd_config_bss_v1(struct wcn36xx *wcn,
 	sta = &bss->sta;
 
 	/* convert orig to v1 */
-	memcpy(&msg_body->bss_params.bssid,
-	       &orig->bss_params.bssid, ETH_ALEN);
-	memcpy(&msg_body->bss_params.self_mac_addr,
-	       &orig->bss_params.self_mac_addr, ETH_ALEN);
+	memcpy(bss->bssid, &orig->bss_params.bssid, ETH_ALEN);
+	memcpy(bss->self_mac_addr, &orig->bss_params.self_mac_addr, ETH_ALEN);
 
-	msg_body->bss_params.bss_type = orig->bss_params.bss_type;
-	msg_body->bss_params.oper_mode = orig->bss_params.oper_mode;
-	msg_body->bss_params.nw_type = orig->bss_params.nw_type;
+	bss->bss_type = orig->bss_params.bss_type;
+	bss->oper_mode = orig->bss_params.oper_mode;
+	bss->nw_type = orig->bss_params.nw_type;
 
-	msg_body->bss_params.short_slot_time_supported =
+	bss->short_slot_time_supported =
 		orig->bss_params.short_slot_time_supported;
-	msg_body->bss_params.lla_coexist = orig->bss_params.lla_coexist;
-	msg_body->bss_params.llb_coexist = orig->bss_params.llb_coexist;
-	msg_body->bss_params.llg_coexist = orig->bss_params.llg_coexist;
-	msg_body->bss_params.ht20_coexist = orig->bss_params.ht20_coexist;
-	msg_body->bss_params.lln_non_gf_coexist =
-		orig->bss_params.lln_non_gf_coexist;
-
-	msg_body->bss_params.lsig_tx_op_protection_full_support =
+	bss->lla_coexist = orig->bss_params.lla_coexist;
+	bss->llb_coexist = orig->bss_params.llb_coexist;
+	bss->llg_coexist = orig->bss_params.llg_coexist;
+	bss->ht20_coexist = orig->bss_params.ht20_coexist;
+	bss->lln_non_gf_coexist = orig->bss_params.lln_non_gf_coexist;
+
+	bss->lsig_tx_op_protection_full_support =
 		orig->bss_params.lsig_tx_op_protection_full_support;
-	msg_body->bss_params.rifs_mode = orig->bss_params.rifs_mode;
-	msg_body->bss_params.beacon_interval = orig->bss_params.beacon_interval;
-	msg_body->bss_params.dtim_period = orig->bss_params.dtim_period;
-	msg_body->bss_params.tx_channel_width_set =
-		orig->bss_params.tx_channel_width_set;
-	msg_body->bss_params.oper_channel = orig->bss_params.oper_channel;
-	msg_body->bss_params.ext_channel = orig->bss_params.ext_channel;
-
-	msg_body->bss_params.reserved = orig->bss_params.reserved;
-
-	memcpy(&msg_body->bss_params.ssid,
-	       &orig->bss_params.ssid,
+	bss->rifs_mode = orig->bss_params.rifs_mode;
+	bss->beacon_interval = orig->bss_params.beacon_interval;
+	bss->dtim_period = orig->bss_params.dtim_period;
+	bss->tx_channel_width_set = orig->bss_params.tx_channel_width_set;
+	bss->oper_channel = orig->bss_params.oper_channel;
+	bss->ext_channel = orig->bss_params.ext_channel;
+
+	bss->reserved = orig->bss_params.reserved;
+
+	memcpy(&bss->ssid, &orig->bss_params.ssid,
 	       sizeof(orig->bss_params.ssid));
 
-	msg_body->bss_params.action = orig->bss_params.action;
-	msg_body->bss_params.rateset = orig->bss_params.rateset;
-	msg_body->bss_params.ht = orig->bss_params.ht;
-	msg_body->bss_params.obss_prot_enabled =
-		orig->bss_params.obss_prot_enabled;
-	msg_body->bss_params.rmf = orig->bss_params.rmf;
-	msg_body->bss_params.ht_oper_mode = orig->bss_params.ht_oper_mode;
-	msg_body->bss_params.dual_cts_protection =
-		orig->bss_params.dual_cts_protection;
-
-	msg_body->bss_params.max_probe_resp_retry_limit =
+	bss->action = orig->bss_params.action;
+	bss->rateset = orig->bss_params.rateset;
+	bss->ht = orig->bss_params.ht;
+	bss->obss_prot_enabled = orig->bss_params.obss_prot_enabled;
+	bss->rmf = orig->bss_params.rmf;
+	bss->ht_oper_mode = orig->bss_params.ht_oper_mode;
+	bss->dual_cts_protection = orig->bss_params.dual_cts_protection;
+
+	bss->max_probe_resp_retry_limit =
 		orig->bss_params.max_probe_resp_retry_limit;
-	msg_body->bss_params.hidden_ssid = orig->bss_params.hidden_ssid;
-	msg_body->bss_params.proxy_probe_resp =
-		orig->bss_params.proxy_probe_resp;
-	msg_body->bss_params.edca_params_valid =
-		orig->bss_params.edca_params_valid;
-
-	memcpy(&msg_body->bss_params.acbe,
-	       &orig->bss_params.acbe,
+	bss->hidden_ssid = orig->bss_params.hidden_ssid;
+	bss->proxy_probe_resp =	orig->bss_params.proxy_probe_resp;
+	bss->edca_params_valid = orig->bss_params.edca_params_valid;
+
+	memcpy(&bss->acbe, &orig->bss_params.acbe,
 	       sizeof(orig->bss_params.acbe));
-	memcpy(&msg_body->bss_params.acbk,
-	       &orig->bss_params.acbk,
+	memcpy(&bss->acbk, &orig->bss_params.acbk,
 	       sizeof(orig->bss_params.acbk));
-	memcpy(&msg_body->bss_params.acvi,
-	       &orig->bss_params.acvi,
+	memcpy(&bss->acvi, &orig->bss_params.acvi,
 	       sizeof(orig->bss_params.acvi));
-	memcpy(&msg_body->bss_params.acvo,
-	       &orig->bss_params.acvo,
+	memcpy(&bss->acvo, &orig->bss_params.acvo,
 	       sizeof(orig->bss_params.acvo));
 
-	msg_body->bss_params.ext_set_sta_key_param_valid =
+	bss->ext_set_sta_key_param_valid =
 		orig->bss_params.ext_set_sta_key_param_valid;
 
-	memcpy(&msg_body->bss_params.ext_set_sta_key_param,
+	memcpy(&bss->ext_set_sta_key_param,
 	       &orig->bss_params.ext_set_sta_key_param,
 	       sizeof(orig->bss_params.acvo));
 
-	msg_body->bss_params.wcn36xx_hal_persona =
-		orig->bss_params.wcn36xx_hal_persona;
-	msg_body->bss_params.spectrum_mgt_enable =
-		orig->bss_params.spectrum_mgt_enable;
-	msg_body->bss_params.tx_mgmt_power = orig->bss_params.tx_mgmt_power;
-	msg_body->bss_params.max_tx_power = orig->bss_params.max_tx_power;
+	bss->wcn36xx_hal_persona = orig->bss_params.wcn36xx_hal_persona;
+	bss->spectrum_mgt_enable = orig->bss_params.spectrum_mgt_enable;
+	bss->tx_mgmt_power = orig->bss_params.tx_mgmt_power;
+	bss->max_tx_power = orig->bss_params.max_tx_power;
 
-	wcn36xx_smd_convert_sta_to_v1(wcn, &orig->bss_params.sta,
-				      &msg_body->bss_params.sta);
+	wcn36xx_smd_convert_sta_to_v1(wcn, &orig->bss_params.sta, sta);
 
 	PREPARE_HAL_BUF(wcn->hal_buf, (*msg_body));
 
-- 
2.27.0


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

* [PATCH v2 10/10] wcn36xx: Set feature DOT11AC for wcn3680
  2020-08-29  3:38 [PATCH v2 00/10] wcn36xx: Add basic support for wcn3680 up to MCS7/40MHz Bryan O'Donoghue
                   ` (8 preceding siblings ...)
  2020-08-29  3:38 ` [PATCH v2 09/10] wcn36xx: Use existing pointers in wcn36xx_smd_config_bss_v1 Bryan O'Donoghue
@ 2020-08-29  3:38 ` Bryan O'Donoghue
  9 siblings, 0 replies; 15+ 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 for the firmware to process extended V1 parameters with the
addtional VHT fields added we need to first enable the feature bit DOT11AC.
Once done the version number in the HAL message header will be acted upon
by the firmware.

Extended V1 parameters are a prerequisite for 802.11ac speeds since we
cannot communicate VHT parameters to the firmware absent the extended data
structures.

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

diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c
index 9490b1bf4e05..4c30036e2e56 100644
--- a/drivers/net/wireless/ath/wcn36xx/smd.c
+++ b/drivers/net/wireless/ath/wcn36xx/smd.c
@@ -2084,6 +2084,8 @@ int wcn36xx_smd_feature_caps_exchange(struct wcn36xx *wcn)
 	INIT_HAL_MSG(msg_body, WCN36XX_HAL_FEATURE_CAPS_EXCHANGE_REQ);
 
 	set_feat_caps(msg_body.feat_caps, STA_POWERSAVE);
+	if (wcn->rf_id == RF_IRIS_WCN3680)
+		set_feat_caps(msg_body.feat_caps, DOT11AC);
 
 	PREPARE_HAL_BUF(wcn->hal_buf, msg_body);
 
-- 
2.27.0


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

* Re: [PATCH v2 01/10] wcn36xx: Add a chip identifier for WCN3680
  2020-08-29  3:38 ` [PATCH v2 01/10] wcn36xx: Add a chip identifier for WCN3680 Bryan O'Donoghue
@ 2020-09-02  8:49   ` Kalle Valo
  0 siblings, 0 replies; 15+ messages in thread
From: Kalle Valo @ 2020-09-02  8:49 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:

> The WCN3680 has some specific behaviours that we want to capture to
> distinguish it from the WCN3620 and WCN3660 respectively.
> 
> Add an identifier for this purpose.
> 
> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>

9 patches applied to ath-next branch of ath.git, thanks.

034f0befc1ff wcn36xx: Add a chip identifier for WCN3680
8490987bdb9a wcn36xx: Hook and identify RF_IRIS_WCN3680
10630b150bd6 wcn36xx: Add 802.11ac MCS rates
6ea131acea98 wcn36xx: Fix warning due to bad rate_idx
1af05d43b9be wcn36xx: Specify ieee80211_rx_status.nss
ff11d0c96a6d wcn36xx: Add 802.11ac HAL param bitfields
8f454b2ffb25 wcn36xx: Add Supported rates V1 structure
f32248a7a257 wcn36xx: Use existing pointers in wcn36xx_smd_config_bss_v1
dfe92b6206f5 wcn36xx: Set feature DOT11AC for wcn3680

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

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


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

* Re: [PATCH v2 03/10] wcn36xx: Add ieee802.11 VHT flags
  2020-08-29  3:38 ` [PATCH v2 03/10] wcn36xx: Add ieee802.11 VHT flags Bryan O'Donoghue
@ 2020-09-02  8:55   ` Kalle Valo
       [not found]   ` <20200902085545.5CC7EC433CA@smtp.codeaurora.org>
  1 sibling, 0 replies; 15+ messages in thread
From: Kalle Valo @ 2020-09-02  8:55 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:

> This patch adds ieee802.11 VHT flags for the wcn3680b.
> 
> - RX_STBC1
> - SU Beamformee
> - MU Beamformee
> - VHT80 SGI
> - Single spatial stream
> 
> RX LDPC is declared as supported in the datasheet but not enabled at this
> time.
> 
> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>

Fails to apply. Please use ath.git master branch as the baseline.

error: patch failed: drivers/net/wireless/ath/wcn36xx/main.c:1212
error: drivers/net/wireless/ath/wcn36xx/main.c: patch does not apply
stg import: Diff does not apply cleanly

Patch set to Changes Requested.

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

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


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

* Re: [PATCH v2 03/10] wcn36xx: Add ieee802.11 VHT flags
       [not found]   ` <20200902085545.5CC7EC433CA@smtp.codeaurora.org>
@ 2020-09-02  9:46     ` Bryan O'Donoghue
  2020-09-02 12:22       ` Kalle Valo
  0 siblings, 1 reply; 15+ messages in thread
From: Bryan O'Donoghue @ 2020-09-02  9:46 UTC (permalink / raw)
  To: Kalle Valo; +Cc: wcn36xx, linux-wireless, shawn.guo, loic.poulain

On 02/09/2020 09:55, Kalle Valo wrote:
> Fails to apply. Please use ath.git master branch as the baseline.

Oops, I did this on ath.git/pending

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

* Re: [PATCH v2 03/10] wcn36xx: Add ieee802.11 VHT flags
  2020-09-02  9:46     ` Bryan O'Donoghue
@ 2020-09-02 12:22       ` Kalle Valo
  0 siblings, 0 replies; 15+ messages in thread
From: Kalle Valo @ 2020-09-02 12:22 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:55, Kalle Valo wrote:
>> Fails to apply. Please use ath.git master branch as the baseline.
>
> Oops, I did this on ath.git/pending

Yeah, using the pending branch is a bit risky as I can always drop or
change patches. The master branch is the best as there the sha1 ids are
stable and I can easily fix the conflicts with 3-way merge.

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

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

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

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-29  3:38 [PATCH v2 00/10] wcn36xx: Add basic support for wcn3680 up to MCS7/40MHz Bryan O'Donoghue
2020-08-29  3:38 ` [PATCH v2 01/10] wcn36xx: Add a chip identifier for WCN3680 Bryan O'Donoghue
2020-09-02  8:49   ` Kalle Valo
2020-08-29  3:38 ` [PATCH v2 02/10] wcn36xx: Hook and identify RF_IRIS_WCN3680 Bryan O'Donoghue
2020-08-29  3:38 ` [PATCH v2 03/10] wcn36xx: Add ieee802.11 VHT flags Bryan O'Donoghue
2020-09-02  8:55   ` Kalle Valo
     [not found]   ` <20200902085545.5CC7EC433CA@smtp.codeaurora.org>
2020-09-02  9:46     ` Bryan O'Donoghue
2020-09-02 12:22       ` Kalle Valo
2020-08-29  3:38 ` [PATCH v2 04/10] wcn36xx: Add 802.11ac MCS rates Bryan O'Donoghue
2020-08-29  3:38 ` [PATCH v2 05/10] wcn36xx: Fix warning due to bad rate_idx Bryan O'Donoghue
2020-08-29  3:38 ` [PATCH v2 06/10] wcn36xx: Specify ieee80211_rx_status.nss Bryan O'Donoghue
2020-08-29  3:38 ` [PATCH v2 07/10] wcn36xx: Add 802.11ac HAL param bitfields Bryan O'Donoghue
2020-08-29  3:38 ` [PATCH v2 08/10] wcn36xx: Add Supported rates V1 structure Bryan O'Donoghue
2020-08-29  3:38 ` [PATCH v2 09/10] wcn36xx: Use existing pointers in wcn36xx_smd_config_bss_v1 Bryan O'Donoghue
2020-08-29  3:38 ` [PATCH v2 10/10] wcn36xx: Set feature DOT11AC for 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).