diff mbox

wl12xx: one SDIO initialization is enough

Message ID 1309100411-15353-1-git-send-email-ohad@wizery.com (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Ohad Ben Cohen June 26, 2011, 3 p.m. UTC
Skip manual device power on in case runtime PM is enabled for
our device.

This eliminates a secondary & redundant SDIO init sequence.

Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
---
This patch depends on "wl12xx: don't bail if mmc isn't MMC_CAP_POWER_OFF_CARD"

https://patchwork.kernel.org/patch/827772/

 drivers/net/wireless/wl12xx/sdio.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

Comments

Luciano Coelho July 5, 2011, 7:06 p.m. UTC | #1
On Sun, 2011-06-26 at 18:00 +0300, Ohad Ben-Cohen wrote: 
> Skip manual device power on in case runtime PM is enabled for
> our device.
> 
> This eliminates a secondary & redundant SDIO init sequence.
> 
> Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
> ---
> This patch depends on "wl12xx: don't bail if mmc isn't MMC_CAP_POWER_OFF_CARD"
> 
> https://patchwork.kernel.org/patch/827772/

Thanks, Ohad, applied!
diff mbox

Patch

diff --git a/drivers/net/wireless/wl12xx/sdio.c b/drivers/net/wireless/wl12xx/sdio.c
index 989b077..886c35f 100644
--- a/drivers/net/wireless/wl12xx/sdio.c
+++ b/drivers/net/wireless/wl12xx/sdio.c
@@ -174,13 +174,13 @@  static int wl1271_sdio_power_on(struct wl1271 *wl)
 		ret = pm_runtime_get_sync(&func->dev);
 		if (ret)
 			goto out;
+	} else {
+		/* Runtime PM is disabled: power up the card manually */
+		ret = mmc_power_restore_host(func->card->host);
+		if (ret < 0)
+			goto out;
 	}
 
-	/* Runtime PM might be disabled, so power up the card manually */
-	ret = mmc_power_restore_host(func->card->host);
-	if (ret < 0)
-		goto out;
-
 	sdio_claim_host(func);
 	sdio_enable_func(func);
 
@@ -196,7 +196,7 @@  static int wl1271_sdio_power_off(struct wl1271 *wl)
 	sdio_disable_func(func);
 	sdio_release_host(func);
 
-	/* Runtime PM might be disabled, so power off the card manually */
+	/* Power off the card manually, even if runtime PM is enabled. */
 	ret = mmc_power_save_host(func->card->host);
 	if (ret < 0)
 		return ret;