diff options
author | Arik Nemtsov <arik@wizery.com> | 2012-02-28 00:41:28 +0200 |
---|---|---|
committer | Luciano Coelho <coelho@ti.com> | 2012-02-28 13:19:19 +0200 |
commit | 5af70c864a1539bd1d3f3fcb04ab9558491c9103 (patch) | |
tree | e333542ad9b0644e7819375628eefb12fa7f2f20 /drivers/net/wireless/wl12xx | |
parent | e8b461c37717d6b5c071c4924845884a86c20752 (diff) | |
download | op-kernel-dev-5af70c864a1539bd1d3f3fcb04ab9558491c9103.zip op-kernel-dev-5af70c864a1539bd1d3f3fcb04ab9558491c9103.tar.gz |
wl12xx: set the ELP entry delay to the FW dyn-ps timeout
With PSM handled in FW, the checks in wl1271_elp_work() are always true.
Thus during active traffic we constantly enter and exit ELP (many times
per second). As each ELP exit takes ~10ms, this can have an adverse
effect on throughput and interactivity.
Set the ELP timeout to the dyn-ps timeout. This period is longer and
avoids the above problem. It also makes sense to stay out of ELP while
we are awake on the network, to minimize delays in Tx/Rx. The same thing
was done by the mac80211 dynamic-ps mechanism before the FW DPS changes.
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net/wireless/wl12xx')
-rw-r--r-- | drivers/net/wireless/wl12xx/ps.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/net/wireless/wl12xx/ps.c b/drivers/net/wireless/wl12xx/ps.c index 23d6750..78f598b 100644 --- a/drivers/net/wireless/wl12xx/ps.c +++ b/drivers/net/wireless/wl12xx/ps.c @@ -69,8 +69,6 @@ out: mutex_unlock(&wl->mutex); } -#define ELP_ENTRY_DELAY 5 - /* Routines to toggle sleep mode while in ELP */ void wl1271_ps_elp_sleep(struct wl1271 *wl) { @@ -90,7 +88,7 @@ void wl1271_ps_elp_sleep(struct wl1271 *wl) } ieee80211_queue_delayed_work(wl->hw, &wl->elp_work, - msecs_to_jiffies(ELP_ENTRY_DELAY)); + msecs_to_jiffies(wl->conf.conn.dynamic_ps_timeout)); } int wl1271_ps_elp_wakeup(struct wl1271 *wl) |