Merge "target: project: msm8996: Update target specific command line"
diff --git a/app/aboot/aboot.c b/app/aboot/aboot.c
index b134ec0..74e17e0 100644
--- a/app/aboot/aboot.c
+++ b/app/aboot/aboot.c
@@ -726,7 +726,7 @@
 void generate_atags(unsigned *ptr, const char *cmdline,
                     void *ramdisk, unsigned ramdisk_size)
 {
-
+	unsigned *orig_ptr = ptr;
 	ptr = atag_core(ptr);
 	ptr = atag_ramdisk(ptr, ramdisk, ramdisk_size);
 	ptr = target_atag_mem(ptr);
@@ -736,8 +736,18 @@
 		ptr = atag_ptable(&ptr);
 	}
 
-	ptr = atag_cmdline(ptr, cmdline);
-	ptr = atag_end(ptr);
+	/*
+	 * Atags size filled till + cmdline size + 1 unsigned for 4-byte boundary + 4 unsigned
+	 * for atag identifier in atag_cmdline and atag_end should be with in MAX_TAGS_SIZE bytes
+	 */
+	if (((ptr - orig_ptr) + strlen(cmdline) + 5 * sizeof(unsigned)) <  MAX_TAGS_SIZE) {
+		ptr = atag_cmdline(ptr, cmdline);
+		ptr = atag_end(ptr);
+	}
+	else {
+		dprintf(CRITICAL,"Crossing ATAGs Max size allowed\n");
+		ASSERT(0);
+	}
 }
 
 typedef void entry_func_ptr(unsigned, unsigned, unsigned*);
diff --git a/platform/msm8952/platform.c b/platform/msm8952/platform.c
index 251bbb9..df7bbfa 100644
--- a/platform/msm8952/platform.c
+++ b/platform/msm8952/platform.c
@@ -205,6 +205,7 @@
 	switch(platform)
 	{
 		case MSM8937:
+		case MSM8940:
 		case APQ8037:
 			ret = 1;
 			break;
diff --git a/platform/msm_shared/display_menu.c b/platform/msm_shared/display_menu.c
index fb4e0a8..cea4937 100644
--- a/platform/msm_shared/display_menu.c
+++ b/platform/msm_shared/display_menu.c
@@ -257,12 +257,16 @@
 
 	/* Align Right */
 	str_target = str_align_right(str1, big_factor);
-	if(str_target != NULL)
+	if(str_target != NULL) {
 		display_fbcon_menu_message(str_target, FBCON_TITLE_MSG, big_factor);
+		free(str_target);
+	}
 
 	str_target = str_align_right(str2, common_factor);
-	if(str_target != NULL)
+	if(str_target != NULL) {
 		display_fbcon_menu_message(str_target, FBCON_TITLE_MSG, common_factor);
+		free(str_target);
+	}
 
 	display_fbcon_menu_message("\n< More options\n",
 		FBCON_COMMON_MSG, common_factor);
@@ -296,9 +300,6 @@
 		"Your device will boot in 5 seconds\n\n", FBCON_COMMON_MSG, common_factor);
 
 	msg_info->info.msg_type = type;
-	if(str_target) {
-		free(str_target);
-	}
 
 	/* Initialize the time out time */
 	msg_info->info.timeout_time = 5000; //5s
diff --git a/platform/msm_shared/smem.h b/platform/msm_shared/smem.h
index d2e67d8..50193bd 100644
--- a/platform/msm_shared/smem.h
+++ b/platform/msm_shared/smem.h
@@ -447,6 +447,7 @@
 	MSM8953  = 293,
 	MSM8937 = 294,
 	APQ8037 = 295,
+	MSM8940 = 313,
 	MSM8996L = 302,
 	MSM8917  = 303,
 	APQ8053 = 304,
diff --git a/target/msm8952/init.c b/target/msm8952/init.c
index 47d3d04..d085f30 100644
--- a/target/msm8952/init.c
+++ b/target/msm8952/init.c
@@ -398,6 +398,7 @@
 	case MSM8956:
 	case MSM8976:
 	case MSM8937:
+	case MSM8940:
 	case MSM8917:
 	case MSM8217:
 	case MSM8617:
diff --git a/target/msm8952/oem_panel.c b/target/msm8952/oem_panel.c
index e01dfd0..60be169 100755
--- a/target/msm8952/oem_panel.c
+++ b/target/msm8952/oem_panel.c
@@ -707,6 +707,7 @@
 		memcpy(phy_db->timing,
 				lead_fl10802_fwvga_video_timings, TIMING_SIZE);
 		pinfo->mipi.signature = LEAD_FL10802_FWVGA_VIDEO_SIGNATURE;
+		pinfo->mipi.cmds_post_tg = 1;
 		break;
 	case UNKNOWN_PANEL:
 	default: