mac80211: brcmfmac: backport some old patches from 2016
[openwrt/staging/lynxis/omap.git] / package / kernel / mac80211 / patches / 356-0004-brcmfmac-update-beacon-IE-after-bss-up-and-clear-whe.patch
1 From f25ba69c638b24097840a96bd3caf5599f9a3616 Mon Sep 17 00:00:00 2001
2 From: Wright Feng <wefe@cypress.com>
3 Date: Fri, 18 Nov 2016 09:59:52 +0800
4 Subject: [PATCH] brcmfmac: update beacon IE after bss up and clear when AP
5 stopped
6
7 Firmware doesn't update beacon/Probe Response vendor IEs correctly when
8 bss is down, so we move brcmf_config_ap_mgmt_ie after BSS up. And host
9 driver should clear IEs when AP stopped so that the IEs in host side will
10 be synced with in firmware side.
11
12 Signed-off-by: Wright Feng <wright.feng@cypress.com>
13 Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
14 ---
15 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 5 +++--
16 1 file changed, 3 insertions(+), 2 deletions(-)
17
18 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
19 +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
20 @@ -4578,8 +4578,6 @@ brcmf_cfg80211_start_ap(struct wiphy *wi
21 brcmf_configure_opensecurity(ifp);
22 }
23
24 - brcmf_config_ap_mgmt_ie(ifp->vif, &settings->beacon);
25 -
26 /* Parameters shared by all radio interfaces */
27 if (!mbss) {
28 if ((supports_11d) && (is_11d != ifp->vif->is_11d)) {
29 @@ -4708,6 +4706,7 @@ brcmf_cfg80211_start_ap(struct wiphy *wi
30 WARN_ON(1);
31 }
32
33 + brcmf_config_ap_mgmt_ie(ifp->vif, &settings->beacon);
34 set_bit(BRCMF_VIF_STATUS_AP_CREATED, &ifp->vif->sme_state);
35 brcmf_net_setcarrier(ifp, true);
36
37 @@ -4764,6 +4763,8 @@ static int brcmf_cfg80211_stop_ap(struct
38 err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_UP, 1);
39 if (err < 0)
40 brcmf_err("BRCMF_C_UP error %d\n", err);
41 +
42 + brcmf_vif_clear_mgmt_ies(ifp->vif);
43 } else {
44 bss_enable.bsscfgidx = cpu_to_le32(ifp->bsscfgidx);
45 bss_enable.enable = cpu_to_le32(0);