mwifiex: don't follow AP if country code received from EEPROM
authorAmitkumar Karwar <akarwar@marvell.com>
Fri, 4 Dec 2015 14:13:05 +0000 (06:13 -0800)
committerKalle Valo <kvalo@codeaurora.org>
Fri, 11 Dec 2015 11:24:14 +0000 (13:24 +0200)
If device has already received country information from
EEPROM, we won't parse AP's country IE and download it to
firmware. We will also set regulatory flags to disable beacon
hints and ignore country IE.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/marvell/mwifiex/cfg80211.c
drivers/net/wireless/marvell/mwifiex/sta_ioctl.c

index 9b570e14c65a3b06ce0ffcc3821a436bb8627310..65dd85d4fb1437b10ea6c4f9ed787796c485a713 100644 (file)
@@ -3802,6 +3802,10 @@ int mwifiex_register_cfg80211(struct mwifiex_adapter *adapter)
        wiphy->cipher_suites = mwifiex_cipher_suites;
        wiphy->n_cipher_suites = ARRAY_SIZE(mwifiex_cipher_suites);
 
+       if (adapter->region_code)
+               wiphy->regulatory_flags |= REGULATORY_DISABLE_BEACON_HINTS |
+                                          REGULATORY_COUNTRY_IE_IGNORE;
+
        ether_addr_copy(wiphy->perm_addr, adapter->perm_addr);
        wiphy->signal_type = CFG80211_SIGNAL_TYPE_MBM;
        wiphy->flags |= WIPHY_FLAG_HAVE_AP_SME |
index 80f50645b59417e23e23a2882aacd06e3f5cc84f..62b35a31a225f48eb9498648e7b8eebb4fcd832c 100644 (file)
@@ -272,7 +272,8 @@ int mwifiex_bss_start(struct mwifiex_private *priv, struct cfg80211_bss *bss,
        priv->scan_block = false;
 
        if (bss) {
-               mwifiex_process_country_ie(priv, bss);
+               if (adapter->region_code == 0x00)
+                       mwifiex_process_country_ie(priv, bss);
 
                /* Allocate and fill new bss descriptor */
                bss_desc = kzalloc(sizeof(struct mwifiex_bssdescriptor),