diff options
Diffstat (limited to 'package/kernel/mac80211/patches/370-0011-brcmfmac-Fix-p2p-bug-for-older-firmwares.patch')
-rw-r--r-- | package/kernel/mac80211/patches/370-0011-brcmfmac-Fix-p2p-bug-for-older-firmwares.patch | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/370-0011-brcmfmac-Fix-p2p-bug-for-older-firmwares.patch b/package/kernel/mac80211/patches/370-0011-brcmfmac-Fix-p2p-bug-for-older-firmwares.patch new file mode 100644 index 0000000000..e2f24e866b --- /dev/null +++ b/package/kernel/mac80211/patches/370-0011-brcmfmac-Fix-p2p-bug-for-older-firmwares.patch @@ -0,0 +1,35 @@ +From: Hante Meuleman <meuleman@broadcom.com> +Date: Fri, 18 Sep 2015 22:08:14 +0200 +Subject: [PATCH] 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> +--- + +--- 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(s + 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; |