aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/917-wlcore-enable-beacon-filtering-only-after-receiving-a-beacon.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/kernel/mac80211/patches/917-wlcore-enable-beacon-filtering-only-after-receiving-a-beacon.patch')
-rw-r--r--package/kernel/mac80211/patches/917-wlcore-enable-beacon-filtering-only-after-receiving-a-beacon.patch71
1 files changed, 0 insertions, 71 deletions
diff --git a/package/kernel/mac80211/patches/917-wlcore-enable-beacon-filtering-only-after-receiving-a-beacon.patch b/package/kernel/mac80211/patches/917-wlcore-enable-beacon-filtering-only-after-receiving-a-beacon.patch
deleted file mode 100644
index 5dbad9494e..0000000000
--- a/package/kernel/mac80211/patches/917-wlcore-enable-beacon-filtering-only-after-receiving-a-beacon.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-Enabling beacon filtering before receving a beacon
-might result in not having a beacon at all for the
-current connected AP, which prevents the station
-from entering power-save.
-
-Replace the current approach (of starting beacon
-filtering on init) and configure beacon filering
-only after bss_conf->dtimper is set (which means
-mac80211 already parsed a beacon).
-
-Signed-off-by: Eliad Peller <eliad@wizery.com>
-
----
-drivers/net/wireless/ti/wlcore/acx.c | 3 ++-
- drivers/net/wireless/ti/wlcore/init.c | 4 ++--
- drivers/net/wireless/ti/wlcore/main.c | 12 ++++++++++++
- 3 files changed, 16 insertions(+), 3 deletions(-)
-
---- a/drivers/net/wireless/ti/wlcore/acx.c
-+++ b/drivers/net/wireless/ti/wlcore/acx.c
-@@ -358,7 +358,8 @@ int wl1271_acx_beacon_filter_opt(struct
- struct acx_beacon_filter_option *beacon_filter = NULL;
- int ret = 0;
-
-- wl1271_debug(DEBUG_ACX, "acx beacon filter opt");
-+ wl1271_debug(DEBUG_ACX, "acx beacon filter opt enable=%d",
-+ enable_filter);
-
- if (enable_filter &&
- wl->conf.conn.bcn_filt_mode == CONF_BCN_FILT_MODE_DISABLED)
---- a/drivers/net/wireless/ti/wlcore/init.c
-+++ b/drivers/net/wireless/ti/wlcore/init.c
-@@ -287,8 +287,8 @@ static int wl1271_init_sta_beacon_filter
- if (ret < 0)
- return ret;
-
-- /* enable beacon filtering */
-- ret = wl1271_acx_beacon_filter_opt(wl, wlvif, true);
-+ /* disable beacon filtering until we get the first beacon */
-+ ret = wl1271_acx_beacon_filter_opt(wl, wlvif, false);
- if (ret < 0)
- return ret;
-
---- a/drivers/net/wireless/ti/wlcore/main.c
-+++ b/drivers/net/wireless/ti/wlcore/main.c
-@@ -2941,6 +2941,11 @@ static int wlcore_unset_assoc(struct wl1
- ret = wl1271_acx_keep_alive_mode(wl, wlvif, false);
- if (ret < 0)
- return ret;
-+
-+ /* disable beacon filtering */
-+ ret = wl1271_acx_beacon_filter_opt(wl, wlvif, false);
-+ if (ret < 0)
-+ return ret;
- }
-
- if (test_and_clear_bit(WLVIF_FLAG_CS_PROGRESS, &wlvif->flags)) {
-@@ -4345,6 +4350,13 @@ static void wl1271_bss_info_changed_sta(
- }
- }
-
-+ if ((changed & BSS_CHANGED_BEACON_INFO) && bss_conf->dtim_period) {
-+ /* enable beacon filtering */
-+ ret = wl1271_acx_beacon_filter_opt(wl, wlvif, true);
-+ if (ret < 0)
-+ goto out;
-+ }
-+
- ret = wl1271_bss_erp_info_changed(wl, vif, bss_conf, changed);
- if (ret < 0)
- goto out;