diff options
author | Arik Nemtsov <arik@wizery.com> | 2011-10-24 11:25:20 -0400 |
---|---|---|
committer | Luciano Coelho <coelho@ti.com> | 2011-11-08 08:36:46 -0500 |
commit | a693534b1a46ee934606cec52b12baeaebba0342 (patch) | |
tree | f41d32ddc9420c3060f815e4a6a0b65c95ea5b79 | |
parent | d6fa37c9ffa2a613943dd1c32f220a3e6e9eb77c (diff) |
wl12xx: keep beacon-filtering enabled during STA operation
Enable beacon filtering on STA init, and don't disable it when entering
active mode. Otherwise dynamic-PS supports means we receive beacons from
the current AP during any Tx/Rx performed by the driver.
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
-rw-r--r-- | drivers/net/wireless/wl12xx/event.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/wl12xx/init.c | 12 | ||||
-rw-r--r-- | drivers/net/wireless/wl12xx/ps.c | 5 |
3 files changed, 6 insertions, 16 deletions
diff --git a/drivers/net/wireless/wl12xx/event.c b/drivers/net/wireless/wl12xx/event.c index e22df6ce139a..00ce794eebae 100644 --- a/drivers/net/wireless/wl12xx/event.c +++ b/drivers/net/wireless/wl12xx/event.c | |||
@@ -137,11 +137,6 @@ static int wl1271_event_ps_report(struct wl1271 *wl, | |||
137 | case EVENT_ENTER_POWER_SAVE_SUCCESS: | 137 | case EVENT_ENTER_POWER_SAVE_SUCCESS: |
138 | wlvif->psm_entry_retry = 0; | 138 | wlvif->psm_entry_retry = 0; |
139 | 139 | ||
140 | /* enable beacon filtering */ | ||
141 | ret = wl1271_acx_beacon_filter_opt(wl, wlvif, true); | ||
142 | if (ret < 0) | ||
143 | break; | ||
144 | |||
145 | /* | 140 | /* |
146 | * BET has only a minor effect in 5GHz and masks | 141 | * BET has only a minor effect in 5GHz and masks |
147 | * channel switch IEs, so we only enable BET on 2.4GHz | 142 | * channel switch IEs, so we only enable BET on 2.4GHz |
diff --git a/drivers/net/wireless/wl12xx/init.c b/drivers/net/wireless/wl12xx/init.c index c6084f8a9c43..14ff01efc0b1 100644 --- a/drivers/net/wireless/wl12xx/init.c +++ b/drivers/net/wireless/wl12xx/init.c | |||
@@ -254,17 +254,17 @@ static int wl12xx_init_phy_vif_config(struct wl1271 *wl, | |||
254 | return 0; | 254 | return 0; |
255 | } | 255 | } |
256 | 256 | ||
257 | static int wl1271_init_beacon_filter(struct wl1271 *wl, | 257 | static int wl1271_init_sta_beacon_filter(struct wl1271 *wl, |
258 | struct wl12xx_vif *wlvif) | 258 | struct wl12xx_vif *wlvif) |
259 | { | 259 | { |
260 | int ret; | 260 | int ret; |
261 | 261 | ||
262 | /* disable beacon filtering at this stage */ | 262 | ret = wl1271_acx_beacon_filter_table(wl, wlvif); |
263 | ret = wl1271_acx_beacon_filter_opt(wl, wlvif, false); | ||
264 | if (ret < 0) | 263 | if (ret < 0) |
265 | return ret; | 264 | return ret; |
266 | 265 | ||
267 | ret = wl1271_acx_beacon_filter_table(wl, wlvif); | 266 | /* enable beacon filtering */ |
267 | ret = wl1271_acx_beacon_filter_opt(wl, wlvif, true); | ||
268 | if (ret < 0) | 268 | if (ret < 0) |
269 | return ret; | 269 | return ret; |
270 | 270 | ||
@@ -529,7 +529,7 @@ static int wl12xx_init_sta_role(struct wl1271 *wl, struct wl12xx_vif *wlvif) | |||
529 | return ret; | 529 | return ret; |
530 | 530 | ||
531 | /* Beacon filtering */ | 531 | /* Beacon filtering */ |
532 | ret = wl1271_init_beacon_filter(wl, wlvif); | 532 | ret = wl1271_init_sta_beacon_filter(wl, wlvif); |
533 | if (ret < 0) | 533 | if (ret < 0) |
534 | return ret; | 534 | return ret; |
535 | 535 | ||
diff --git a/drivers/net/wireless/wl12xx/ps.c b/drivers/net/wireless/wl12xx/ps.c index 9f4e8c03cc8f..a7a11088dd31 100644 --- a/drivers/net/wireless/wl12xx/ps.c +++ b/drivers/net/wireless/wl12xx/ps.c | |||
@@ -185,11 +185,6 @@ int wl1271_ps_set_mode(struct wl1271 *wl, struct wl12xx_vif *wlvif, | |||
185 | return ret; | 185 | return ret; |
186 | } | 186 | } |
187 | 187 | ||
188 | /* disable beacon filtering */ | ||
189 | ret = wl1271_acx_beacon_filter_opt(wl, wlvif, false); | ||
190 | if (ret < 0) | ||
191 | return ret; | ||
192 | |||
193 | ret = wl1271_cmd_ps_mode(wl, wlvif, STATION_ACTIVE_MODE); | 188 | ret = wl1271_cmd_ps_mode(wl, wlvif, STATION_ACTIVE_MODE); |
194 | if (ret < 0) | 189 | if (ret < 0) |
195 | return ret; | 190 | return ret; |