From: Karthik Ananthapadmanabha <karth...@marvell.com>

Driver will advertise RANDOM_MAC support only if the device
supports this feature.

Signed-off-by: Karthik Ananthapadmanabha <karth...@marvell.com>
Signed-off-by: Ganapathi Bhat <gb...@marvell.com>
---
 drivers/net/wireless/marvell/mwifiex/cfg80211.c | 10 ++++++----
 drivers/net/wireless/marvell/mwifiex/fw.h       |  1 +
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c 
b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
index 32c5074..f22f7b8 100644
--- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c
+++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
@@ -4306,10 +4306,12 @@ int mwifiex_register_cfg80211(struct mwifiex_adapter 
*adapter)
        wiphy->features |= NL80211_FEATURE_HT_IBSS |
                           NL80211_FEATURE_INACTIVITY_TIMER |
                           NL80211_FEATURE_LOW_PRIORITY_SCAN |
-                          NL80211_FEATURE_NEED_OBSS_SCAN |
-                          NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR |
-                          NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR |
-                          NL80211_FEATURE_ND_RANDOM_MAC_ADDR;
+                          NL80211_FEATURE_NEED_OBSS_SCAN;
+
+       if (ISSUPP_RANDOM_MAC(adapter->fw_cap_info))
+               wiphy->features |= NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR |
+                                  NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR |
+                                  NL80211_FEATURE_ND_RANDOM_MAC_ADDR;
 
        if (ISSUPP_TDLS_ENABLED(adapter->fw_cap_info))
                wiphy->features |= NL80211_FEATURE_TDLS_CHANNEL_SWITCH;
diff --git a/drivers/net/wireless/marvell/mwifiex/fw.h 
b/drivers/net/wireless/marvell/mwifiex/fw.h
index 9e75522..6b765f3 100644
--- a/drivers/net/wireless/marvell/mwifiex/fw.h
+++ b/drivers/net/wireless/marvell/mwifiex/fw.h
@@ -238,6 +238,7 @@ enum MWIFIEX_802_11_PRIVACY_FILTER {
 #define ISSUPP_DRCS_ENABLED(FwCapInfo) (FwCapInfo & BIT(15))
 #define ISSUPP_SDIO_SPA_ENABLED(FwCapInfo) (FwCapInfo & BIT(16))
 #define ISSUPP_ADHOC_ENABLED(FwCapInfo) (FwCapInfo & BIT(25))
+#define ISSUPP_RANDOM_MAC(FwCapInfo) (FwCapInfo & BIT(27))
 
 #define MWIFIEX_DEF_HT_CAP     (IEEE80211_HT_CAP_DSSSCCK40 | \
                                 (1 << IEEE80211_HT_CAP_RX_STBC_SHIFT) | \
-- 
1.9.1

Reply via email to