{
unsigned long flags;
int is_readonly;
+ sdhci_runtime_pm_get(host);
spin_lock_irqsave(&host->lock, flags);
spin_unlock_irqrestore(&host->lock, flags);
+ sdhci_runtime_pm_put(host);
/* This quirk needs to be replaced by a callback-function later */
return host->quirks & SDHCI_QUIRK_INVERTED_WRITE_PROTECT ?
!is_readonly : is_readonly;
static void sdhci_enable_sdio_irq_nolock(struct sdhci_host *host, int enable)
{
+ sdhci_runtime_pm_get(host);
if (host->flags & SDHCI_DEVICE_DEAD)
goto out;
sdhci_mask_irqs(host, SDHCI_INT_CARD_INT);
out:
mmiowb();
+ sdhci_runtime_pm_put(host);
}
static void sdhci_enable_sdio_irq(struct mmc_host *mmc, int enable)
mmc->caps |= MMC_CAP_SDIO_IRQ | MMC_CAP_ERASE | MMC_CAP_CMD23;
+ mmc->caps |= MMC_CAP_POWER_OFF_CARD;
+
if (host->quirks & SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12)
host->flags |= SDHCI_AUTO_CMD12;