All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pradeep Kumar Chitrapu <pradeepc@codeaurora.org>
To: Johannes Berg <johannes@sipsolutions.net>, ath11k@lists.infradead.org
Cc: linux-wireless@vger.kernel.org,
	Pradeep Kumar Chitrapu <pradeepc@codeaurora.org>
Subject: [PATCH v2 1/9] cfg80211: Add new channel flag to identify 6GHz PSC channel
Date: Fri, 22 May 2020 00:24:23 -0700	[thread overview]
Message-ID: <20200522072431.27601-2-pradeepc@codeaurora.org> (raw)
In-Reply-To: <20200522072431.27601-1-pradeepc@codeaurora.org>

6GHz channels are divided into preferred scanning channels(PSC)
and non-PSC channels. One in every four 20MHz channels is a PSC.
Spec mandates to use only PSC channels as primary channels for
setting up BSS on 6GHz only AP.

The set of 20 MHz channels in the 6 GHz band, with channel center
frequency, ch_a = Channel starting frequency – 55 + 80 × n (MHz)
are referred to as preferred scanning channels (PSCs) where,
n = 1, …, 15 as per IEEE P802.11ax/D6.0.

This flag also will be used when making scanning decision on
6GHz channels.

Signed-off-by: Pradeep Kumar Chitrapu <pradeepc@codeaurora.org>
---
 include/net/cfg80211.h |  2 ++
 net/wireless/reg.c     | 19 +++++++++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index fd6a973b1249..ca3e9df7adfe 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -96,6 +96,7 @@ struct wiphy;
  * @IEEE80211_CHAN_NO_10MHZ: 10 MHz bandwidth is not permitted
  *	on this channel.
  * @IEEE80211_CHAN_NO_HE: HE operation is not permitted on this channel.
+ * @IEEE80211_CHAN_PSC: 6GHz Channel is Preferred Scanning Channel(PSC)
  *
  */
 enum ieee80211_channel_flags {
@@ -113,6 +114,7 @@ enum ieee80211_channel_flags {
 	IEEE80211_CHAN_NO_20MHZ		= 1<<11,
 	IEEE80211_CHAN_NO_10MHZ		= 1<<12,
 	IEEE80211_CHAN_NO_HE		= 1<<13,
+	IEEE80211_CHAN_PSC		= 1<<14,
 };
 
 #define IEEE80211_CHAN_NO_HT40 \
diff --git a/net/wireless/reg.c b/net/wireless/reg.c
index 0d74a31ef0ab..4ebaa57e60e4 100644
--- a/net/wireless/reg.c
+++ b/net/wireless/reg.c
@@ -2023,6 +2023,21 @@ static bool is_ht40_allowed(struct ieee80211_channel *chan)
 	return true;
 }
 
