All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rajkumar Manoharan <rmanohar@codeaurora.org>
To: johannes@sipsolutions.net
Cc: linux-wireless@vger.kernel.org,
	Rajkumar Manoharan <rmanohar@codeaurora.org>
Subject: [PATCH 10/10] ath11k: build HE 6 GHz capability
Date: Fri, 24 Apr 2020 15:41:48 -0700	[thread overview]
Message-ID: <1587768108-25248-11-git-send-email-rmanohar@codeaurora.org> (raw)
In-Reply-To: <1587768108-25248-1-git-send-email-rmanohar@codeaurora.org>

Build 6 GHz band capability from HT and VHT capabilities reported
by firmware.

Signed-off-by: Rajkumar Manoharan <rmanohar@codeaurora.org>
---
 drivers/net/wireless/ath/ath11k/core.h |  1 +
 drivers/net/wireless/ath/ath11k/mac.c  | 30 ++++++++++++++++++++++++++++++
 2 files changed, 31 insertions(+)

diff --git a/drivers/net/wireless/ath/ath11k/core.h b/drivers/net/wireless/ath/ath11k/core.h
index 6e7b8ecd09a6..730829eaee23 100644
--- a/drivers/net/wireless/ath/ath11k/core.h
+++ b/drivers/net/wireless/ath/ath11k/core.h
@@ -537,6 +537,7 @@ struct ath11k_band_cap {
 	u32 he_mcs;
 	u32 he_cap_phy_info[PSOC_HOST_MAX_PHY_SIZE];
 	struct ath11k_ppe_threshold he_ppet;
+	u32 he_6ghz_cap;
 };
 
 struct ath11k_pdev_cap {
diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
index 06d063274eea..eb4dc6fc4209 100644
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -3522,6 +3522,32 @@ ath11k_mac_filter_he_cap_mesh(struct ieee80211_he_cap_elem *he_cap_elem)
 	he_cap_elem->phy_cap_info[9] &= ~m;
 }
 
+static u16 ath11k_mac_setup_he_6ghz_cap(struct ath11k_pdev_cap *pcap,
+					struct ath11k_band_cap *bcap)
+{
+	bcap->he_6ghz_cap = IEEE80211_HT_MPDU_DENSITY_NONE;
+	if (bcap->ht_cap_info & WMI_HT_CAP_DYNAMIC_SMPS)
+		bcap->he_6ghz_cap |=
+			FIELD_PREP(IEEE80211_HE_6GHZ_CAP_SMPS_MASK,
+				   WLAN_HT_CAP_SM_PS_DYNAMIC);
+	bcap->he_6ghz_cap |=
+	   FIELD_PREP(IEEE80211_HE_6GHZ_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MASK,
+		FIELD_GET(IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MASK,
+			  pcap->vht_cap));
+	bcap->he_6ghz_cap |=
+		FIELD_PREP(IEEE80211_HE_6GHZ_CAP_MAX_MPDU_LENGTH_MASK,
+			   FIELD_GET(IEEE80211_VHT_CAP_MAX_MPDU_MASK,
+				     pcap->vht_cap));
+	if (pcap->vht_cap & IEEE80211_VHT_CAP_RX_ANTENNA_PATTERN)
+		bcap->he_6ghz_cap |=
+			IEEE80211_HE_6GHZ_CAP_RX_ANTENNA_PATTERN;
+	if (pcap->vht_cap & IEEE80211_VHT_CAP_TX_ANTENNA_PATTERN)
+		bcap->he_6ghz_cap |=
+			IEEE80211_HE_6GHZ_CAP_TX_ANTENNA_PATTERN;
+
+	return bcap->he_6ghz_cap;
+}
+
 static int ath11k_mac_copy_he_cap(struct ath11k *ar,
 				  struct ath11k_pdev_cap *cap,
 				  struct ieee80211_sband_iftype_data *data,
@@ -3602,6 +3628,10 @@ static int ath11k_mac_copy_he_cap(struct ath11k *ar,
 		    IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT)
 			ath11k_gen_ppe_thresh(&band_cap->he_ppet,
 					      he_cap->ppe_thres);
+
+		if (band == NL80211_BAND_6GHZ)
+			he_cap->he_6ghz_cap =
+				ath11k_mac_setup_he_6ghz_cap(cap, band_cap);
 		idx++;
 	}
 
-- 
2.7.4

      parent reply	other threads:[~2020-04-24 22:42 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-24 22:41 [PATCH 00/10] mac80211: add 6 GHz IEs support Rajkumar Manoharan
2020-04-24 22:41 ` [PATCH 01/10] mac80211: fix memory overlap due to variable length param Rajkumar Manoharan
2020-04-24 22:41 ` [PATCH 02/10] cfg80211: validate 6 GHz chandef Rajkumar Manoharan
2020-04-29 14:26   ` Johannes Berg
2020-04-30  0:02     ` Rajkumar Manoharan
2020-04-30 19:54       ` Johannes Berg
2020-04-24 22:41 ` [PATCH 03/10] nl80211: add HE 6 GHz Band Capability support Rajkumar Manoharan
2020-04-29 14:28   ` Johannes Berg
2020-04-30  0:04     ` Rajkumar Manoharan
2020-04-24 22:41 ` [PATCH 04/10] mac80211: add HE 6 GHz Band Capabilities into parse extension Rajkumar Manoharan
2020-04-24 22:41 ` [PATCH 05/10] mac80211: handle HE 6 GHz Capability in HE STA processing Rajkumar Manoharan
2020-04-29 14:31   ` Johannes Berg
2020-04-30  0:11     ` Rajkumar Manoharan
2020-04-24 22:41 ` [PATCH 06/10] mac80211: add HE 6 GHz Band Capability IE in assoc. request Rajkumar Manoharan
2020-04-29 14:33   ` Johannes Berg
2020-04-30  0:14     ` Rajkumar Manoharan
2020-04-30 19:52       ` Johannes Berg
2020-04-24 22:41 ` [PATCH 07/10] mac80211: build HE operation with 6 GHz oper information Rajkumar Manoharan
2020-04-24 22:41 ` [PATCH 08/10] mac80211: do not allow HT/VHT IEs in 6 GHz mesh mode Rajkumar Manoharan
2020-04-24 22:41 ` [PATCH 09/10] mac80211: determine chantype from HE operation in 6 GHz Rajkumar Manoharan
2020-04-29 14:34   ` Johannes Berg
2020-04-30  0:18     ` Rajkumar Manoharan
2020-04-30 19:53       ` Johannes Berg
2020-04-24 22:41 ` Rajkumar Manoharan [this message]

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=1587768108-25248-11-git-send-email-rmanohar@codeaurora.org \
    --to=rmanohar@codeaurora.org \
    --cc=johannes@sipsolutions.net \
    --cc=linux-wireless@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.