aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHante Meuleman <[email protected]>2015-09-18 22:08:14 +0200
committerKalle Valo <[email protected]>2015-09-29 10:55:59 +0300
commit35a3cbcc49b5422fbfe7d655952888a3d29b45ed (patch)
tree21b53da7e9eabe418c00b5fef778c84140eda0bc
parentd1bb34c128f59c30b75b96ef60f5f00cdbe9ca0e (diff)
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 <[email protected]> Reviewed-by: Pieter-Paul Giesberts <[email protected]> Signed-off-by: Hante Meuleman <[email protected]> Signed-off-by: Arend van Spriel <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
-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;