mwifiex: apply radar flag
authorKarthik Ananthapadmanabha <karthida@marvell.com>
Wed, 5 Apr 2017 11:36:20 +0000 (17:06 +0530)
committerKalle Valo <kvalo@codeaurora.org>
Wed, 5 Apr 2017 12:54:52 +0000 (15:54 +0300)
When IEEE80211_CHAN_RADAR is set by cfg80211, passive scan must be
performed. In mwifiex,active scan is performed even though flag is
set from cfg80211. mwifiex_reg_apply_radar_flags() function added
in this patch correctly uses radar flag.

Signed-off-by: Karthik Ananthapadmanabha <karthida@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Ganapathi Bhat <gbhat@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/marvell/mwifiex/cfg80211.c

index 1e3bd435a694534f4a450b32e8b0bd69702e5269..44d06177859e75a680c7f100b4c5de47fae89940 100644 (file)
@@ -594,6 +594,24 @@ int mwifiex_send_domain_info_cmd_fw(struct wiphy *wiphy)
        return 0;
 }
 
+static void mwifiex_reg_apply_radar_flags(struct wiphy *wiphy)
+{
+       struct ieee80211_supported_band *sband;
+       struct ieee80211_channel *chan;
+       unsigned int i;
+
+       if (!wiphy->bands[NL80211_BAND_5GHZ])
+               return;
+       sband = wiphy->bands[NL80211_BAND_5GHZ];
+
+       for (i = 0; i < sband->n_channels; i++) {
+               chan = &sband->channels[i];
+               if ((!(chan->flags & IEEE80211_CHAN_DISABLED)) &&
+                   (chan->flags & IEEE80211_CHAN_RADAR))
+                       chan->flags |= IEEE80211_CHAN_NO_IR;
+       }
+}
+
 /*
  * CFG802.11 regulatory domain callback function.
  *
@@ -613,6 +631,7 @@ static void mwifiex_reg_notifier(struct wiphy *wiphy,
        mwifiex_dbg(adapter, INFO,
                    "info: cfg80211 regulatory domain callback for %c%c\n",
                    request->alpha2[0], request->alpha2[1]);
+       mwifiex_reg_apply_radar_flags(wiphy);
 
        switch (request->initiator) {
        case NL80211_REGDOM_SET_BY_DRIVER: