Messages in this thread Patch in this message | | | Date | Thu, 09 Nov 2006 09:28:52 +0100 | From | Pierre Ossman <> | Subject | [GIT PULL] MMC update |
| |
Linus, please pull from
git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc.git for-linus
to receive the following updates:
drivers/mmc/mmc.c | 19 +++++++++++++++++-- 1 files changed, 17 insertions(+), 2 deletions(-)
Timo Teras: MMC: Poll card status after rescanning cards MMC: Do not set unsupported bits in OCR response
diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index ee8863c..766bc54 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -475,7 +475,7 @@ static u32 mmc_select_voltage(struct mmc if (bit) { bit -= 1;
- ocr = 3 << bit; + ocr &= 3 << bit;
host->ios.vdd = bit; mmc_set_ios(host); @@ -1178,14 +1178,29 @@ static void mmc_rescan(void *data) { struct mmc_host *host = data; struct list_head *l, *n; + unsigned char power_mode;
mmc_claim_host(host);
- if (host->ios.power_mode == MMC_POWER_ON) + /* + * Check for removed cards and newly inserted ones. We check for + * removed cards first so we can intelligently re-select the VDD. + */ + power_mode = host->ios.power_mode; + if (power_mode == MMC_POWER_ON) mmc_check_cards(host);
mmc_setup(host);
+ /* + * Some broken cards process CMD1 even in stand-by state. There is + * no reply, but an ILLEGAL_COMMAND error is cached and returned + * after next command. We poll for card status here to clear any + * possibly pending error. + */ + if (power_mode == MMC_POWER_ON) + mmc_check_cards(host); + if (!list_empty(&host->cards)) { /* * (Re-)calculate the fastest clock rate which the -- -- Pierre Ossman
Linux kernel, MMC maintainer http://www.kernel.org PulseAudio, core developer http://pulseaudio.org rdesktop, core developer http://www.rdesktop.org - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |