From d2dc5092764d32155c95b8358903d1a88de47231 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 30 Oct 2015 15:17:56 +0000 Subject: mac80211: update to wireless-testing 2015-10-26 Signed-off-by: Felix Fietkau git-svn-id: svn://svn.openwrt.org/openwrt/trunk@47286 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- ...rrect-detection-of-p2pdev-interface-event.patch | 105 --------------------- 1 file changed, 105 deletions(-) delete mode 100644 package/kernel/mac80211/patches/323-brcmfmac-correct-detection-of-p2pdev-interface-event.patch (limited to 'package/kernel/mac80211/patches/323-brcmfmac-correct-detection-of-p2pdev-interface-event.patch') diff --git a/package/kernel/mac80211/patches/323-brcmfmac-correct-detection-of-p2pdev-interface-event.patch b/package/kernel/mac80211/patches/323-brcmfmac-correct-detection-of-p2pdev-interface-event.patch deleted file mode 100644 index 868b0a82e6..0000000000 --- a/package/kernel/mac80211/patches/323-brcmfmac-correct-detection-of-p2pdev-interface-event.patch +++ /dev/null @@ -1,105 +0,0 @@ -From: Arend van Spriel -Date: Wed, 26 Aug 2015 22:14:57 +0200 -Subject: [PATCH] brcmfmac: correct detection of p2pdev interface event - -The p2pdev interface is setup in firmware resulting in a interface -event. This event has role and no-if flag. When role is p2p client -and no-if flag is set it indicates that this is the p2pdev interface. -This info is used in handling the event and adding interface in the -driver. - -Reviewed-by: Hante Meuleman -Reviewed-by: Franky (Zhenhui) Lin -Reviewed-by: Pieter-Paul Giesberts -Signed-off-by: Arend van Spriel ---- - ---- a/drivers/net/wireless/brcm80211/brcmfmac/core.c -+++ b/drivers/net/wireless/brcm80211/brcmfmac/core.c -@@ -795,7 +795,7 @@ fail: - } - - struct brcmf_if *brcmf_add_if(struct brcmf_pub *drvr, s32 bssidx, s32 ifidx, -- char *name, u8 *mac_addr) -+ bool is_p2pdev, char *name, u8 *mac_addr) - { - struct brcmf_if *ifp; - struct net_device *ndev; -@@ -821,7 +821,7 @@ struct brcmf_if *brcmf_add_if(struct brc - } - } - -- if (!brcmf_p2p_enable && bssidx == 1) { -+ if (!brcmf_p2p_enable && is_p2pdev) { - /* this is P2P_DEVICE interface */ - brcmf_dbg(INFO, "allocate non-netdev interface\n"); - ifp = kzalloc(sizeof(*ifp), GFP_KERNEL); -@@ -999,12 +999,12 @@ int brcmf_bus_start(struct device *dev) - brcmf_dbg(TRACE, "\n"); - - /* add primary networking interface */ -- ifp = brcmf_add_if(drvr, 0, 0, "wlan%d", NULL); -+ ifp = brcmf_add_if(drvr, 0, 0, false, "wlan%d", NULL); - if (IS_ERR(ifp)) - return PTR_ERR(ifp); - - if (brcmf_p2p_enable) -- p2p_ifp = brcmf_add_if(drvr, 1, 0, "p2p%d", NULL); -+ p2p_ifp = brcmf_add_if(drvr, 1, 0, false, "p2p%d", NULL); - else - p2p_ifp = NULL; - if (IS_ERR(p2p_ifp)) ---- a/drivers/net/wireless/brcm80211/brcmfmac/core.h -+++ b/drivers/net/wireless/brcm80211/brcmfmac/core.h -@@ -205,7 +205,7 @@ char *brcmf_ifname(struct brcmf_pub *drv - struct brcmf_if *brcmf_get_ifp(struct brcmf_pub *drvr, int ifidx); - int brcmf_net_attach(struct brcmf_if *ifp, bool rtnl_locked); - struct brcmf_if *brcmf_add_if(struct brcmf_pub *drvr, s32 bssidx, s32 ifidx, -- char *name, u8 *mac_addr); -+ bool is_p2pdev, char *name, u8 *mac_addr); - void brcmf_remove_interface(struct brcmf_if *ifp); - int brcmf_get_next_free_bsscfgidx(struct brcmf_pub *drvr); - void brcmf_txflowblock_if(struct brcmf_if *ifp, ---- a/drivers/net/wireless/brcm80211/brcmfmac/fweh.c -+++ b/drivers/net/wireless/brcm80211/brcmfmac/fweh.c -@@ -179,6 +179,7 @@ static void brcmf_fweh_handle_if_event(s - { - struct brcmf_if_event *ifevent = data; - struct brcmf_if *ifp; -+ bool is_p2pdev; - int err = 0; - - brcmf_dbg(EVENT, "action: %u idx: %u bsscfg: %u flags: %u role: %u\n", -@@ -186,18 +187,16 @@ static void brcmf_fweh_handle_if_event(s - ifevent->flags, ifevent->role); - - /* The P2P Device interface event must not be ignored -- * contrary to what firmware tells us. The only way to -- * distinguish the P2P Device is by looking at the ifidx -- * and bssidx received. -+ * contrary to what firmware tells us. - */ -- if (!(ifevent->ifidx == 0 && ifevent->bssidx == 1) && -- (ifevent->flags & BRCMF_E_IF_FLAG_NOIF)) { -+ is_p2pdev = (ifevent->flags & BRCMF_E_IF_FLAG_NOIF) && -+ ifevent->role == BRCMF_E_IF_ROLE_P2P_CLIENT; -+ if (!is_p2pdev && (ifevent->flags & BRCMF_E_IF_FLAG_NOIF)) { - brcmf_dbg(EVENT, "event can be ignored\n"); - return; - } - if (ifevent->ifidx >= BRCMF_MAX_IFS) { -- brcmf_err("invalid interface index: %u\n", -- ifevent->ifidx); -+ brcmf_err("invalid interface index: %u\n", ifevent->ifidx); - return; - } - -@@ -207,7 +206,7 @@ static void brcmf_fweh_handle_if_event(s - brcmf_dbg(EVENT, "adding %s (%pM)\n", emsg->ifname, - emsg->addr); - ifp = brcmf_add_if(drvr, ifevent->bssidx, ifevent->ifidx, -- emsg->ifname, emsg->addr); -+ is_p2pdev, emsg->ifname, emsg->addr); - if (IS_ERR(ifp)) - return; - brcmf_fws_add_interface(ifp); -- cgit v1.2.3