wlcore: use the original elp time in forced_ps mode
authorEliad Peller <eliad@wizery.com>
Tue, 15 May 2012 14:08:52 +0000 (17:08 +0300)
committerLuciano Coelho <coelho@ti.com>
Tue, 5 Jun 2012 14:16:08 +0000 (17:16 +0300)
The dynamic PS timeout is meaningless in forced PS mode.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
drivers/net/wireless/ti/wlcore/ps.c

index 756eee2257b4bc51d857f3068c46b06cc5844907..958535dee9f3440d2526ead024cc1082d155a543 100644 (file)
@@ -28,6 +28,8 @@
 
 #define WL1271_WAKEUP_TIMEOUT 500
 
+#define ELP_ENTRY_DELAY  5
+
 void wl1271_elp_work(struct work_struct *work)
 {
        struct delayed_work *dwork;
@@ -72,6 +74,7 @@ out:
 void wl1271_ps_elp_sleep(struct wl1271 *wl)
 {
        struct wl12xx_vif *wlvif;
+       u32 timeout;
 
        if (wl->quirks & WLCORE_QUIRK_NO_ELP)
                return;
@@ -89,8 +92,13 @@ void wl1271_ps_elp_sleep(struct wl1271 *wl)
                        return;
        }
 
+       if (wl->conf.conn.forced_ps)
+               timeout = ELP_ENTRY_DELAY;
+       else
+               timeout = wl->conf.conn.dynamic_ps_timeout;
+
        ieee80211_queue_delayed_work(wl->hw, &wl->elp_work,
-               msecs_to_jiffies(wl->conf.conn.dynamic_ps_timeout));
+                                    msecs_to_jiffies(timeout));
 }
 
 int wl1271_ps_elp_wakeup(struct wl1271 *wl)