diff mbox series

libertas: call into generic suspend code before turning off power

Message ID 20181008200357.10819-1-daniel@zonque.org (mailing list archive)
State Not Applicable
Delegated to: Kalle Valo
Headers show
Series libertas: call into generic suspend code before turning off power | expand

Commit Message

Daniel Mack Oct. 8, 2018, 8:03 p.m. UTC
When powering down a SDIO connected card during suspend, make sure to call
into the generic lbs_suspend() function before pulling the plug. This will
make sure the card is successfully deregistered from the system to avoid
communication to the card starving out.

Fixes: 7444a8092906 ("libertas: fix suspend and resume for SDIO connected cards")
Signed-off-by: Daniel Mack <daniel@zonque.org>
---
If possible, this should go in for 4.19.

 drivers/net/wireless/marvell/libertas/if_sdio.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Ulf Hansson Oct. 9, 2018, 7:43 a.m. UTC | #1
On 8 October 2018 at 22:03, Daniel Mack <daniel@zonque.org> wrote:
> When powering down a SDIO connected card during suspend, make sure to call
> into the generic lbs_suspend() function before pulling the plug. This will
> make sure the card is successfully deregistered from the system to avoid
> communication to the card starving out.
>
> Fixes: 7444a8092906 ("libertas: fix suspend and resume for SDIO connected cards")
> Signed-off-by: Daniel Mack <daniel@zonque.org>

Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>

BTW, if you need this to reach 4.19 I have already queued some other
mmc fixes so I can take this as well, if it helps. I need and ack of
course.

Kind regards
Uffe

> ---
> If possible, this should go in for 4.19.
>
>  drivers/net/wireless/marvell/libertas/if_sdio.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/drivers/net/wireless/marvell/libertas/if_sdio.c b/drivers/net/wireless/marvell/libertas/if_sdio.c
> index 43743c26c071..39bf85d0ade0 100644
> --- a/drivers/net/wireless/marvell/libertas/if_sdio.c
> +++ b/drivers/net/wireless/marvell/libertas/if_sdio.c
> @@ -1317,6 +1317,10 @@ static int if_sdio_suspend(struct device *dev)
>         if (priv->wol_criteria == EHS_REMOVE_WAKEUP) {
>                 dev_info(dev, "Suspend without wake params -- powering down card\n");
>                 if (priv->fw_ready) {
> +                       ret = lbs_suspend(priv);
> +                       if (ret)
> +                               return ret;
> +
>                         priv->power_up_on_resume = true;
>                         if_sdio_power_off(card);
>                 }
> --
> 2.17.1
>
Kalle Valo Oct. 9, 2018, 1:36 p.m. UTC | #2
Ulf Hansson <ulf.hansson@linaro.org> writes:

> On 8 October 2018 at 22:03, Daniel Mack <daniel@zonque.org> wrote:
>> When powering down a SDIO connected card during suspend, make sure to call
>> into the generic lbs_suspend() function before pulling the plug. This will
>> make sure the card is successfully deregistered from the system to avoid
>> communication to the card starving out.
>>
>> Fixes: 7444a8092906 ("libertas: fix suspend and resume for SDIO connected cards")
>> Signed-off-by: Daniel Mack <daniel@zonque.org>
>
> Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
>
> BTW, if you need this to reach 4.19 I have already queued some other
> mmc fixes so I can take this as well, if it helps. I need and ack of
> course.

I'm not planning to send anything to 4.19 anymore and this is so simple
that hopefully it cause any conflicts with -next patches, so feel free
to do that:

Acked-by: Kalle Valo <kvalo@codeaurora.org>
Ulf Hansson Oct. 10, 2018, 12:04 p.m. UTC | #3
On 9 October 2018 at 15:36, Kalle Valo <kvalo@codeaurora.org> wrote:
> Ulf Hansson <ulf.hansson@linaro.org> writes:
>
>> On 8 October 2018 at 22:03, Daniel Mack <daniel@zonque.org> wrote:
>>> When powering down a SDIO connected card during suspend, make sure to call
>>> into the generic lbs_suspend() function before pulling the plug. This will
>>> make sure the card is successfully deregistered from the system to avoid
>>> communication to the card starving out.
>>>
>>> Fixes: 7444a8092906 ("libertas: fix suspend and resume for SDIO connected cards")
>>> Signed-off-by: Daniel Mack <daniel@zonque.org>
>>
>> Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
>>
>> BTW, if you need this to reach 4.19 I have already queued some other
>> mmc fixes so I can take this as well, if it helps. I need and ack of
>> course.
>
> I'm not planning to send anything to 4.19 anymore and this is so simple
> that hopefully it cause any conflicts with -next patches, so feel free
> to do that:
>
> Acked-by: Kalle Valo <kvalo@codeaurora.org>

Applied for fixes, thanks!

Kind regards
Uffe
diff mbox series

Patch

diff --git a/drivers/net/wireless/marvell/libertas/if_sdio.c b/drivers/net/wireless/marvell/libertas/if_sdio.c
index 43743c26c071..39bf85d0ade0 100644
--- a/drivers/net/wireless/marvell/libertas/if_sdio.c
+++ b/drivers/net/wireless/marvell/libertas/if_sdio.c
@@ -1317,6 +1317,10 @@  static int if_sdio_suspend(struct device *dev)
 	if (priv->wol_criteria == EHS_REMOVE_WAKEUP) {
 		dev_info(dev, "Suspend without wake params -- powering down card\n");
 		if (priv->fw_ready) {
+			ret = lbs_suspend(priv);
+			if (ret)
+				return ret;
+
 			priv->power_up_on_resume = true;
 			if_sdio_power_off(card);
 		}