+static bool reg_is_6ghz_channel_psc(struct ieee80211_channel *chan)
+{
+	/*
+	 * From IEEE P802.11ax/D6.0: The set of 20 MHz channels in the 6 GHz
+	 * band, with channel center frequency, ch_a = Channel starting
+	 * frequency – 55 + 80 × n (MHz) are referred to as preferred scanning
+	 * channels (PSCs). Channel starting frequency is defined in 27.3.23.2
+	 * (Channel allocation in the 6 GHz band), and n = 1, …, 15.
+	 */
+	if (!(((chan->center_freq - 5940 + 55) >> 4) % 5))
+		return true;
+
+	return false;
+}
+
 static void reg_process_ht_flags_channel(struct wiphy *wiphy,
 					 struct ieee80211_channel *channel)
 {
@@ -2305,6 +2320,10 @@ static void handle_channel_custom(struct wiphy *wiphy,
 	else
 		chan->flags |= map_regdom_flags(reg_rule->flags) | bw_flags;
 
+	if (chan->band == NL80211_BAND_6GHZ &&
+	    reg_is_6ghz_channel_psc(chan))
+		chan->flags |= IEEE80211_CHAN_PSC;
+
 	chan->max_antenna_gain = (int) MBI_TO_DBI(power_rule->max_antenna_gain);
 	chan->max_reg_power = chan->max_power =
 		(int) MBM_TO_DBM(power_rule->max_eirp);
-- 
2.17.1

WARNING: multiple messages have this Message-ID (diff)
From: Pradeep Kumar Chitrapu <pradeepc@codeaurora.org>
To: Johannes Berg <johannes@sipsolutions.net>, ath11k@lists.infradead.org
Cc: Pradeep Kumar Chitrapu <pradeepc@codeaurora.org>,
	linux-wireless@vger.kernel.org
Subject: [PATCH v2 1/9] cfg80211: Add new channel flag to identify 6GHz PSC channel
Date: Fri, 22 May 2020 00:24:23 -0700	[thread overview]
Message-ID: <20200522072431.27601-2-pradeepc@codeaurora.org> (raw)
In-Reply-To: <20200522072431.27601-1-pradeepc@codeaurora.org>

6GHz channels are divided into preferred scanning channels(PSC)
and non-PSC channels. One in every four 20MHz channels is a PSC.
Spec mandates to use only PSC channels as primary channels for
setting up BSS on 6GHz only AP.

The set of 20 MHz channels in the 6 GHz band, with channel center
frequency, ch_a = Channel starting frequency – 55 + 80 × n (MHz)
are referred to as preferred scanning channels (PSCs) where,
n = 1, …, 15 as per IEEE P802.11ax/D6.0.

This flag also will be used when making scanning decision on
6GHz channels.

Signed-off-by: Pradeep Kumar Chitrapu <pradeepc@codeaurora.org>
---
 include/net/cfg80211.h |  2 ++
 net/wireless/reg.c     | 19 +++++++++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index fd6a973b1249..ca3e9df7adfe 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -96,6 +96,7 @@ struct wiphy;
  * @IEEE80211_CHAN_NO_10MHZ: 10 MHz bandwidth is not permitted
  *	on this channel.
  * @IEEE80211_CHAN_NO_HE: HE operation is not permitted on this channel.
+ * @IEEE80211_CHAN_PSC: 6GHz Channel is Preferred Scanning Channel(PSC)
  *
  */
 enum ieee80211_channel_flags {
@@ -113,6 +114,7 @@ enum ieee80211_channel_flags {
 	IEEE80211_CHAN_NO_20MHZ		= 1<<11,
 	IEEE80211_CHAN_NO_10MHZ		= 1<<12,
 	IEEE80211_CHAN_NO_HE		= 1<<13,
+	IEEE80211_CHAN_PSC		= 1<<14,
 };
 
 #define IEEE80211_CHAN_NO_HT40 \
diff --git a/net/wireless/reg.c b/net/wireless/reg.c
index 0d74a31ef0ab..4ebaa57e60e4 100644
--- a/net/wireless/reg.c
+++ b/net/wireless/reg.c
@@ -2023,6 +2023,21 @@ static bool is_ht40_allowed(struct ieee80211_channel *chan)
 	return true;
 }
 
+static bool reg_is_6ghz_channel_psc(struct ieee80211_channel *chan)
+{
+	/*
+	 * From IEEE P802.11ax/D6.0: The set of 20 MHz channels in the 6 GHz
+	 * band, with channel center frequency, ch_a = Channel starting
+	 * frequency – 55 + 80 × n (MHz) are referred to as preferred scanning
+	 * channels (PSCs). Channel starting frequency is defined in 27.3.23.2
+	 * (Channel allocation in the 6 GHz band), and n = 1, …, 15.
+	 */
+	if (!(((chan->center_freq - 5940 + 55) >> 4) % 5))
+		return true;
+
+	return false;
+}
+
 static void reg_process_ht_flags_channel(struct wiphy *wiphy,
 					 struct ieee80211_channel *channel)
 {
@@ -2305,6 +2320,10 @@ static void handle_channel_custom(struct wiphy *wiphy,
 	else
 		chan->flags |= map_regdom_flags(reg_rule->flags) | bw_flags;
 
+	if (chan->band == NL80211_BAND_6GHZ &&
+	    reg_is_6ghz_channel_psc(chan))
+		chan->flags |= IEEE80211_CHAN_PSC;
+
 	chan->max_antenna_gain = (int) MBI_TO_DBI(power_rule->max_antenna_gain);
 	chan->max_reg_power = chan->max_power =
 		(int) MBM_TO_DBM(power_rule->max_eirp);
-- 
2.17.1

_______________________________________________
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k

  reply	other threads:[~2020-05-22  7:24 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-22  7:24 [PATCH v2 0/9] add 6GHz radio support in ath11k driver Pradeep Kumar Chitrapu
2020-05-22  7:24 ` Pradeep Kumar Chitrapu
2020-05-22  7:24 ` Pradeep Kumar Chitrapu [this message]
2020-05-22  7:24   ` [PATCH v2 1/9] cfg80211: Add new channel flag to identify 6GHz PSC channel Pradeep Kumar Chitrapu
2020-05-22 20:38   ` Johannes Berg
2020-05-22 20:38     ` Johannes Berg
2020-05-22 23:46     ` Pradeep Kumar Chitrapu
2020-05-22 23:46       ` Pradeep Kumar Chitrapu
2020-05-25  8:57       ` Johannes Berg
2020-05-25  8:57         ` Johannes Berg
2020-05-22  7:24 ` [PATCH v2 2/9] ath11k: add 6G frequency list supported by driver Pradeep Kumar Chitrapu
2020-05-22  7:24   ` Pradeep Kumar Chitrapu
2020-05-22  7:24 ` [PATCH v2 3/9] ath11k: add support for 6GHz radio in driver Pradeep Kumar Chitrapu
2020-05-22  7:24   ` Pradeep Kumar Chitrapu
2020-05-22  7:24 ` [PATCH v2 4/9] ath11k: Use freq instead of channel number in rx path Pradeep Kumar Chitrapu
2020-05-22  7:24   ` Pradeep Kumar Chitrapu
2020-05-22  7:24 ` [PATCH v2 5/9] ath11k: extend peer_assoc_cmd for 6GHz band Pradeep Kumar Chitrapu
2020-05-22  7:24   ` Pradeep Kumar Chitrapu
2020-05-22  7:24 ` [PATCH v2 6/9] ath11k: set psc channel flag when sending channel list to firmware Pradeep Kumar Chitrapu
2020-05-22  7:24   ` Pradeep Kumar Chitrapu
2020-05-22  7:24 ` [PATCH v2 7/9] ath11k: Add 6G scan dwell time parameter in scan request command Pradeep Kumar Chitrapu
2020-05-22  7:24   ` Pradeep Kumar Chitrapu
2020-05-22  7:24 ` [PATCH v2 8/9] ath11k: Send multiple scan_chan_list messages if required Pradeep Kumar Chitrapu
2020-05-22  7:24   ` Pradeep Kumar Chitrapu
2020-05-22  7:24 ` [PATCH v2 9/9] ath11k: Add support for 6g scan hint Pradeep Kumar Chitrapu
2020-05-22  7:24   ` Pradeep Kumar Chitrapu

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=20200522072431.27601-2-pradeepc@codeaurora.org \
    --to=pradeepc@codeaurora.org \
    --cc=ath11k@lists.infradead.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.