del_timer(&host->watchdog);
 
        stat = mxcmci_readl(host, MMC_REG_STATUS);
-       mxcmci_writel(host, stat & ~STATUS_DATA_TRANS_DONE, MMC_REG_STATUS);
 
        dev_dbg(mmc_dev(host->mmc), "%s: 0x%08x\n", __func__, stat);
 
-       if (stat & STATUS_READ_OP_DONE)
-               mxcmci_writel(host, STATUS_READ_OP_DONE, MMC_REG_STATUS);
-
        mxcmci_data_done(host, stat);
 }
 
        sdio_irq = (stat & STATUS_SDIO_INT_ACTIVE) && host->use_sdio;
        spin_unlock_irqrestore(&host->lock, flags);
 
-       if (mxcmci_use_dma(host) &&
-           (stat & (STATUS_READ_OP_DONE | STATUS_WRITE_OP_DONE)))
-               mxcmci_writel(host, STATUS_READ_OP_DONE | STATUS_WRITE_OP_DONE,
-                       MMC_REG_STATUS);
+       if (mxcmci_use_dma(host) && (stat & (STATUS_WRITE_OP_DONE)))
+               mxcmci_writel(host, STATUS_WRITE_OP_DONE, MMC_REG_STATUS);
 
        if (sdio_irq) {
                mxcmci_writel(host, STATUS_SDIO_INT_ACTIVE, MMC_REG_STATUS);
        if (stat & STATUS_END_CMD_RESP)
                mxcmci_cmd_done(host, stat);
 
-       if (mxcmci_use_dma(host) &&
-                 (stat & (STATUS_DATA_TRANS_DONE | STATUS_WRITE_OP_DONE))) {
+       if (mxcmci_use_dma(host) && (stat & STATUS_WRITE_OP_DONE)) {
                del_timer(&host->watchdog);
                mxcmci_data_done(host, stat);
        }