platform: msm_shared: Initialize RPMB paramters in ufs init

The rpmb logical block size in sectors and rpmb read write size values
are initialized by calls to unit descriptor and geometry descriptor.

Change-Id: I69fbdf8b9c40bfe0c4ee5af89acb030efe128d7f
diff --git a/platform/msm_shared/ufs.c b/platform/msm_shared/ufs.c
index 1fd26b4..3cb1487 100644
--- a/platform/msm_shared/ufs.c
+++ b/platform/msm_shared/ufs.c
@@ -89,6 +89,31 @@
 	qgic_change_interrupt_cfg(UFS_IRQ, INTERRUPT_LVL_N_TO_N);
 }
 
+static void ufs_rpmb_init(struct ufs_dev *dev)
+{
+	int ret = 0;
+
+	// calculate the size of rpmb partition in sectors
+	ret = dme_read_unit_desc(dev, UFS_WLUN_RPMB);
+	if (ret != UFS_SUCCESS)
+	{
+		dprintf(CRITICAL, "UFS dme_read_unit_desc failed for RPMB Partition\n");
+		return;
+	}
+
+	// gets the number of rpmb frames allowed in a single UPIU commands
+	ret = dme_read_geo_desc(dev, UFS_WLUN_RPMB);
+	if (ret != UFS_SUCCESS)
+	{
+		dprintf(CRITICAL, "UFS dme_read_geo_desc failed for RPMB Partition\n");
+		return;
+	}
+#ifdef DEBUG_UFS
+	dprintf(INFO, "RPMB: Logical Block Count: 0x%x\n", dev->rpmb_num_blocks);
+	dprintf(INFO, "RPMB: RPMB Read Write Size: 0x%x\n", dev->rpmb_rw_size);
+#endif
+}
+
 int ufs_read(struct ufs_dev* dev, uint64_t start_lba, addr_t buffer, uint32_t num_blocks)
 {
 	struct scsi_rdwr_req req;