From: Michal Sojka <sojkam1@fel.cvut.cz>
To: linux-wireless@vger.kernel.org
Cc: bernd.lehmann@volkswagen.de, s.sander@nordsys.de,
wireless-regdb@lists.infradead.org, ath9k-devel@lists.ath9k.org,
ath9k-devel@qca.qualcomm.com,
"Jan Kaisrlík" <kaisrja1@fel.cvut.cz>,
"Michal Sojka" <sojkam1@fel.cvut.cz>
Subject: [PATCH v2 8/8] ath9k: Add support for ITS-G5 band (5.9 GHz)
Date: Mon, 23 Nov 2015 19:27:21 +0100 [thread overview]
Message-ID: <1448303241-27747-9-git-send-email-sojkam1@fel.cvut.cz> (raw)
In-Reply-To: <1448303241-27747-1-git-send-email-sojkam1@fel.cvut.cz>
The patch adds support for Intelligent Transportation System (ITS-G5)
band to the ath9k driver. The corresponding channels are allowed only if
CONFIG_CFG80211_REG_ITSG5_BAND is set and if the user provides custom
regulatory database. In addition, the band is limited to OCB mode.
Signed-off-by: Michal Sojka <sojkam1@fel.cvut.cz>
---
drivers/net/wireless/ath/ath9k/common-init.c | 19 +++++++++++++++++++
drivers/net/wireless/ath/ath9k/hw.h | 2 +-
drivers/net/wireless/ath/regd.c | 23 ++++++++++++++++++-----
3 files changed, 38 insertions(+), 6 deletions(-)
diff --git a/drivers/net/wireless/ath/ath9k/common-init.c b/drivers/net/wireless/ath/ath9k/common-init.c
index a006c14..0b61c63 100644
--- a/drivers/net/wireless/ath/ath9k/common-init.c
+++ b/drivers/net/wireless/ath/ath9k/common-init.c
@@ -86,6 +86,25 @@ static const struct ieee80211_channel ath9k_5ghz_chantable[] = {
CHAN5G(5785, 35), /* Channel 157 */
CHAN5G(5805, 36), /* Channel 161 */
CHAN5G(5825, 37), /* Channel 165 */
+
+ /* ITS-G5B */
+ CHAN5G(5855, 38), /* Channel 171 */
+ CHAN5G(5860, 39), /* Channel 172 */
+ CHAN5G(5865, 40), /* Channel 173 */
+ CHAN5G(5870, 41), /* Channel 174 */
+ /* ITS-G5A */
+ CHAN5G(5875, 42), /* Channel 175 */
+ CHAN5G(5880, 43), /* Channel 176 */
+ CHAN5G(5885, 44), /* Channel 177 */
+ CHAN5G(5890, 45), /* Channel 178 */
+ CHAN5G(5895, 46), /* Channel 179 */
+ CHAN5G(5900, 47), /* Channel 180 */
+ CHAN5G(5905, 48), /* Channel 181 */
+ /* ITS-G5D */
+ CHAN5G(5910, 49), /* Channel 182 */
+ CHAN5G(5915, 50), /* Channel 183 */
+ CHAN5G(5920, 51), /* Channel 184 */
+ CHAN5G(5925, 52), /* Channel 185 */
};
/* Atheros hardware rate code addition for short premble */
diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
index 831a544..cb126ff 100644
--- a/drivers/net/wireless/ath/ath9k/hw.h
+++ b/drivers/net/wireless/ath/ath9k/hw.h
@@ -73,7 +73,7 @@
#define ATH9K_RSSI_BAD -128
-#define ATH9K_NUM_CHANNELS 38
+#define ATH9K_NUM_CHANNELS 53
/* Register read/write primitives */
#define REG_WRITE(_ah, _reg, _val) \
diff --git a/drivers/net/wireless/ath/regd.c b/drivers/net/wireless/ath/regd.c
index 06ea6cc..38706ff 100644
--- a/drivers/net/wireless/ath/regd.c
+++ b/drivers/net/wireless/ath/regd.c
@@ -50,6 +50,14 @@ static int __ath_regd_init(struct ath_regulatory *reg);
#define ATH9K_5GHZ_5725_5850 REG_RULE(5725-10, 5850+10, 80, 0, 30,\
NL80211_RRF_NO_IR)
+#ifdef CONFIG_CFG80211_REG_ITSG5_BAND
+#define ATH9K_5GHZ_ITSG5 REG_RULE(5850, 5925, 10, 0, 33, \
+ NL80211_RRF_USER_REGD_NEEDED | \
+ NL80211_RRF_OCB_ONLY)
+#else
+#define ATH9K_5GHZ_ITSG5 {} /* Empty rule does not match any channel */
+#endif
+
#define ATH9K_2GHZ_ALL ATH9K_2GHZ_CH01_11, \
ATH9K_2GHZ_CH12_13, \
ATH9K_2GHZ_CH14
@@ -64,53 +72,58 @@ static int __ath_regd_init(struct ath_regulatory *reg);
/* Can be used for:
* 0x60, 0x61, 0x62 */
static const struct ieee80211_regdomain ath_world_regdom_60_61_62 = {
- .n_reg_rules = 5,
+ .n_reg_rules = 6,
.alpha2 = "99",
.reg_rules = {
ATH9K_2GHZ_ALL,
ATH9K_5GHZ_ALL,
+ ATH9K_5GHZ_ITSG5,
}
};
/* Can be used by 0x63 and 0x65 */
static const struct ieee80211_regdomain ath_world_regdom_63_65 = {
- .n_reg_rules = 4,
+ .n_reg_rules = 5,
.alpha2 = "99",
.reg_rules = {
ATH9K_2GHZ_CH01_11,
ATH9K_2GHZ_CH12_13,
ATH9K_5GHZ_NO_MIDBAND,
+ ATH9K_5GHZ_ITSG5,
}
};
/* Can be used by 0x64 only */
static const struct ieee80211_regdomain ath_world_regdom_64 = {
- .n_reg_rules = 3,
+ .n_reg_rules = 4,
.alpha2 = "99",
.reg_rules = {
ATH9K_2GHZ_CH01_11,
ATH9K_5GHZ_NO_MIDBAND,
+ ATH9K_5GHZ_ITSG5,
}
};
/* Can be used by 0x66 and 0x69 */
static const struct ieee80211_regdomain ath_world_regdom_66_69 = {
- .n_reg_rules = 3,
+ .n_reg_rules = 4,
.alpha2 = "99",
.reg_rules = {
ATH9K_2GHZ_CH01_11,
ATH9K_5GHZ_ALL,
+ ATH9K_5GHZ_ITSG5,
}
};
/* Can be used by 0x67, 0x68, 0x6A and 0x6C */
static const struct ieee80211_regdomain ath_world_regdom_67_68_6A_6C = {
- .n_reg_rules = 4,
+ .n_reg_rules = 5,
.alpha2 = "99",
.reg_rules = {
ATH9K_2GHZ_CH01_11,
ATH9K_2GHZ_CH12_13,
ATH9K_5GHZ_ALL,
+ ATH9K_5GHZ_ITSG5,
}
};
--
2.5.3
prev parent reply other threads:[~2015-11-23 18:27 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-23 18:27 [PATCH v2 0/8] Regulatory and ath9k support for ITS-G5 band (5.9 GHz) Michal Sojka
2015-11-23 18:27 ` [PATCH v2 1/8] cfg80211: reg: Remove unused function parameter Michal Sojka
2015-11-23 18:27 ` [PATCH v2 2/8] cfg80211: Remove unused cfg80211_can_use_iftype_chan() Michal Sojka
2015-11-26 16:46 ` Johannes Berg
2015-11-23 18:27 ` [PATCH v2 3/8] cfg80211: reg: Refactor calculation of bandwidth flags Michal Sojka
2015-11-26 17:48 ` Johannes Berg
2015-11-23 18:27 ` [PATCH v2 4/8] cfg80211: reg: Properly handle rules for 5 and 10 MHz channels Michal Sojka
2015-11-26 17:51 ` Johannes Berg
2015-11-30 9:56 ` Jouni Malinen
2015-11-30 10:30 ` Johannes Berg
2015-11-23 18:27 ` [PATCH v2 5/8] cfg80211: Add support for OCB-only channels Michal Sojka
2015-11-27 8:33 ` Johannes Berg
2015-11-27 8:59 ` Michal Sojka
2015-11-23 18:27 ` [PATCH v2 6/8] cfg80211: reg: Add NL80211_RRF_USER_REGD_NEEDED flag Michal Sojka
2015-11-27 8:35 ` Johannes Berg
2015-11-27 9:43 ` Michal Sojka
2015-11-27 9:52 ` Johannes Berg
2015-11-23 18:27 ` [PATCH v2 7/8] cfg80211: Add Kconfig option for ITS-G5 band (5.9 GHz) Michal Sojka
2015-11-26 17:55 ` Johannes Berg
2015-11-26 21:10 ` Michal Sojka
2015-11-27 8:25 ` Johannes Berg
2015-11-27 8:44 ` Michal Sojka
2015-11-23 18:27 ` Michal Sojka [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=1448303241-27747-9-git-send-email-sojkam1@fel.cvut.cz \
--to=sojkam1@fel.cvut.cz \
--cc=ath9k-devel@lists.ath9k.org \
--cc=ath9k-devel@qca.qualcomm.com \
--cc=bernd.lehmann@volkswagen.de \
--cc=kaisrja1@fel.cvut.cz \
--cc=linux-wireless@vger.kernel.org \
--cc=s.sander@nordsys.de \
--cc=wireless-regdb@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).