The patch titled mmc: check only relevant inhibit bits has been added to the -mm tree. Its filename is mmc-check-only-relevant-inhibit-bits.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: mmc: check only relevant inhibit bits From: Pierre Ossman <drzeus@xxxxxxxxx> Conform to the sdhci specification as to which inhibit bits should be checked at different times. Signed-off-by: Pierre Ossman <drzeus@xxxxxxxxx> Cc: Russell King <rmk@xxxxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- drivers/mmc/sdhci.c | 16 +++++++++++++--- 1 files changed, 13 insertions(+), 3 deletions(-) diff -puN drivers/mmc/sdhci.c~mmc-check-only-relevant-inhibit-bits drivers/mmc/sdhci.c --- 25/drivers/mmc/sdhci.c~mmc-check-only-relevant-inhibit-bits Tue Jun 27 14:28:43 2006 +++ 25-akpm/drivers/mmc/sdhci.c Tue Jun 27 14:28:43 2006 @@ -465,6 +465,7 @@ static void sdhci_finish_data(struct sdh static void sdhci_send_command(struct sdhci_host *host, struct mmc_command *cmd) { int flags; + u32 mask; unsigned long timeout; WARN_ON(host->cmd); @@ -473,11 +474,20 @@ static void sdhci_send_command(struct sd /* Wait max 10 ms */ timeout = 10; - while (readl(host->ioaddr + SDHCI_PRESENT_STATE) & - (SDHCI_CMD_INHIBIT | SDHCI_DATA_INHIBIT)) { + + mask = SDHCI_CMD_INHIBIT; + if ((cmd->data != NULL) || (cmd->flags & MMC_RSP_BUSY)) + mask |= SDHCI_DATA_INHIBIT; + + /* We shouldn't wait for data inihibit for stop commands, even + though they might use busy signaling */ + if (host->mrq->data && (cmd == host->mrq->data->stop)) + mask &= ~SDHCI_DATA_INHIBIT; + + while (readl(host->ioaddr + SDHCI_PRESENT_STATE) & mask) { if (timeout == 0) { printk(KERN_ERR "%s: Controller never released " - "inhibit bits. Please report this to " + "inhibit bit(s). Please report this to " BUGMAIL ".\n", mmc_hostname(host->mmc)); sdhci_dumpregs(host); cmd->error = MMC_ERR_FAILED; _ Patches currently in -mm which might be from drzeus@xxxxxxxxx are mmc-check-sdhci-base-clock.patch mmc-print-device-id.patch mmc-support-for-multiple-voltages.patch mmc-fix-timeout-loops-in-sdhci.patch mmc-fix-sdhci-reset-timeout.patch mmc-proper-timeout-handling.patch mmc-correct-register-order.patch mmc-fix-interrupt-handling.patch mmc-fix-sdhci-pio-routines.patch mmc-avoid-sdhci-dma-boundaries.patch mmc-test-for-invalid-block-size.patch mmc-check-only-relevant-inhibit-bits.patch mmc-check-controller-version.patch mmc-reset-sdhci-controller-early.patch mmc-more-dma-capabilities-tests.patch mmc-support-controller-specific-quirks.patch mmc-version-bump-sdhci.patch mmc-add-sdhci-controller-ids.patch mmc-quirk-for-broken-reset.patch mmc-force-dma-on-some-controllers.patch mmc-remove-duplicate-error-message.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html