diff options
Diffstat (limited to 'package/kernel/mac80211/patches/364-0003-brcmfmac-allow-wowlan-support-to-be-per-device.patch')
-rw-r--r-- | package/kernel/mac80211/patches/364-0003-brcmfmac-allow-wowlan-support-to-be-per-device.patch | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/package/kernel/mac80211/patches/364-0003-brcmfmac-allow-wowlan-support-to-be-per-device.patch b/package/kernel/mac80211/patches/364-0003-brcmfmac-allow-wowlan-support-to-be-per-device.patch deleted file mode 100644 index 79c9c65c2b..0000000000 --- a/package/kernel/mac80211/patches/364-0003-brcmfmac-allow-wowlan-support-to-be-per-device.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 0b57010fc18e12c19d14379cd739d4eb7c3898f3 Mon Sep 17 00:00:00 2001 -From: Arend Van Spriel <arend.vanspriel@broadcom.com> -Date: Fri, 27 Jan 2017 12:27:47 +0000 -Subject: [PATCH] brcmfmac: allow wowlan support to be per device - -The wowlan support is (partially) determined dynamic by checking the -device/firmware capabilities. So they can differ per device. So it -is not possible to use a static global. Instead use the global as a -template and use kmemdup(). When kmemdup() fails the template is used -unmodified. - -Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com> -Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com> -Reviewed-by: Franky Lin <franky.lin@broadcom.com> -Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com> -Signed-off-by: Kalle Valo <kvalo@codeaurora.org> ---- - .../broadcom/brcm80211/brcmfmac/cfg80211.c | 26 ++++++++++++++++------ - 1 file changed, 19 insertions(+), 7 deletions(-) - ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c -@@ -6337,7 +6337,7 @@ static void brcmf_wiphy_pno_params(struc - } - - #ifdef CONFIG_PM --static struct wiphy_wowlan_support brcmf_wowlan_support = { -+static const struct wiphy_wowlan_support brcmf_wowlan_support = { - .flags = WIPHY_WOWLAN_MAGIC_PKT | WIPHY_WOWLAN_DISCONNECT, - .n_patterns = BRCMF_WOWL_MAXPATTERNS, - .pattern_max_len = BRCMF_WOWL_MAXPATTERNSIZE, -@@ -6350,21 +6350,29 @@ static void brcmf_wiphy_wowl_params(stru - { - #ifdef CONFIG_PM - struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy); -+ struct wiphy_wowlan_support *wowl; -+ -+ wowl = kmemdup(&brcmf_wowlan_support, sizeof(brcmf_wowlan_support), -+ GFP_KERNEL); -+ if (!wowl) { -+ brcmf_err("only support basic wowlan features\n"); -+ wiphy->wowlan = &brcmf_wowlan_support; -+ return; -+ } - - if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_PNO)) { - if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_WOWL_ND)) { -- brcmf_wowlan_support.flags |= WIPHY_WOWLAN_NET_DETECT; -- brcmf_wowlan_support.max_nd_match_sets = -- BRCMF_PNO_MAX_PFN_COUNT; -+ wowl->flags |= WIPHY_WOWLAN_NET_DETECT; -+ wowl->max_nd_match_sets = BRCMF_PNO_MAX_PFN_COUNT; - init_waitqueue_head(&cfg->wowl.nd_data_wait); - } - } - if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_WOWL_GTK)) { -- brcmf_wowlan_support.flags |= WIPHY_WOWLAN_SUPPORTS_GTK_REKEY; -- brcmf_wowlan_support.flags |= WIPHY_WOWLAN_GTK_REKEY_FAILURE; -+ wowl->flags |= WIPHY_WOWLAN_SUPPORTS_GTK_REKEY; -+ wowl->flags |= WIPHY_WOWLAN_GTK_REKEY_FAILURE; - } - -- wiphy->wowlan = &brcmf_wowlan_support; -+ wiphy->wowlan = wowl; - #endif - } - -@@ -6745,6 +6753,10 @@ static void brcmf_free_wiphy(struct wiph - kfree(wiphy->bands[NL80211_BAND_5GHZ]->channels); - kfree(wiphy->bands[NL80211_BAND_5GHZ]); - } -+#if IS_ENABLED(CONFIG_PM) -+ if (wiphy->wowlan != &brcmf_wowlan_support) -+ kfree(wiphy->wowlan); -+#endif - wiphy_free(wiphy); - } - |