wl12xx: one SDIO initialization is enough
Ohad Ben-Cohen [Sun, 26 Jun 2011 15:00:11 +0000 (18:00 +0300)]
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>
Signed-off-by: Luciano Coelho <coelho@ti.com>

drivers/net/wireless/wl12xx/sdio.c

index 4dc4573..5cf18c2 100644 (file)
@@ -166,13 +166,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);
 
@@ -188,7 +188,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;