Revert "mmc: msm_sdcc: use DATA_PEND bit for write opration"

This reverts commit bbf38a3581b3236860bd4daf0d454972adca2b0b, which
has been reported to break the SDIO communication and cause WLAN
connectivity issues. It doesn't handle CMD53 WRITE used in SDIO
communication due to which the controller hang is observed.
DATA_PEND is operational only for CMD24 and CMD25 used by SD/MMC cards.

Change-Id: I63f16f028a2e9d5be87754bd61b765667bfd00e3
Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org>
diff --git a/drivers/mmc/host/msm_sdcc.c b/drivers/mmc/host/msm_sdcc.c
index 6181758..ce13d27 100644
--- a/drivers/mmc/host/msm_sdcc.c
+++ b/drivers/mmc/host/msm_sdcc.c
@@ -1024,8 +1024,6 @@
 
 	if (data->flags & MMC_DATA_READ)
 		datactrl |= (MCI_DPSM_DIRECTION | MCI_RX_DATA_PEND);
-	else if (data->flags & MMC_DATA_WRITE)
-		datactrl |= MCI_DATA_PEND;
 
 	clks = (unsigned long long)data->timeout_ns * host->clk_rate;
 	do_div(clks, 1000000000UL);
@@ -1364,6 +1362,9 @@
 			msmsdcc_start_command(host, host->curr.mrq->cmd, 0);
 		else
 			msmsdcc_request_start(host, host->curr.mrq);
+	} else if (cmd->data) {
+		if (!(cmd->data->flags & MMC_DATA_READ))
+			msmsdcc_start_data(host, cmd->data, NULL, 0);
 	}
 }
 
@@ -1570,9 +1571,9 @@
 static void
 msmsdcc_request_start(struct msmsdcc_host *host, struct mmc_request *mrq)
 {
-	if (mrq->data) {
+	if (mrq->data && mrq->data->flags & MMC_DATA_READ) {
 		/* Queue/read data, daisy-chain command when data starts */
-		if (mrq->sbc && (mrq->data->flags & MMC_DATA_READ))
+		if (mrq->sbc)
 			msmsdcc_start_data(host, mrq->data, mrq->sbc, 0);
 		else
 			msmsdcc_start_data(host, mrq->data, mrq->cmd, 0);