linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
To: kvalo@codeaurora.org
Cc: wcn36xx@lists.infradead.org, linux-wireless@vger.kernel.org,
	bryan.odonoghue@linaro.org, shawn.guo@linaro.org
Subject: [PATCH 20/36] wcn36xx: Convert to VHT parameter structure on wcn3680
Date: Mon,  3 Aug 2020 04:11:16 +0100	[thread overview]
Message-ID: <20200803031132.1427063-21-bryan.odonoghue@linaro.org> (raw)
In-Reply-To: <20200803031132.1427063-1-bryan.odonoghue@linaro.org>

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 6a03d5956fc2..2d6779cfa59c 100644
--- a/drivers/net/wireless/ath/wcn36xx/smd.c
+++ b/drivers/net/wireless/ath/wcn36xx/smd.c
@@ -1311,7 +1311,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);
@@ -1382,7 +1387,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


  parent reply	other threads:[~2020-08-03  3:11 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-03  3:10 [PATCH 00/36] wcn36xx: Add support for WCN3680 802.11ac Bryan O'Donoghue
2020-08-03  3:10 ` [PATCH 01/36] wcn36xx: Add ability to identify WCN3680 Bryan O'Donoghue
2020-08-26 15:28   ` Kalle Valo
2020-08-03  3:10 ` [PATCH 02/36] wcn36xx: Add ieee802.11 VHT flags Bryan O'Donoghue
2020-08-03  3:10 ` [PATCH 03/36] wcn36xx: Add 802.11ac MCS rates Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 04/36] wcn36xx: Specify ieee80211_rx_status.nss Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 05/36] wcn36xx: Add 802.11ac HAL param bitfields Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 06/36] wcn36xx: Add Supported rates V1 structure Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 07/36] wcn36xx: Use existing pointers in wcn36xx_smd_config_bss_v1 Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 08/36] wcn36xx: Set feature DOT11AC for wcn3680 Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 09/36] wcn36xx: Add VHT fields to parameter data structures Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 10/36] wcn36xx: Use V1 data structure to store supported rates Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 11/36] wcn36xx: Add wcn36xx_set_default_rates_v1 Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 12/36] wcn36xx: Add VHT rates to wcn36xx_update_allowed_rates() Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 13/36] wcn36xx: Add wcn36xx_smd_set_sta_default_vht_params() Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 14/36] wcn36xx: Add wcn36xx_smd_set_sta_default_ht_ldpc_params() Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 15/36] wcn36xx: Add wcn36xx_smd_set_sta_vht_params() Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 16/36] wcn36xx: Add wcn36xx_smd_set_sta_ht_ldpc_params() Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 17/36] wcn36xx: Add wcn36xx_smd_set_bss_vht_params() Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 18/36] wcn36xx: Add wrapper function wcn36xx_smd_set_sta_params_v1() Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 19/36] wcn36xx: Define INIT_HAL_MSG_V1() Bryan O'Donoghue
2020-08-03  3:11 ` Bryan O'Donoghue [this message]
2020-08-03  3:11 ` [PATCH 21/36] wcn36xx: Functionally decompose wcn36xx_smd_config_sta() Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 22/36] wcn36xx: Move wcn36xx_smd_set_sta_params() inside wcn36xx_smd_config_bss() Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 23/36] wcn36xx: Move BSS parameter setup to wcn36xx_smd_set_bss_params() Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 24/36] wcn36xx: Add wcn36xx_smd_config_bss_v0 Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 25/36] wcn36xx: Update wcn36xx_smd_config_bss_v1() to operate internally Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 26/36] wcn36xx: Convert to using wcn36xx_smd_config_bss_v0() Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 27/36] wcn36xx: Remove dead code in wcn36xx_smd_config_bss() Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 28/36] wcn36xx: Latch VHT specific BSS parameters to firmware Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 29/36] wcn36xx: Add accessor macro HW_VALUE_CHANNEL for hardware channels Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 30/36] wcn36xx: Use HW_VALUE_CHANNEL macro to get channel number Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 31/36] wcn36xx: Add accessor macro HW_VALUE_PHY for PHY settings Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 32/36] wcn36xx: Encode PHY mode for 80MHz channel in hw_value Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 33/36] wcn36xx: Set PHY into correct mode for 80MHz channel width Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 34/36] wcn36xx: Extend HAL param config list Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 35/36] wcn36xx: Define wcn3680 specific firmware parameters Bryan O'Donoghue
2020-08-03  3:11 ` [PATCH 36/36] wcn36xx: Add ability to download " Bryan O'Donoghue
2020-08-26 15:27 ` [PATCH 00/36] wcn36xx: Add support for WCN3680 802.11ac Kalle Valo
2020-08-26 16:17   ` Bryan O'Donoghue
2020-08-27  8:06     ` Kalle Valo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200803031132.1427063-21-bryan.odonoghue@linaro.org \
    --to=bryan.odonoghue@linaro.org \
    --cc=kvalo@codeaurora.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=shawn.guo@linaro.org \
    --cc=wcn36xx@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).