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>
This commit is contained in:
parent
e8b461c377
commit
5af70c864a
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue