brcmfmac: enable DFS_OFFLOAD extended feature if supported
authorArend van Spriel <arend.vanspriel@broadcom.com>
Thu, 11 Jul 2019 08:45:31 +0000 (10:45 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Wed, 24 Jul 2019 11:49:53 +0000 (14:49 +0300)
If the firmware supports 802.11h and the device can operate in 5GHz
band we can enable DFS_OFFLOAD extended feature.

Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
Reviewed-by: Franky Lin <franky.lin@broadcom.com>
Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c
drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.h

index 5168d42..3f72dc1 100644 (file)
@@ -6733,6 +6733,11 @@ static int brcmf_setup_wiphy(struct wiphy *wiphy, struct brcmf_if *ifp)
                }
        }
 
+       if (wiphy->bands[NL80211_BAND_5GHZ] &&
+           brcmf_feat_is_enabled(ifp, BRCMF_FEAT_DOT11H))
+               wiphy_ext_feature_set(wiphy,
+                                     NL80211_EXT_FEATURE_DFS_OFFLOAD);
+
        wiphy_read_of_freq_limits(wiphy);
 
        return 0;
index 73aff4e..2c3526a 100644 (file)
@@ -39,6 +39,7 @@ static const struct brcmf_feat_fwcap brcmf_fwcap_map[] = {
        { BRCMF_FEAT_P2P, "p2p" },
        { BRCMF_FEAT_MONITOR, "monitor" },
        { BRCMF_FEAT_MONITOR_FMT_RADIOTAP, "rtap" },
+       { BRCMF_FEAT_DOT11H, "802.11h" }
 };
 
 #ifdef DEBUG
index f127eb2..736a817 100644 (file)
@@ -25,6 +25,7 @@
  * MONITOR: firmware can pass monitor packets to host.
  * MONITOR_FMT_RADIOTAP: firmware provides monitor packets with radiotap header
  * MONITOR_FMT_HW_RX_HDR: firmware provides monitor packets with hw/ucode header
+ * DOT11H: firmware supports 802.11h
  */
 #define BRCMF_FEAT_LIST \
        BRCMF_FEAT_DEF(MBSS) \
@@ -43,7 +44,8 @@
        BRCMF_FEAT_DEF(FWSUP) \
        BRCMF_FEAT_DEF(MONITOR) \
        BRCMF_FEAT_DEF(MONITOR_FMT_RADIOTAP) \
-       BRCMF_FEAT_DEF(MONITOR_FMT_HW_RX_HDR)
+       BRCMF_FEAT_DEF(MONITOR_FMT_HW_RX_HDR) \
+       BRCMF_FEAT_DEF(DOT11H)
 
 /*
  * Quirks: