| .. | .. |
|---|
| 1158 | 1158 | tmio_mmc_reset(_host); |
|---|
| 1159 | 1159 | |
|---|
| 1160 | 1160 | _host->sdcard_irq_mask = sd_ctrl_read16_and_16_as_32(_host, CTL_IRQ_MASK); |
|---|
| 1161 | | - tmio_mmc_disable_mmc_irqs(_host, TMIO_MASK_ALL); |
|---|
| 1161 | + if (!_host->sdcard_irq_mask_all) |
|---|
| 1162 | + _host->sdcard_irq_mask_all = TMIO_MASK_ALL; |
|---|
| 1163 | + tmio_mmc_disable_mmc_irqs(_host, _host->sdcard_irq_mask_all); |
|---|
| 1162 | 1164 | |
|---|
| 1163 | 1165 | if (_host->native_hotplug) |
|---|
| 1164 | 1166 | tmio_mmc_enable_mmc_irqs(_host, |
|---|
| .. | .. |
|---|
| 1212 | 1214 | cancel_work_sync(&host->done); |
|---|
| 1213 | 1215 | cancel_delayed_work_sync(&host->delayed_reset_work); |
|---|
| 1214 | 1216 | tmio_mmc_release_dma(host); |
|---|
| 1215 | | - tmio_mmc_disable_mmc_irqs(host, TMIO_MASK_ALL); |
|---|
| 1217 | + tmio_mmc_disable_mmc_irqs(host, host->sdcard_irq_mask_all); |
|---|
| 1216 | 1218 | |
|---|
| 1217 | 1219 | if (host->native_hotplug) |
|---|
| 1218 | 1220 | pm_runtime_put_noidle(&pdev->dev); |
|---|
| .. | .. |
|---|
| 1242 | 1244 | { |
|---|
| 1243 | 1245 | struct tmio_mmc_host *host = dev_get_drvdata(dev); |
|---|
| 1244 | 1246 | |
|---|
| 1245 | | - tmio_mmc_disable_mmc_irqs(host, TMIO_MASK_ALL); |
|---|
| 1247 | + tmio_mmc_disable_mmc_irqs(host, host->sdcard_irq_mask_all); |
|---|
| 1246 | 1248 | |
|---|
| 1247 | 1249 | if (host->clk_cache) |
|---|
| 1248 | 1250 | host->set_clock(host, 0); |
|---|