linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 01/12] mwifiex: fix power save issue when suspend
@ 2016-10-31  8:02 Xinming Hu
  2016-10-31  8:02 ` [PATCH 02/12] mwifiex: check tx_hw_pending before downloading sleep confirm Xinming Hu
                   ` (11 more replies)
  0 siblings, 12 replies; 16+ messages in thread
From: Xinming Hu @ 2016-10-31  8:02 UTC (permalink / raw)
  To: Linux Wireless
  Cc: Kalle Valo, Brian Norris, Dmitry Torokhov, Amitkumar Karwar,
	Cathy Luo, Shengzhen Li

From: Shengzhen Li <szli@marvell.com>

This patch fixes a corner case for "FROMLIST: mwifiex: fix corner case
power save issue", main process will check the power save condition in
PS_PRE_SLEEP status so the sleep handshake could continue.

Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Shengzhen Li <szli@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>

BUG=chrome-os-partner:58164
TEST=stress Wifi w/ power_save enabled

Change-Id: I5a36d9eaeb7fe5faaccc533e0d1ba1f3253666dc
---
 drivers/net/wireless/marvell/mwifiex/cmdevt.c | 3 ++-
 drivers/net/wireless/marvell/mwifiex/main.c   | 5 +++++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/marvell/mwifiex/cmdevt.c b/drivers/net/wireless/marvell/mwifiex/cmdevt.c
index 5347728..9075be5 100644
--- a/drivers/net/wireless/marvell/mwifiex/cmdevt.c
+++ b/drivers/net/wireless/marvell/mwifiex/cmdevt.c
@@ -1123,8 +1123,9 @@ mwifiex_check_ps_cond(struct mwifiex_adapter *adapter)
 		mwifiex_dnld_sleep_confirm_cmd(adapter);
 	else
 		mwifiex_dbg(adapter, CMD,
-			    "cmd: Delay Sleep Confirm (%s%s%s)\n",
+			    "cmd: Delay Sleep Confirm (%s%s%s%s)\n",
 			    (adapter->cmd_sent) ? "D" : "",
+			    (adapter->data_sent) ? "T" : "",
 			    (adapter->curr_cmd) ? "C" : "",
 			    (IS_CARD_RX_RCVD(adapter)) ? "R" : "");
 }
diff --git a/drivers/net/wireless/marvell/mwifiex/main.c b/drivers/net/wireless/marvell/mwifiex/main.c
index 2478ccd..f559ead 100644
--- a/drivers/net/wireless/marvell/mwifiex/main.c
+++ b/drivers/net/wireless/marvell/mwifiex/main.c
@@ -308,6 +308,11 @@ process_start:
 			/* We have tried to wakeup the card already */
 			if (adapter->pm_wakeup_fw_try)
 				break;
+			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_AWAKE)
 				break;
 			if (adapter->tx_lock_flag) {
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2016-11-01 10:26 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-31  8:02 [PATCH 01/12] mwifiex: fix power save issue when suspend Xinming Hu
2016-10-31  8:02 ` [PATCH 02/12] mwifiex: check tx_hw_pending before downloading sleep confirm Xinming Hu
2016-11-01  0:14   ` Brian Norris
2016-11-01 10:24     ` Xinming Hu
2016-10-31  8:02 ` [PATCH 03/12] mwifiex: don't do unbalanced free()'ing in cleanup_if() Xinming Hu
2016-10-31  8:02 ` [PATCH 04/12] mwifiex: resolve races between async FW init (failure) and device removal Xinming Hu
2016-10-31  8:02 ` [PATCH 05/12] mwifiex: remove redundant pdev check in suspend/resume handlers Xinming Hu
2016-10-31  8:02 ` [PATCH 06/12] mwifiex: don't pretend to resume while remove()'ing Xinming Hu
2016-10-31  8:02 ` [PATCH 07/12] mwifiex: resolve suspend() race with async FW init failure Xinming Hu
2016-10-31  8:02 ` [PATCH 08/12] mwifiex: reset card->adapter during device unregister Xinming Hu
2016-10-31  8:02 ` [PATCH 09/12] mwifiex: usb: handle HS failures Xinming Hu
2016-10-31  8:02 ` [PATCH 10/12] mwifiex: sdio: don't check for NULL sdio_func Xinming Hu
2016-10-31  8:02 ` [PATCH 11/12] mwifiex: stop checking for NULL drvata/intfdata Xinming Hu
2016-10-31  8:02 ` [PATCH 12/12] mwifiex: pcie: stop checking for NULL adapter->card Xinming Hu
2016-10-31 23:57 ` [PATCH 01/12] mwifiex: fix power save issue when suspend Brian Norris
2016-11-01 10:26   ` Xinming Hu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).