aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuciano Coelho <luciano.coelho@nokia.com>2010-11-26 06:44:59 -0500
committerLuciano Coelho <luciano.coelho@nokia.com>2010-11-26 08:09:15 -0500
commit573c67cf819d52d2e12adf75a9a8cfbd216190a3 (patch)
treeac7f321f43d6c7965349f5479d44dd7b7cc3fb96
parent6735329934e9acc1941a991ed6f6ad4be3e082a5 (diff)
wl12xx: disable 11a channels when regulatory changes if 11a is not supported
Instead of simply not scanning for the 11a channels when not supported by the hardware, disable the channels in reg_notify. This centralizes the decision on whether to scan 5GHz channel in one place and allows userspace to know exactly which channels are in use. Based on Juuso Oikarinen's idea. Cc: Juuso Oikarinen <juuso.oikarinen@nokia.com> Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com> Reviewed-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
-rw-r--r--drivers/net/wireless/wl12xx/main.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c
index 35cfcf675795..97eb186b5a8a 100644
--- a/drivers/net/wireless/wl12xx/main.c
+++ b/drivers/net/wireless/wl12xx/main.c
@@ -336,7 +336,9 @@ out:
336} 336}
337 337
338static int wl1271_reg_notify(struct wiphy *wiphy, 338static int wl1271_reg_notify(struct wiphy *wiphy,
339 struct regulatory_request *request) { 339 struct regulatory_request *request)
340{
341 struct wl1271 *wl = wiphy_to_ieee80211_hw(wiphy)->priv;
340 struct ieee80211_supported_band *band; 342 struct ieee80211_supported_band *band;
341 struct ieee80211_channel *ch; 343 struct ieee80211_channel *ch;
342 int i; 344 int i;
@@ -347,6 +349,11 @@ static int wl1271_reg_notify(struct wiphy *wiphy,
347 if (ch->flags & IEEE80211_CHAN_DISABLED) 349 if (ch->flags & IEEE80211_CHAN_DISABLED)
348 continue; 350 continue;
349 351
352 if (!wl->enable_11a) {
353 ch->flags |= IEEE80211_CHAN_DISABLED;
354 continue;
355 }
356
350 if (ch->flags & IEEE80211_CHAN_RADAR) 357 if (ch->flags & IEEE80211_CHAN_RADAR)
351 ch->flags |= IEEE80211_CHAN_NO_IBSS | 358 ch->flags |= IEEE80211_CHAN_NO_IBSS |
352 IEEE80211_CHAN_PASSIVE_SCAN; 359 IEEE80211_CHAN_PASSIVE_SCAN;