summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/brcm80211/brcmfmac
diff options
context:
space:
mode:
authorHante Meuleman <meuleman@broadcom.com>2015-09-18 23:08:14 +0300
committerKalle Valo <kvalo@codeaurora.org>2015-09-29 10:55:59 +0300
commit35a3cbcc49b5422fbfe7d655952888a3d29b45ed (patch)
tree21b53da7e9eabe418c00b5fef778c84140eda0bc /drivers/net/wireless/brcm80211/brcmfmac
parentd1bb34c128f59c30b75b96ef60f5f00cdbe9ca0e (diff)
downloadlinux-35a3cbcc49b5422fbfe7d655952888a3d29b45ed.tar.xz
brcmfmac: Fix p2p bug for older firmwares.
Some devices with older firmwares are reporting new p2p device interface with the wrong type. Accept this type to get p2p working for these devices. 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> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/brcm80211/brcmfmac')
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/fweh.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/fweh.c b/drivers/net/wireless/brcm80211/brcmfmac/fweh.c
index 3330f30be8ef..dc34d3a69b27 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/fweh.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/fweh.c
@@ -186,11 +186,13 @@ static void brcmf_fweh_handle_if_event(struct brcmf_pub *drvr,
ifevent->action, ifevent->ifidx, ifevent->bssidx,
ifevent->flags, ifevent->role);
- /* The P2P Device interface event must not be ignored
- * contrary to what firmware tells us.
+ /* The P2P Device interface event must not be ignored contrary to what
+ * firmware tells us. Older firmware uses p2p noif, with sta role.
+ * This should be accepted.
*/
- is_p2pdev = (ifevent->flags & BRCMF_E_IF_FLAG_NOIF) &&
- ifevent->role == BRCMF_E_IF_ROLE_P2P_CLIENT;
+ is_p2pdev = ((ifevent->flags & BRCMF_E_IF_FLAG_NOIF) &&
+ (ifevent->role == BRCMF_E_IF_ROLE_P2P_CLIENT ||
+ ifevent->role == BRCMF_E_IF_ROLE_STA));
if (!is_p2pdev && (ifevent->flags & BRCMF_E_IF_FLAG_NOIF)) {
brcmf_dbg(EVENT, "event can be ignored\n");
return;