summaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2017-11-05 22:32:51 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2017-11-05 22:32:51 -0800
commit2dedf765470f7777c5364737b2767865d041b9dd (patch)
treeb5d2597e86231d332b3f41d481bfdff3d88275f2 /drivers/net
parent99b30615eb4ea3750ad50e1b9448e551d5a37598 (diff)
parentb85f32555a123e7b0d193bacab148bcad267d70f (diff)
Merge "ath: Disable non-20 mhz 2G world regulatory channels"
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/ath/regd.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/regd.c b/drivers/net/wireless/ath/regd.c
index 096818610d40..213569d384e7 100644
--- a/drivers/net/wireless/ath/regd.c
+++ b/drivers/net/wireless/ath/regd.c
@@ -631,6 +631,8 @@ ath_regd_init_wiphy(struct ath_regulatory *reg,
struct regulatory_request *request))
{
const struct ieee80211_regdomain *regd;
+ u32 chan_num;
+ struct ieee80211_channel *chan;
wiphy->reg_notifier = reg_notifier;
wiphy->regulatory_flags |= REGULATORY_STRICT_REG |
@@ -653,6 +655,20 @@ ath_regd_init_wiphy(struct ath_regulatory *reg,
}
wiphy_apply_custom_regulatory(wiphy, regd);
+
+ /* For regulatory rules similar to the following:
+ * REG_RULE(2412-10, 2462+10, 40, 0, 20, 0), channels 12/13 are enabled
+ * due to support of 5/10 MHz.
+ * Therefore, disable 2.4 Ghz channels that dont have 20 mhz bw
+ */
+ for (chan_num = 0;
+ chan_num < wiphy->bands[IEEE80211_BAND_2GHZ]->n_channels;
+ chan_num++) {
+ chan = &wiphy->bands[IEEE80211_BAND_2GHZ]->channels[chan_num];
+ if (chan->flags & IEEE80211_CHAN_NO_20MHZ)
+ chan->flags |= IEEE80211_CHAN_DISABLED;
+ }
+
ath_reg_apply_radar_flags(wiphy);
ath_reg_apply_world_flags(wiphy, NL80211_REGDOM_SET_BY_DRIVER, reg);
return 0;