@@ -652,6 +652,7 @@ static inline int mmci_dma_prep_next(struct mmci_host *host,
return __mmci_dma_prep_data(host, data, &nd->dma_chan, &nd->dma_desc);
}
+extern void qcom_bam_set_desc_eot(struct dma_async_tx_descriptor *txd);
static int mmci_dma_start_data(struct mmci_host *host, unsigned int datactrl)
{
int ret;
@@ -661,6 +662,9 @@ static int mmci_dma_start_data(struct mmci_host *host, unsigned int datactrl)
if (ret)
return ret;
+ if (data->flags & MMC_DATA_WRITE)
+ qcom_bam_set_desc_eot(host->dma_desc_current);
+
/* Okay, go for it. */
dev_vdbg(mmc_dev(host->mmc),
"Submit MMCI DMA job, sglen %d blksz %04x blks %04x flags %08x\n",