mmc: core: comment on why sdio_reset is done at init time
authorPhilip Rakity <prakity@marvell.com>
Mon, 14 Feb 2011 07:12:28 +0000 (23:12 -0800)
committerChris Ball <cjb@laptop.org>
Wed, 16 Mar 2011 16:30:11 +0000 (12:30 -0400)
sdio_reset sends a CMD52 to reset the sdio card.  This is highly
recommended for sdio cards being reinitialized.  Since we do not
know if the card is being reinitialized we just send the command.
SD/eMMC cards are supposed to ignore the CMD before the CMD0.
Document why we are doing this.

Signed-off-by: Philip Rakity <prakity@marvell.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
drivers/mmc/core/core.c

index 2af2ee1a2265aa01820b46c6dba9acedd71e01c9..c47e13b79eeec0cb5792bfb571c50dc3743d5b2a 100644 (file)
@@ -1494,6 +1494,12 @@ static int mmc_rescan_try_freq(struct mmc_host *host, unsigned freq)
                mmc_hostname(host), __func__, host->f_init);
 #endif
        mmc_power_up(host);
+
+       /*
+        * sdio_reset sends CMD52 to reset card.  Since we do not know
+        * if the card is being re-initialized, just send it.  CMD52
+        * should be ignored by SD/eMMC cards.
+        */
        sdio_reset(host);
        mmc_go_idle(host);