diff mbox

[01/12] mwifiex: fix power save issue when suspend

Message ID 1477900940-10549-1-git-send-email-huxinming820@marvell.com (mailing list archive)
State Changes Requested
Delegated to: Kalle Valo
Headers show

Commit Message

Xinming Hu Oct. 31, 2016, 8:02 a.m. UTC
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(-)

Comments

Brian Norris Oct. 31, 2016, 11:57 p.m. UTC | #1
Hi,

On Mon, Oct 31, 2016 at 04:02:09PM +0800, Xinming Hu wrote:
> From: Shengzhen Li <szli@marvell.com>
> 
> This patch fixes a corner case for "FROMLIST: mwifiex: fix corner case

Upstream patches don't normally get a 'FROMLIST' tag while you're
sending them to the mailing list :) That designation is used for Chrome
OS trees, so we know where to find the patch source. But the upstream
mailing list *is* the source.

> 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

In the same vein: while I'm happy to have the BUG=, TEST=, and Gerrit
Change-ID for our Chrome OS tree, I don't think upstream reviewers
typically care about those. Please remove those from upstream
submissions like this.

(Same applies to the rest of this series. Also, consider running
scripts/checkpatch.pl. It will at least remind you about removing the
Gerrit Change-ID.)

> ---
>  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)

The entire 'if' condition is unnecessary. That's all checked already
within mwifiex_check_ps_cond().

Brian

> +					mwifiex_check_ps_cond(adapter);
> +			}
> +
>  			if (adapter->ps_state != PS_STATE_AWAKE)
>  				break;
>  			if (adapter->tx_lock_flag) {
> -- 
> 1.8.1.4
>
Xinming Hu Nov. 1, 2016, 10:26 a.m. UTC | #2
Hi Brian,

Thanks for review, we will address your comments in updated version.
Since we have an enhanced verison for FROMLIST: mwifiex: fix corner case, 
that is https://patchwork.kernel.org/patch/9405119/ ,
the updated patch will be reorganized to follow above patch.

> -----Original Message-----

> From: linux-wireless-owner@vger.kernel.org

> [mailto:linux-wireless-owner@vger.kernel.org] On Behalf Of Brian Norris

> Sent: 2016年11月1日 7:57

> To: Xinming Hu

> Cc: Linux Wireless; Kalle Valo; Dmitry Torokhov; Amitkumar Karwar; Cathy Luo;

> Shengzhen Li

> Subject: Re: [PATCH 01/12] mwifiex: fix power save issue when suspend

> 

> Hi,

> 

> On Mon, Oct 31, 2016 at 04:02:09PM +0800, Xinming Hu wrote:

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

> >

> > This patch fixes a corner case for "FROMLIST: mwifiex: fix corner case

> 

> Upstream patches don't normally get a 'FROMLIST' tag while you're sending

> them to the mailing list :) That designation is used for Chrome OS trees, so we

> know where to find the patch source. But the upstream mailing list *is* the

> source.

> 

> > 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

> 

> In the same vein: while I'm happy to have the BUG=, TEST=, and Gerrit

> Change-ID for our Chrome OS tree, I don't think upstream reviewers typically

> care about those. Please remove those from upstream submissions like this.

> 

> (Same applies to the rest of this series. Also, consider running

> scripts/checkpatch.pl. It will at least remind you about removing the Gerrit

> Change-ID.)

> 

> > ---

> >  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)

> 

> The entire 'if' condition is unnecessary. That's all checked already within

> mwifiex_check_ps_cond().

> 

> Brian

> 

> > +					mwifiex_check_ps_cond(adapter);

> > +			}

> > +

> >  			if (adapter->ps_state != PS_STATE_AWAKE)

> >  				break;

> >  			if (adapter->tx_lock_flag) {

> > --

> > 1.8.1.4

> >


Best Regards,
Simon
diff mbox

Patch

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) {