summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLuciano Coelho2010-11-26 12:44:59 +0100
committerLuciano Coelho2010-11-26 14:09:15 +0100
commit573c67cf819d52d2e12adf75a9a8cfbd216190a3 (patch)
treeac7f321f43d6c7965349f5479d44dd7b7cc3fb96 /drivers
parentwl12xx: Fix kernel crash related to hw recovery and interface shutdown (diff)
downloadkernel-qcow2-linux-573c67cf819d52d2e12adf75a9a8cfbd216190a3.tar.gz
kernel-qcow2-linux-573c67cf819d52d2e12adf75a9a8cfbd216190a3.tar.xz
kernel-qcow2-linux-573c67cf819d52d2e12adf75a9a8cfbd216190a3.zip
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>
Diffstat (limited to 'drivers')
-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:
}
static int wl1271_reg_notify(struct wiphy *wiphy,
- struct regulatory_request *request) {
+ struct regulatory_request *request)
+{
+ struct wl1271 *wl = wiphy_to_ieee80211_hw(wiphy)->priv;
struct ieee80211_supported_band *band;
struct ieee80211_channel *ch;
int i;
@@ -347,6 +349,11 @@ static int wl1271_reg_notify(struct wiphy *wiphy,
if (ch->flags & IEEE80211_CHAN_DISABLED)
continue;
+ if (!wl->enable_11a) {
+ ch->flags |= IEEE80211_CHAN_DISABLED;
+ continue;
+ }
+
if (ch->flags & IEEE80211_CHAN_RADAR)
ch->flags |= IEEE80211_CHAN_NO_IBSS |
IEEE80211_CHAN_PASSIVE_SCAN;