platform: msm_shared: move cmd timeout check prior to cmd complete

As per mmc specs, cmd timeout error has higher priority than
cmd complete. This condition was not taken care of
hence move cmd timeout check prior to cmd complete so that
priority is maintained. Also increase the transfer complete
retries to 50 as some mmc cards take longer time
to come to transfer state.

Change-Id: I70b201a4e743f181c72a9ab014fe9eedfc77258a
diff --git a/platform/msm_shared/sdhci.c b/platform/msm_shared/sdhci.c
index c0f307e..aca1a9d 100644
--- a/platform/msm_shared/sdhci.c
+++ b/platform/msm_shared/sdhci.c
@@ -437,9 +437,11 @@
 	uint64_t max_trans_retry = (cmd->cmd_timeout ? cmd->cmd_timeout : SDHCI_MAX_TRANS_RETRY);
 
 	do {
+
 		int_status = REG_READ16(host, SDHCI_NRML_INT_STS_REG);
 
-		if (int_status  & SDHCI_INT_STS_CMD_COMPLETE)
+		if((int_status  & SDHCI_INT_STS_CMD_COMPLETE) &&
+			!(REG_READ16(host, SDHCI_ERR_INT_STS_REG) & SDHCI_CMD_TIMEOUT_MASK))
 			break;
 		/*
 		* Some controllers set the data timout first on issuing an erase & take time
diff --git a/platform/msm_shared/sdhci_msm.c b/platform/msm_shared/sdhci_msm.c
index d86baa6..1d4229a 100644
--- a/platform/msm_shared/sdhci_msm.c
+++ b/platform/msm_shared/sdhci_msm.c
@@ -780,7 +780,7 @@
 		if(err)
 		{
 
-			sts_retry = 5;
+			sts_retry = 50;
 			sts_cmd.cmd_index = CMD13_SEND_STATUS;
 			sts_cmd.argument = card->rca << 16;
 			sts_cmd.cmd_type = SDHCI_CMD_TYPE_NORMAL;