mmc_erase: Change to correct mmc erase operation
Update CMD36 parameters to send correct data_end and send CMD38
only once to erase the specified erase_groups.
Change-Id: Id4d87003ce82102e95af57d015ca476adf5ecd20
diff --git a/platform/msm_shared/mmc.c b/platform/msm_shared/mmc.c
index b1fc977..124cb9f 100644
--- a/platform/msm_shared/mmc.c
+++ b/platform/msm_shared/mmc.c
@@ -2797,7 +2797,7 @@
}
/* Sending CMD36 */
- mmc_ret = mmc_boot_send_erase_group_end(&mmc_card, data_end - 1);
+ mmc_ret = mmc_boot_send_erase_group_end(&mmc_card, data_end);
if (mmc_ret != MMC_BOOT_E_SUCCESS) {
dprintf(CRITICAL, "Error %d: Failure sending erase group end "
"command to the card (RCA:%x)\n", mmc_ret,
@@ -2805,18 +2805,16 @@
return mmc_ret;
}
- for (unsigned long long i = 0; i < loop_count; i++) {
- /* Sending CMD38 */
- mmc_ret = mmc_boot_send_erase(&mmc_card);
- if (mmc_ret != MMC_BOOT_E_SUCCESS) {
- dprintf(CRITICAL,
- "Error %d: Failure sending erase command "
- "to the card (RCA:%x)\n", mmc_ret,
- mmc_card.rca);
- return mmc_ret;
+ /* Sending CMD38 */
+ mmc_ret = mmc_boot_send_erase(&mmc_card);
+ if (mmc_ret != MMC_BOOT_E_SUCCESS) {
+ dprintf(CRITICAL,
+ "Error %d: Failure sending erase command "
+ "to the card (RCA:%x)\n", mmc_ret, mmc_card.rca);
+ return mmc_ret;
- }
}
+
dprintf(CRITICAL, "ERASE SUCCESSFULLY COMPLETED\n");
return MMC_BOOT_E_SUCCESS;
}