提交 a693534b 编写于 作者: A Arik Nemtsov 提交者: Luciano Coelho

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: NArik Nemtsov <arik@wizery.com>
Signed-off-by: NLuciano Coelho <coelho@ti.com>
上级 d6fa37c9
...@@ -137,11 +137,6 @@ static int wl1271_event_ps_report(struct wl1271 *wl, ...@@ -137,11 +137,6 @@ static int wl1271_event_ps_report(struct wl1271 *wl,
case EVENT_ENTER_POWER_SAVE_SUCCESS: case EVENT_ENTER_POWER_SAVE_SUCCESS:
wlvif->psm_entry_retry = 0; wlvif->psm_entry_retry = 0;
/* enable beacon filtering */
ret = wl1271_acx_beacon_filter_opt(wl, wlvif, true);
if (ret < 0)
break;
/* /*
* BET has only a minor effect in 5GHz and masks * BET has only a minor effect in 5GHz and masks
* channel switch IEs, so we only enable BET on 2.4GHz * channel switch IEs, so we only enable BET on 2.4GHz
......
...@@ -254,17 +254,17 @@ static int wl12xx_init_phy_vif_config(struct wl1271 *wl, ...@@ -254,17 +254,17 @@ static int wl12xx_init_phy_vif_config(struct wl1271 *wl,
return 0; return 0;
} }
static int wl1271_init_beacon_filter(struct wl1271 *wl, static int wl1271_init_sta_beacon_filter(struct wl1271 *wl,
struct wl12xx_vif *wlvif) struct wl12xx_vif *wlvif)
{ {
int ret; int ret;
/* disable beacon filtering at this stage */ ret = wl1271_acx_beacon_filter_table(wl, wlvif);
ret = wl1271_acx_beacon_filter_opt(wl, wlvif, false);
if (ret < 0) if (ret < 0)
return ret; return ret;
ret = wl1271_acx_beacon_filter_table(wl, wlvif); /* enable beacon filtering */
ret = wl1271_acx_beacon_filter_opt(wl, wlvif, true);
if (ret < 0) if (ret < 0)
return ret; return ret;
...@@ -529,7 +529,7 @@ static int wl12xx_init_sta_role(struct wl1271 *wl, struct wl12xx_vif *wlvif) ...@@ -529,7 +529,7 @@ static int wl12xx_init_sta_role(struct wl1271 *wl, struct wl12xx_vif *wlvif)
return ret; return ret;
/* Beacon filtering */ /* Beacon filtering */
ret = wl1271_init_beacon_filter(wl, wlvif); ret = wl1271_init_sta_beacon_filter(wl, wlvif);
if (ret < 0) if (ret < 0)
return ret; return ret;
......
...@@ -185,11 +185,6 @@ int wl1271_ps_set_mode(struct wl1271 *wl, struct wl12xx_vif *wlvif, ...@@ -185,11 +185,6 @@ int wl1271_ps_set_mode(struct wl1271 *wl, struct wl12xx_vif *wlvif,
return ret; return ret;
} }
/* disable beacon filtering */
ret = wl1271_acx_beacon_filter_opt(wl, wlvif, false);
if (ret < 0)
return ret;
ret = wl1271_cmd_ps_mode(wl, wlvif, STATION_ACTIVE_MODE); ret = wl1271_cmd_ps_mode(wl, wlvif, STATION_ACTIVE_MODE);
if (ret < 0) if (ret < 0)
return ret; return ret;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册