/* We have tried to wakeup the card already */
                        if (adapter->pm_wakeup_fw_try)
                                break;
+                       if (adapter->ps_state == PS_STATE_PRE_SLEEP)
+                               mwifiex_check_ps_cond(adapter);
+
                        if (adapter->ps_state != PS_STATE_AWAKE)
                                break;
                        if (adapter->tx_lock_flag) {
 
                /* Check if we need to confirm Sleep Request
                   received previously */
-               if (adapter->ps_state == PS_STATE_PRE_SLEEP) {
-                       if (!adapter->cmd_sent && !adapter->curr_cmd)
-                               mwifiex_check_ps_cond(adapter);
-               }
+               if (adapter->ps_state == PS_STATE_PRE_SLEEP)
+                       mwifiex_check_ps_cond(adapter);
 
                /* * The ps_state may have been changed during processing of
                 * Sleep Request event.