msm_shared: mmc_wrapper: Implement mmc erase wrapper function.
Implement the mmc erase wrapper function to erase the mmc card.
CRs-Fixed: 492353
Change-Id: I9b8ad4b9b0a083c59c2ea436488b1f8e6097ddf2
diff --git a/platform/msm_shared/mmc_wrapper.c b/platform/msm_shared/mmc_wrapper.c
index c56a61e..dce416a 100644
--- a/platform/msm_shared/mmc_wrapper.c
+++ b/platform/msm_shared/mmc_wrapper.c
@@ -128,14 +128,22 @@
* Function: mmc erase card
* Arg : Block address & length
* Return : Returns 0
- * Flow : This is dummy API for backward compatibility
- * erase is not supported for sdhci
+ * Flow : Erase the card from specified addr
*/
uint32_t mmc_erase_card(uint64_t addr, uint64_t len)
{
- /* TODO: Right now with sdhci erase function
- * is not implemented, need to be added
- */
+ struct mmc_device *dev;
+
+ dev = target_mmc_device();
+
+ ASSERT(!(addr % MMC_BLK_SZ));
+ ASSERT(!(len % MMC_BLK_SZ));
+
+ if (mmc_sdhci_erase(dev, (addr / MMC_BLK_SZ), len))
+ {
+ dprintf(CRITICAL, "MMC erase failed\n");
+ return 1;
+ }
return 0;
}