diff options
author | Eyal Shapira <eyal@wizery.com> | 2012-08-02 00:15:19 -0400 |
---|---|---|
committer | Luciano Coelho <luca@coelho.fi> | 2012-09-27 05:13:51 -0400 |
commit | 11bc97eb902ddac822f32dc5a890d7b6274b754d (patch) | |
tree | 59ee86a6843b01e09c42a97d69ad7db9fd2014dc | |
parent | 26a309c7586140afd40628a7031993afbaae0f07 (diff) |
wlcore: configure wowlan regardless of wakeup conditions
wowlan filters should be configured in any case in suspend/resume.
This shouldn't be dependent on whether wakeup conditions are the
same for suspend and resume states. Only the FW command to
reconfigure wakeup conditions should be avoided in such a case.
Reported-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Eyal Shapira <eyal@wizery.com>
Signed-off-by: Luciano Coelho <luca@coelho.fi>
-rw-r--r-- | drivers/net/wireless/ti/wlcore/main.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/ti/wlcore/main.c index 7fe19defa97f..a797ce7201b2 100644 --- a/drivers/net/wireless/ti/wlcore/main.c +++ b/drivers/net/wireless/ti/wlcore/main.c | |||
@@ -1603,12 +1603,6 @@ static int wl1271_configure_suspend_sta(struct wl1271 *wl, | |||
1603 | if (!test_bit(WLVIF_FLAG_STA_ASSOCIATED, &wlvif->flags)) | 1603 | if (!test_bit(WLVIF_FLAG_STA_ASSOCIATED, &wlvif->flags)) |
1604 | goto out; | 1604 | goto out; |
1605 | 1605 | ||
1606 | if ((wl->conf.conn.suspend_wake_up_event == | ||
1607 | wl->conf.conn.wake_up_event) && | ||
1608 | (wl->conf.conn.suspend_listen_interval == | ||
1609 | wl->conf.conn.listen_interval)) | ||
1610 | goto out; | ||
1611 | |||
1612 | ret = wl1271_ps_elp_wakeup(wl); | 1606 | ret = wl1271_ps_elp_wakeup(wl); |
1613 | if (ret < 0) | 1607 | if (ret < 0) |
1614 | goto out; | 1608 | goto out; |
@@ -1617,6 +1611,12 @@ static int wl1271_configure_suspend_sta(struct wl1271 *wl, | |||
1617 | if (ret < 0) | 1611 | if (ret < 0) |
1618 | goto out_sleep; | 1612 | goto out_sleep; |
1619 | 1613 | ||
1614 | if ((wl->conf.conn.suspend_wake_up_event == | ||
1615 | wl->conf.conn.wake_up_event) && | ||
1616 | (wl->conf.conn.suspend_listen_interval == | ||
1617 | wl->conf.conn.listen_interval)) | ||
1618 | goto out_sleep; | ||
1619 | |||
1620 | ret = wl1271_acx_wake_up_conditions(wl, wlvif, | 1620 | ret = wl1271_acx_wake_up_conditions(wl, wlvif, |
1621 | wl->conf.conn.suspend_wake_up_event, | 1621 | wl->conf.conn.suspend_wake_up_event, |
1622 | wl->conf.conn.suspend_listen_interval); | 1622 | wl->conf.conn.suspend_listen_interval); |
@@ -1672,13 +1672,6 @@ static void wl1271_configure_resume(struct wl1271 *wl, | |||
1672 | if ((!is_ap) && (!is_sta)) | 1672 | if ((!is_ap) && (!is_sta)) |
1673 | return; | 1673 | return; |
1674 | 1674 | ||
1675 | if (is_sta && | ||
1676 | ((wl->conf.conn.suspend_wake_up_event == | ||
1677 | wl->conf.conn.wake_up_event) && | ||
1678 | (wl->conf.conn.suspend_listen_interval == | ||
1679 | wl->conf.conn.listen_interval))) | ||
1680 | return; | ||
1681 | |||
1682 | ret = wl1271_ps_elp_wakeup(wl); | 1675 | ret = wl1271_ps_elp_wakeup(wl); |
1683 | if (ret < 0) | 1676 | if (ret < 0) |
1684 | return; | 1677 | return; |
@@ -1686,6 +1679,12 @@ static void wl1271_configure_resume(struct wl1271 *wl, | |||
1686 | if (is_sta) { | 1679 | if (is_sta) { |
1687 | wl1271_configure_wowlan(wl, NULL); | 1680 | wl1271_configure_wowlan(wl, NULL); |
1688 | 1681 | ||
1682 | if ((wl->conf.conn.suspend_wake_up_event == | ||
1683 | wl->conf.conn.wake_up_event) && | ||
1684 | (wl->conf.conn.suspend_listen_interval == | ||
1685 | wl->conf.conn.listen_interval)) | ||
1686 | goto out_sleep; | ||
1687 | |||
1689 | ret = wl1271_acx_wake_up_conditions(wl, wlvif, | 1688 | ret = wl1271_acx_wake_up_conditions(wl, wlvif, |
1690 | wl->conf.conn.wake_up_event, | 1689 | wl->conf.conn.wake_up_event, |
1691 | wl->conf.conn.listen_interval); | 1690 | wl->conf.conn.listen_interval); |
@@ -1698,6 +1697,7 @@ static void wl1271_configure_resume(struct wl1271 *wl, | |||
1698 | ret = wl1271_acx_beacon_filter_opt(wl, wlvif, false); | 1697 | ret = wl1271_acx_beacon_filter_opt(wl, wlvif, false); |
1699 | } | 1698 | } |
1700 | 1699 | ||
1700 | out_sleep: | ||
1701 | wl1271_ps_elp_sleep(wl); | 1701 | wl1271_ps_elp_sleep(wl); |
1702 | } | 1702 | } |
1703 | 1703 | ||