diff options
author | Daniel Mack <daniel@zonque.org> | 2018-10-08 16:03:57 -0400 |
---|---|---|
committer | Ulf Hansson <ulf.hansson@linaro.org> | 2018-10-10 08:01:50 -0400 |
commit | 4f666675cdff0b986195413215eb062b7da6586f (patch) | |
tree | 098c48aa15d8994a40411d4b24a3a9a3f8941952 | |
parent | 41591b38f5f8f78344954b68582b5f00e56ffe61 (diff) |
libertas: call into generic suspend code before turning off power
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>
Acked-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-rw-r--r-- | drivers/net/wireless/marvell/libertas/if_sdio.c | 4 |
1 files changed, 4 insertions, 0 deletions
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) | |||
1317 | if (priv->wol_criteria == EHS_REMOVE_WAKEUP) { | 1317 | if (priv->wol_criteria == EHS_REMOVE_WAKEUP) { |
1318 | dev_info(dev, "Suspend without wake params -- powering down card\n"); | 1318 | dev_info(dev, "Suspend without wake params -- powering down card\n"); |
1319 | if (priv->fw_ready) { | 1319 | if (priv->fw_ready) { |
1320 | ret = lbs_suspend(priv); | ||
1321 | if (ret) | ||
1322 | return ret; | ||
1323 | |||
1320 | priv->power_up_on_resume = true; | 1324 | priv->power_up_on_resume = true; |
1321 | if_sdio_power_off(card); | 1325 | if_sdio_power_off(card); |
1322 | } | 1326 | } |