mmc-omap: Fix omap to use MMC_POWER_ON
authorTony Lindgren <tony@atomide.com>
Tue, 1 May 2007 14:34:16 +0000 (16:34 +0200)
committerPierre Ossman <drzeus@drzeus.cx>
Tue, 1 May 2007 14:34:16 +0000 (16:34 +0200)
As discussed earlier on LKML:

http://lkml.org/lkml/2006/5/4/44

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
drivers/mmc/host/omap.c

index 1b232c6..fc044a5 100644 (file)
@@ -969,8 +969,10 @@ static void mmc_omap_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
                mmc_omap_power(host, 0);
                break;
        case MMC_POWER_UP:
-       case MMC_POWER_ON:
+               /* Cannot touch dsor yet, just power up MMC */
                mmc_omap_power(host, 1);
+               return;
+       case MMC_POWER_ON:
                dsor |= 1 << 11;
                break;
        }
@@ -986,7 +988,7 @@ static void mmc_omap_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
         * Writing to the CON register twice seems to do the trick. */
        for (i = 0; i < 2; i++)
                OMAP_MMC_WRITE(host, CON, dsor);
-       if (ios->power_mode == MMC_POWER_UP) {
+       if (ios->power_mode == MMC_POWER_ON) {
                /* Send clock cycles, poll completion */
                OMAP_MMC_WRITE(host, IE, 0);
                OMAP_MMC_WRITE(host, STAT, 0xffff);