platform: msm_shared: include wp_grp_size in mmc_device structure

including the write protect group size for the mmc card
in mmc_device structure

CRs-Fixed: 647262
Change-Id: I4db9b8e1b7453271d562d842a3e8e7bf7ad0f2cf
diff --git a/platform/msm_shared/mmc_sdhci.c b/platform/msm_shared/mmc_sdhci.c
index 9f5cd0f..9916ef9 100644
--- a/platform/msm_shared/mmc_sdhci.c
+++ b/platform/msm_shared/mmc_sdhci.c
@@ -232,6 +232,13 @@
 	memcpy((struct mmc_csd *)&card->csd,(struct mmc_csd *)&mmc_csd,
 			sizeof(struct mmc_csd));
 
+	/* Calculate the wp grp size */
+	if (card->ext_csd[MMC_ERASE_GRP_DEF])
+		card->wp_grp_size = MMC_HC_ERASE_MULT * card->ext_csd[MMC_HC_ERASE_GRP_SIZE] / MMC_BLK_SZ;
+	else
+		card->wp_grp_size = (card->csd.wp_grp_size + 1) * (card->csd.erase_grp_size + 1) \
+					  * (card->csd.erase_grp_mult + 1);
+
 	dprintf(SPEW, "Decoded CSD fields:\n");
 	dprintf(SPEW, "cmmc_structure: %u\n", mmc_csd.cmmc_structure);
 	dprintf(SPEW, "card_cmd_class: %x\n", mmc_csd.card_cmd_class);
@@ -249,6 +256,7 @@
 	dprintf(SPEW, "write_blk_misalign: %u\n", mmc_csd.write_blk_misalign);
 	dprintf(SPEW, "read_blk_partial: %u\n", mmc_csd.read_blk_partial);
 	dprintf(SPEW, "write_blk_partial: %u\n", mmc_csd.write_blk_partial);
+	dprintf(SPEW, "wp_grp_size: %u\n", card->wp_grp_size);
 	dprintf(SPEW, "Card Capacity: %llu Bytes\n", card->capacity);
 
 	return 0;
@@ -2185,6 +2193,7 @@
 
 	/* Convert len into blocks */
 	len = len / MMC_BLK_SZ;
+	wp_grp_size = dev->card.wp_grp_size;
 
 	/* Disable PERM WP */
 	ret = mmc_switch_cmd(&dev->host, &dev->card, MMC_SET_BIT, MMC_USR_WP, MMC_US_PERM_WP_DIS);
@@ -2212,15 +2221,6 @@
 		return 1;
 	}
 
-	/* Calculate the wp grp size */
-	if (dev->card.ext_csd[MMC_ERASE_GRP_DEF])
-		wp_grp_size = (MMC_HC_ERASE_MULT * dev->card.ext_csd[MMC_HC_ERASE_GRP_SIZE]
-					  * dev->card.ext_csd[MMC_EXT_HC_WP_GRP_SIZE]) / MMC_BLK_SZ;
-	else
-		wp_grp_size = (dev->card.csd.wp_grp_size + 1) * (dev->card.csd.erase_grp_size + 1) \
-					  * (dev->card.csd.erase_grp_mult + 1);
-
-
 	if (len < wp_grp_size)
 	{
 		dprintf(CRITICAL, "Length is less than min WP size, WP was not set\n");