Merge "platform: msm_shared: restrict the rpmb frame count to 1" into lk.lnx.1.0-dev.1.0
diff --git a/app/aboot/aboot.c b/app/aboot/aboot.c
index 02b0bd3..1b94bd3 100644
--- a/app/aboot/aboot.c
+++ b/app/aboot/aboot.c
@@ -2187,17 +2187,22 @@
 	unsigned int kernel_size = 0;
 	unsigned int scratch_offset = 0;
 
+#if FBCON_DISPLAY_MSG
+	/* Exit keys' detection thread firstly */
+	exit_menu_keys_detection();
+#endif
+
 #if VERIFIED_BOOT
 	if(target_build_variant_user() && !device.is_unlocked)
 	{
 		fastboot_fail("unlock device to use this command");
-		return;
+		goto boot_failed;
 	}
 #endif
 
 	if (sz < sizeof(hdr)) {
 		fastboot_fail("invalid bootimage header");
-		return;
+		goto boot_failed;
 	}
 
 	hdr = (struct boot_img_hdr *)data;
@@ -2226,7 +2231,7 @@
 	/* sz should have atleast raw boot image */
 	if (image_actual > sz) {
 		fastboot_fail("bootimage: incomplete or not signed");
-		return;
+		goto boot_failed;
 	}
 
 	// Initialize boot state before trying to verify boot.img
@@ -2238,7 +2243,7 @@
 	if ((target_get_max_flash_size() - (image_actual - sig_actual)) < page_size)
 	{
 		fastboot_fail("booimage: size is greater than boot image buffer can hold");
-		return;
+		goto boot_failed;
 	}
 #endif
 
@@ -2266,7 +2271,7 @@
 	mdtp_activated(&is_mdtp_activated);
 	if(is_mdtp_activated){
 		dprintf(CRITICAL, "fastboot boot command is not available.\n");
-		return;
+		goto boot_failed;
 	}
 #endif /* MDTP_SUPPORT */
 
@@ -2324,7 +2329,7 @@
 		check_aboot_addr_range_overlap(hdr->ramdisk_addr, ramdisk_actual))
 	{
 		dprintf(CRITICAL, "kernel/ramdisk addresses overlap with aboot addresses.\n");
-		return;
+		goto boot_failed;
 	}
 
 #if DEVICE_TREE
@@ -2337,7 +2342,7 @@
 	if (check_aboot_addr_range_overlap(hdr->tags_addr, MAX_TAGS_SIZE))
 	{
 		dprintf(CRITICAL, "Tags addresses overlap with aboot addresses.\n");
-		return;
+		goto boot_failed;
 	}
 #endif
 
@@ -2349,7 +2354,7 @@
 	if (check_aboot_addr_range_overlap(hdr->tags_addr, kernel_actual))
 	{
 		dprintf(CRITICAL, "Tags addresses overlap with aboot addresses.\n");
-		return;
+		goto boot_failed;
 	}
 
 	/*
@@ -2365,7 +2370,7 @@
 					(void *)hdr->tags_addr);
 		if (!dtb) {
 			fastboot_fail("dtb not found");
-			return;
+			goto boot_failed;
 		}
 	}
 #endif
@@ -2376,6 +2381,15 @@
 	boot_linux((void*) hdr->kernel_addr, (void*) hdr->tags_addr,
 		   (const char*) hdr->cmdline, board_machtype(),
 		   (void*) hdr->ramdisk_addr, hdr->ramdisk_size);
+
+	/* fastboot already stop, it's no need to show fastboot menu */
+	return;
+boot_failed:
+#if FBCON_DISPLAY_MSG
+	/* revert to fastboot menu if boot failed */
+	display_fastboot_menu();
+#endif
+	return;
 }
 
 void cmd_erase_nand(const char *arg, void *data, unsigned sz)
diff --git a/dev/gcdb/display/include/panel_sharp_wqxga_dualdsi_video.h b/dev/gcdb/display/include/panel_sharp_wqxga_dualdsi_video.h
index f317ed3..eb56bbf 100644
--- a/dev/gcdb/display/include/panel_sharp_wqxga_dualdsi_video.h
+++ b/dev/gcdb/display/include/panel_sharp_wqxga_dualdsi_video.h
@@ -163,7 +163,7 @@
 /* Dynamic fps supported frequencies by panel                                */
 /*---------------------------------------------------------------------------*/
 static const struct dfps_panel_info sharp_wqxga_dualdsi_video_dfps = {
-	1, 8, {53, 54, 55, 56, 57, 58, 59, 60}
+	1, 9, {48, 53, 54, 55, 56, 57, 58, 59, 60}
 };
 
 /* 2LM + 2CTL */
diff --git a/dev/gcdb/display/include/panel_truly_720p_cmd.h b/dev/gcdb/display/include/panel_truly_720p_cmd.h
index 3fcc9cb..231f041 100644
--- a/dev/gcdb/display/include/panel_truly_720p_cmd.h
+++ b/dev/gcdb/display/include/panel_truly_720p_cmd.h
@@ -78,8 +78,8 @@
 
 static char truly_720p_cmd_on_cmd4[] = {
 0x06, 0x00, 0x29, 0xc0,
-0xbd, 0x02, 0xb0, 0x1e,
-0x1e, 0x00, 0xff, 0xff, };
+0xbd, 0x02, 0x67, 0x20,
+0x20, 0x00, 0xff, 0xff, };
 
 static char truly_720p_cmd_on_cmd5[] = {
 0x0b, 0x00, 0x29, 0xc0,