mmc: msm_sdcc: Reset Data Path State Machine after every transaction

If the Data Path State Machine (DPSM) is not reset after every
transaction, DATAEND bit in MMCISTATUS is not set under certain
conditions.

CRs-fixed: 295119
Signed-off-by: Krishna Konda <kkonda@codeaurora.org>
diff --git a/drivers/mmc/host/msm_sdcc.c b/drivers/mmc/host/msm_sdcc.c
index 23e8d69..fecc2e0 100644
--- a/drivers/mmc/host/msm_sdcc.c
+++ b/drivers/mmc/host/msm_sdcc.c
@@ -293,11 +293,15 @@
 	return retval;
 }
 
+static inline void msmsdcc_delay(struct msmsdcc_host *host);
+
 static void
 msmsdcc_stop_data(struct msmsdcc_host *host)
 {
 	host->curr.data = NULL;
 	host->curr.got_dataend = 0;
+	writel_relaxed(0, host->base + MMCIDATACTRL);
+	msmsdcc_delay(host);	/* Allow the DPSM to be reset */
 }
 
 static inline uint32_t msmsdcc_fifo_addr(struct msmsdcc_host *host)