|
@@ -350,8 +350,6 @@ static int tmio_mmc_start_command(struct tmio_mmc_host *host,
|
|
|
c |= TRANSFER_READ;
|
|
|
}
|
|
|
|
|
|
- if (!host->native_hotplug)
|
|
|
- irq_mask &= ~(TMIO_STAT_CARD_REMOVE | TMIO_STAT_CARD_INSERT);
|
|
|
tmio_mmc_enable_mmc_irqs(host, irq_mask);
|
|
|
|
|
|
/* Fire off the command */
|
|
@@ -1280,11 +1278,13 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host)
|
|
|
irq_mask |= TMIO_MASK_READOP;
|
|
|
if (!_host->chan_tx)
|
|
|
irq_mask |= TMIO_MASK_WRITEOP;
|
|
|
- if (!_host->native_hotplug)
|
|
|
- irq_mask &= ~(TMIO_STAT_CARD_REMOVE | TMIO_STAT_CARD_INSERT);
|
|
|
|
|
|
_host->sdcard_irq_mask &= ~irq_mask;
|
|
|
|
|
|
+ if (_host->native_hotplug)
|
|
|
+ tmio_mmc_enable_mmc_irqs(_host,
|
|
|
+ TMIO_STAT_CARD_REMOVE | TMIO_STAT_CARD_INSERT);
|
|
|
+
|
|
|
spin_lock_init(&_host->lock);
|
|
|
mutex_init(&_host->ios_lock);
|
|
|
|
|
@@ -1382,6 +1382,10 @@ int tmio_mmc_host_runtime_resume(struct device *dev)
|
|
|
if (host->clk_cache)
|
|
|
tmio_mmc_set_clock(host, host->clk_cache);
|
|
|
|
|
|
+ if (host->native_hotplug)
|
|
|
+ tmio_mmc_enable_mmc_irqs(host,
|
|
|
+ TMIO_STAT_CARD_REMOVE | TMIO_STAT_CARD_INSERT);
|
|
|
+
|
|
|
tmio_mmc_enable_dma(host, true);
|
|
|
|
|
|
if (tmio_mmc_can_retune(host) && host->select_tuning(host))
|