diff options
Diffstat (limited to 'package/kernel/mac80211/patches/374-0006-brcmfmac-Add-RSDB-support.patch')
-rw-r--r-- | package/kernel/mac80211/patches/374-0006-brcmfmac-Add-RSDB-support.patch | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/374-0006-brcmfmac-Add-RSDB-support.patch b/package/kernel/mac80211/patches/374-0006-brcmfmac-Add-RSDB-support.patch new file mode 100644 index 0000000000..78a95c57b1 --- /dev/null +++ b/package/kernel/mac80211/patches/374-0006-brcmfmac-Add-RSDB-support.patch @@ -0,0 +1,65 @@ +From: Hante Meuleman <meuleman@broadcom.com> +Date: Thu, 29 Oct 2015 20:33:16 +0100 +Subject: [PATCH] brcmfmac: Add RSDB support. + +Broadcom devices with a single 802.11 core can work on two band +concurrently using VSDB feature, ie. Virtual Simultaneous Dual-Band. +For devices that are fitted with two 802.11 cores and RF paths the +driver should support a firmware feature called RSDB, which stands +for Real Simultaneous Dual-Band. RSDB works almost autonomously in +firmware except for AP config. When the device supports RSDB then +the interface should not be brought down when configuring it, +otherwise the link (if configured) on the other interface will be +lost. + +Reviewed-by: Arend Van Spriel <arend@broadcom.com> +Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> +Signed-off-by: Hante Meuleman <meuleman@broadcom.com> +Signed-off-by: Arend van Spriel <arend@broadcom.com> +[kvalo@codeaurora.org: changed the commit log based on discussion] +Signed-off-by: Kalle Valo <kvalo@codeaurora.org> +--- + +--- a/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c ++++ b/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c +@@ -4182,7 +4182,9 @@ brcmf_cfg80211_start_ap(struct wiphy *wi + } + } + +- if (dev_role == NL80211_IFTYPE_AP) { ++ if ((dev_role == NL80211_IFTYPE_AP) && ++ ((ifp->ifidx == 0) || ++ !brcmf_feat_is_enabled(ifp, BRCMF_FEAT_RSDB))) { + err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_DOWN, 1); + if (err < 0) { + brcmf_err("BRCMF_C_DOWN error %d\n", err); +--- a/drivers/net/wireless/brcm80211/brcmfmac/feature.c ++++ b/drivers/net/wireless/brcm80211/brcmfmac/feature.c +@@ -137,6 +137,7 @@ void brcmf_feat_attach(struct brcmf_pub + if (drvr->bus_if->chip != BRCM_CC_43362_CHIP_ID) + brcmf_feat_iovar_int_set(ifp, BRCMF_FEAT_MBSS, "mbss", 0); + brcmf_feat_iovar_int_get(ifp, BRCMF_FEAT_P2P, "p2p"); ++ brcmf_feat_iovar_int_get(ifp, BRCMF_FEAT_RSDB, "rsdb_mode"); + + if (brcmf_feature_disable) { + brcmf_dbg(INFO, "Features: 0x%02x, disable: 0x%02x\n", +--- a/drivers/net/wireless/brcm80211/brcmfmac/feature.h ++++ b/drivers/net/wireless/brcm80211/brcmfmac/feature.h +@@ -24,13 +24,16 @@ + * PNO: preferred network offload. + * WOWL: Wake-On-WLAN. + * P2P: peer-to-peer ++ * RSDB: Real Simultaneous Dual Band + */ + #define BRCMF_FEAT_LIST \ + BRCMF_FEAT_DEF(MBSS) \ + BRCMF_FEAT_DEF(MCHAN) \ + BRCMF_FEAT_DEF(PNO) \ + BRCMF_FEAT_DEF(WOWL) \ +- BRCMF_FEAT_DEF(P2P) ++ BRCMF_FEAT_DEF(P2P) \ ++ BRCMF_FEAT_DEF(RSDB) ++ + /* + * Quirks: + * |