platform: msm_shared: Modify spare bytes calculation in qpic nand

Physical nand device may have more spare bytes than we use. Wrong spare bytes
calculation causes flashing and file system mount issues. So we calculate spare bytes
as the difference of total codeword size and page_size.

CRs-Fixed: 615649
Change-Id: I3c2b3daa95411b786fef2f7eb65636294cf8f925
diff --git a/platform/msm_shared/qpic_nand.c b/platform/msm_shared/qpic_nand.c
index 4c7dd6b..0c86597 100644
--- a/platform/msm_shared/qpic_nand.c
+++ b/platform/msm_shared/qpic_nand.c
@@ -1621,14 +1621,17 @@
 	uint32_t *spare = (unsigned *)flash_spare_bytes;
 	const unsigned char *image = data;
 	uint32_t wsize;
+	uint32_t spare_byte_count = 0;
 	int r;
 
+	spare_byte_count = ((flash.cw_size * flash.cws_per_page)- flash.page_size);
+
 	if(write_extra_bytes)
-		wsize = flash.page_size + flash.spare_size;
+		wsize = flash.page_size + spare_byte_count;
 	else
 		wsize = flash.page_size;
 
-	memset(spare, 0xff, (flash.spare_size / flash.cws_per_page));
+	memset(spare, 0xff, (spare_byte_count / flash.cws_per_page));
 
 	while (bytes > 0)
 	{
@@ -1664,7 +1667,7 @@
 
 		if (write_extra_bytes)
 		{
-			memcpy(rdwr_buf + flash.page_size, image + flash.page_size, flash.spare_size);
+			memcpy(rdwr_buf + flash.page_size, image + flash.page_size, spare_byte_count);
 			r = qpic_nand_write_page(page,
 									 NAND_CFG,
 									 rdwr_buf,