From: Shengzhen Li <s...@marvell.com>

Power save handshake with firmware might be blocked by on-going
data transfer.
this patch check the PS status in main process and complete
previous blocked PS handshake.
this patch also remove redudant check before call
mwifiex_check_ps_cond function.

Signed-off-by: Cathy Luo <c...@marvell.com>
Signed-off-by: Shengzhen Li <s...@marvell.com>
Tested-by: Xinming Hu <h...@marvell.com>
Signed-off-by: Amitkumar Karwar <akar...@marvell.com>
---
v2: 1. remove redudant check(Brain)
        2. reorgnized to follow tx_hw_pending patch
v3: Same as v2
---
 drivers/net/wireless/marvell/mwifiex/main.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/marvell/mwifiex/main.c 
b/drivers/net/wireless/marvell/mwifiex/main.c
index 20c9b77..c710d5e 100644
--- a/drivers/net/wireless/marvell/mwifiex/main.c
+++ b/drivers/net/wireless/marvell/mwifiex/main.c
@@ -308,6 +308,9 @@ int mwifiex_main_process(struct mwifiex_adapter *adapter)
                        /* 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) {
@@ -355,10 +358,8 @@ int mwifiex_main_process(struct mwifiex_adapter *adapter)
 
                /* 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.
-- 
1.9.1

Reply via email to