浏览代码

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>
Luciano Coelho 14 年之前
父节点
当前提交
573c67cf81
共有 1 个文件被更改,包括 8 次插入1 次删除
  1. 8 1
      drivers/net/wireless/wl12xx/main.c

+ 8 - 1
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;