diff options
Diffstat (limited to 'drivers/mmc')
-rwxr-xr-x | drivers/mmc/host/sdhci.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index 19d6ccc..7baca39 100755 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c @@ -1962,7 +1962,8 @@ static void sdhci_tasklet_finish(unsigned long param) sdhci_reset(host, SDHCI_RESET_DATA); } out: - if(readl(host->ioaddr + SDHCI_PRESENT_STATE) & SDHCI_DATA_INHIBIT) + if((readl(host->ioaddr + SDHCI_PRESENT_STATE) & SDHCI_DATA_INHIBIT) || + (host->quirks & SDHCI_QUIRK_MUST_MAINTAIN_CLOCK)) mod_timer(&host->busy_check_timer, jiffies + msecs_to_jiffies(10)); else sdhci_disable_clock_card(host); @@ -2035,7 +2036,8 @@ static void sdhci_busy_check_timer(unsigned long data) spin_lock_irqsave(&host->lock, flags); - if(readl(host->ioaddr + SDHCI_PRESENT_STATE) & (SDHCI_CMD_INHIBIT | SDHCI_DATA_INHIBIT)) + if((readl(host->ioaddr + SDHCI_PRESENT_STATE) & (SDHCI_CMD_INHIBIT | SDHCI_DATA_INHIBIT)) || + (host->quirks & SDHCI_QUIRK_MUST_MAINTAIN_CLOCK)) mod_timer(&host->busy_check_timer, jiffies + msecs_to_jiffies(10)); else sdhci_disable_clock_card(host); |