platform: msm_shared: Add mmc wrapper changes for UFS erase

CRs-Fixed: 573103 555512
Change-Id: Ieccb34f56a7e82a39ddf02d49d7444c6a4cb215c
diff --git a/platform/msm_shared/mmc_wrapper.c b/platform/msm_shared/mmc_wrapper.c
index 46ce941..5488d48 100644
--- a/platform/msm_shared/mmc_wrapper.c
+++ b/platform/msm_shared/mmc_wrapper.c
@@ -66,6 +66,15 @@
 	return 0;
 }
 
+__WEAK uint32_t ufs_get_erase_blk_size(struct ufs_dev *dev)
+{
+	return 0;
+}
+
+__WEAK int ufs_erase(struct ufs_dev* dev, uint64_t start_lba, uint32_t num_blocks)
+{
+	return 0;
+}
 /*
  * Function: get mmc card
  * Arg     : None
@@ -208,6 +217,7 @@
 	return ret;
 }
 
+
 /*
  * Function: mmc get erase unit size
  * Arg     : None
@@ -306,20 +316,21 @@
 	uint32_t blk_count;
 	uint64_t blks_to_erase;
 
+	block_size = mmc_get_device_blocksize();
+
+	dev = target_mmc_device();
+
+	ASSERT(!(addr % block_size));
+	ASSERT(!(len % block_size));
+
 	if (target_boot_device_emmc())
 	{
-		block_size = mmc_get_device_blocksize();
 		erase_unit_sz = mmc_get_eraseunit_size();
 		dprintf(SPEW, "erase_unit_sz:0x%x\n", erase_unit_sz);
 
-		ASSERT(!(addr % block_size));
-		ASSERT(!(len % block_size));
-
 		blk_addr = addr / block_size;
 		blk_count = len / block_size;
 
-		dev = target_mmc_device();
-
 		dprintf(INFO, "Erasing card: 0x%x:0x%x\n", blk_addr, blk_count);
 
 		head_unit = blk_addr / erase_unit_sz;
@@ -363,6 +374,14 @@
 		}
 
 	}
+	else
+	{
+		if(ufs_erase((struct ufs_dev *)dev, addr, (len / block_size)))
+		{
+			dprintf(CRITICAL, "mmc_erase_card: UFS erase failed\n");
+			return 1;
+		}
+	}
 
 	return 0;
 }