#define WL1271_WAKEUP_TIMEOUT 500
 
+#define ELP_ENTRY_DELAY  5
+
 void wl1271_elp_work(struct work_struct *work)
 {
        struct delayed_work *dwork;
 void wl1271_ps_elp_sleep(struct wl1271 *wl)
 {
        struct wl12xx_vif *wlvif;
+       u32 timeout;
 
        if (wl->quirks & WLCORE_QUIRK_NO_ELP)
                return;
                        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)