Message ID | 20220929050614.31518-5-ian.lin@infineon.com |
---|---|
State | New |
Headers | show |
Series | brcmfmac: Support multiple station interface series | expand |
On 10/5/2022 9:35 AM, Kalle Valo wrote: > Ian Lin <ian.lin@infineon.com> wrote: > >> From: Ting-Ying Li <tingying.li@cypress.com> >> >> We need to update "chanspec" iovar for each SoftAP creation >> because firmware will update the chanspec to current bsscfg >> for each bss. If we do not update it then the wrong chanspec >> will be shown on the result of 'wl -i [interface] status' >> command. No need to handle channel resource reusing for mbss >> mode by the host driver, it should be covered by firmware. >> >> Signed-off-by: Ting-Ying Li <tingying.li@cypress.com> >> Signed-off-by: Ian Lin <ian.lin@infineon.com> > > The term "SoftAP" is a bit confusing. From an upstream driver point of view > it's just AP mode, right? It is. If I have understood things the term is used for using AP interface on a non-router platform. To me it always has been a vague term. > What's wl? Is that some proprietary tool or what? Yup. Please avoid such references. Same for the term "current bsscfg". I think I will need to take a closer look at this patch. Thanks, Arend
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c index d0aee6c1aa0d..67cb1f568e7e 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -5061,17 +5061,17 @@ brcmf_cfg80211_start_ap(struct wiphy *wiphy, struct net_device *ndev, err); goto exit; } - if (!mbss) { - /* Firmware 10.x requires setting channel after enabling - * AP and before bringing interface up. - */ - err = brcmf_fil_iovar_int_set(ifp, "chanspec", chanspec); - if (err < 0) { - bphy_err(drvr, "Set Channel failed: chspec=%d, %d\n", - chanspec, err); - goto exit; - } + + /* Firmware 10.x requires setting channel after enabling + * AP and before bringing interface up. + */ + err = brcmf_fil_iovar_int_set(ifp, "chanspec", chanspec); + if (err < 0) { + bphy_err(drvr, "Set Channel failed: chspec=%d, %d\n", + chanspec, err); + goto exit; } + err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_UP, 1); if (err < 0) { bphy_err(drvr, "BRCMF_C_UP error (%d)\n", err);