diff --git a/platform/msm_shared/include/mmc_sdhci.h b/platform/msm_shared/include/mmc_sdhci.h
index abbe64d..398f982 100644
--- a/platform/msm_shared/include/mmc_sdhci.h
+++ b/platform/msm_shared/include/mmc_sdhci.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are
@@ -97,6 +97,7 @@
 #define MMC_PART_CONFIG                           179
 #define MMC_ERASE_GRP_DEF                         175
 #define MMC_USR_WP                                171
+#define MMC_ERASE_TIMEOUT_MULT                    223
 #define MMC_HC_ERASE_GRP_SIZE                     224
 
 /* Values for ext csd fields */
diff --git a/platform/msm_shared/include/sdhci.h b/platform/msm_shared/include/sdhci.h
index a14b3b5..a660e29 100644
--- a/platform/msm_shared/include/sdhci.h
+++ b/platform/msm_shared/include/sdhci.h
@@ -87,6 +87,7 @@
 	uint32_t trans_mode;    /* Transfer mode, read/write */
 	uint32_t cmd_retry;     /* Retry the command, if card is busy */
 	uint32_t cmd23_support; /* If card supports cmd23 */
+	uint64_t cmd_timeout;   /* Command timeout in ms */
 	struct mmc_data data;   /* Data pointer */
 };
 
diff --git a/platform/msm_shared/mmc_sdhci.c b/platform/msm_shared/mmc_sdhci.c
index 127505c..f0d51ac 100644
--- a/platform/msm_shared/mmc_sdhci.c
+++ b/platform/msm_shared/mmc_sdhci.c
@@ -1937,7 +1937,7 @@
 /*
  * Send the erase CMD38, to erase the selected erase groups
  */
-static uint32_t mmc_send_erase(struct mmc_device *dev)
+static uint32_t mmc_send_erase(struct mmc_device *dev, uint64_t erase_timeout)
 {
 	struct mmc_command cmd;
 	uint32_t status;
@@ -1949,6 +1949,7 @@
 	cmd.argument = 0x00000000;
 	cmd.cmd_type = SDHCI_CMD_TYPE_NORMAL;
 	cmd.resp_type = SDHCI_CMD_RESP_R1B;
+	cmd.cmd_timeout = erase_timeout;
 
 	/* send command */
 	if (sdhci_send_command(&dev->host, &cmd))
@@ -1992,6 +1993,7 @@
 	uint32_t erase_end;
 	uint32_t blk_end;
 	uint32_t num_erase_grps;
+	uint64_t erase_timeout = 0;
 	uint32_t *out;
 	struct mmc_card *card;
 
@@ -2058,12 +2060,19 @@
 		return 1;
 	}
 
+	/*
+	 * As per emmc 4.5 spec section 7.4.27, calculate the erase timeout
+	 * erase_timeout = 300 * ERASE_TIMEOUT_MULT * num_erase_grps
+	 */
+	erase_timeout = (300 * card->ext_csd[MMC_ERASE_TIMEOUT_MULT] * num_erase_grps);
+
 	/* Send CMD38 to perform erase */
-	if (mmc_send_erase(dev))
+	if (mmc_send_erase(dev, erase_timeout))
 	{
 		dprintf(CRITICAL, "Failed to erase the specified partition\n");
 		return 1;
 	}
+
 	return 0;
 }
 
diff --git a/platform/msm_shared/sdhci.c b/platform/msm_shared/sdhci.c
index eeb47fc..a278dea 100644
--- a/platform/msm_shared/sdhci.c
+++ b/platform/msm_shared/sdhci.c
@@ -377,6 +377,7 @@
 	uint32_t int_status;
 	uint32_t trans_complete = 0;
 	uint32_t err_status;
+	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);
@@ -449,7 +450,7 @@
 
 			retry++;
 			udelay(1000);
-			if (retry == SDHCI_MAX_TRANS_RETRY) {
+			if (retry == max_trans_retry) {
 				dprintf(CRITICAL, "Error: Transfer never completed\n");
 				ret = 1;
 				goto err;
