diff options
Diffstat (limited to 'drivers/mmc/core/sdio.c')
| -rw-r--r-- | drivers/mmc/core/sdio.c | 4 | 
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c index 8dd8fc32ecca..26cabd53ddc5 100644 --- a/drivers/mmc/core/sdio.c +++ b/drivers/mmc/core/sdio.c @@ -951,6 +951,8 @@ static int mmc_sdio_pre_suspend(struct mmc_host *host)   */  static int mmc_sdio_suspend(struct mmc_host *host)  { +	WARN_ON(host->sdio_irqs && !mmc_card_keep_power(host)); +  	/* Prevent processing of SDIO IRQs in suspended state. */  	mmc_card_set_suspended(host->card);  	cancel_delayed_work_sync(&host->sdio_irq_work); @@ -1013,7 +1015,7 @@ static int mmc_sdio_resume(struct mmc_host *host)  		if (!(host->caps2 & MMC_CAP2_SDIO_IRQ_NOTHREAD))  			wake_up_process(host->sdio_irq_thread);  		else if (host->caps & MMC_CAP_SDIO_IRQ) -			host->ops->enable_sdio_irq(host, 1); +			queue_delayed_work(system_wq, &host->sdio_irq_work, 0);  	}  out:  |