On Feb 6, 2011, at 3:13 AM, Albert Herranz wrote: > Hi, > > On 02/06/2011 02:35 AM, Philip Rakity wrote: >> >> proposed solution: I cannot verify this fix until Monday. >> ===== >> >> CMD52 is a reset for SDIO cards. CMD0 is not sufficient when >> the card is being re-initialized. Only send CMD52 if >> a) doing a reinitialize >> b) card is SDIO or SDIO_COMBO >> >> Signed-off-by: Philip Rakity <prakity@xxxxxxxxxxx> >> --- >> drivers/mmc/core/core.c | 7 ++++++- >> 1 files changed, 6 insertions(+), 1 deletions(-) >> >> diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c >> index 30d4da4..f0ce6f6 100644 >> --- a/drivers/mmc/core/core.c >> +++ b/drivers/mmc/core/core.c >> @@ -1521,7 +1521,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(host); >> + >> + /* reset sdio before CMD0 when card is being reinitialized */ >> + if (host->card && >> + (host->card->type == MMC_TYPE_SDIO || >> + host->card->type == MMC_TYPE_SD_COMBO)) >> + sdio_reset(host); >> mmc_go_idle(host); >> mmc_hwungate_clock(host); >> > > At least on the Nintendo Wii, a platform reset _does not_ reset the SDIO hardware, and there is no known way to power-off/power-on it. > So, in some cases like after a system reboot, we need to issue a CMD52 before a CMD0 (even if on that particular case host->card is NULL) to properly reset the Nintendo Wii SDIO-based Wireless LAN card from its previous state, otherwise the card is not detected. > > The proposed fix breaks this and makes the card unavailable after a system reboot. > > If you are concerned about unconditionally issuing a CMD52 then we can use a quirk to make sure that we always perform a SDIO reset at least for the Nintendo Wii. Would be happy with either a quirk or comment in the code. Comment seems easiest. /* sdhci_reset will generate CMD52 to reset card. SD/eMMC cards are ignore this */ or something like that. > > Cheers, > Albert -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html