From a60095724c61fad4f047bcec0a704deec822532d Mon Sep 17 00:00:00 2001 From: JasonHuang Date: Fri, 7 Oct 2022 05:01:24 -0500 Subject: [PATCH 117/296] brcmfmac: add interface to set bsscolor for bring-up softAP FMAC need to add interface to mapping enable and set bsscolor using he_bss_color= anycolor(1-63) in hostapd.conf while bring-up SAP. Signed-off-by: JasonHuang --- .../broadcom/brcm80211/brcmfmac/cfg80211.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c index 3a9c4bffc096..27a879aa4a66 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -147,6 +147,8 @@ struct cca_msrmnt_query { #define WL_WSEC_INFO_BSS_BASE 0x0100 #define WL_WSEC_INFO_BSS_ALGOS (WL_WSEC_INFO_BSS_BASE + 6) +#define WL_HE_CMD_BSSCOLOR 5 + static bool check_vif_up(struct brcmf_cfg80211_vif *vif) { if (!test_bit(BRCMF_VIF_STATUS_READY, &vif->sme_state)) { @@ -5658,6 +5660,7 @@ brcmf_cfg80211_start_ap(struct wiphy *wiphy, struct net_device *ndev, bool mbss; int is_11d; bool supports_11d; + struct bcm_xtlv *he_tlv; brcmf_dbg(TRACE, "ctrlchn=%d, center=%d, bw=%d, beacon_interval=%d, dtim_period=%d,\n", settings->chandef.chan->hw_value, @@ -5875,6 +5878,19 @@ brcmf_cfg80211_start_ap(struct wiphy *wiphy, struct net_device *ndev, } else { WARN_ON(1); } + /* Set he_bss_color in hostapd */ + if (settings->beacon.he_bss_color.enabled) { + u8 param[8] = {0}; + + he_tlv = (struct bcm_xtlv *)param; + he_tlv->id = cpu_to_le16(WL_HE_CMD_BSSCOLOR); + he_tlv->len = cpu_to_le16(1); + memcpy(he_tlv->data, &settings->beacon.he_bss_color.color, sizeof(u8)); + err = brcmf_fil_iovar_data_set(ifp, "he", param, sizeof(param)); + + if (err) + brcmf_err("set he bss_color error:%d\n", err); + } brcmf_config_ap_mgmt_ie(ifp->vif, &settings->beacon); set_bit(BRCMF_VIF_STATUS_AP_CREATED, &ifp->vif->sme_state); -- 2.25.1