From: Hante Meuleman <[email protected]>

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]>
---
 drivers/net/wireless/brcm80211/brcmfmac/fweh.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/brcm80211/brcmfmac/fweh.c 
b/drivers/net/wireless/brcm80211/brcmfmac/fweh.c
index 3330f30..dc34d3a 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;
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to