Merge "msm8960: Reduce scratch size to 300MB"
diff --git a/app/aboot/aboot.c b/app/aboot/aboot.c
index 10aac46..e3946ef 100644
--- a/app/aboot/aboot.c
+++ b/app/aboot/aboot.c
@@ -1249,6 +1249,10 @@
 	else
 	{
 		recovery_init();
+#if USE_PCOM_SECBOOT
+	if((device.is_unlocked) || (device.is_tampered))
+		set_tamper_flag(device.is_tampered);
+#endif
 		boot_linux_from_flash();
 	}
 	dprintf(CRITICAL, "ERROR: Could not do normal boot. Reverting "
diff --git a/dev/fbcon/fbcon.c b/dev/fbcon/fbcon.c
index 7aa8c62..9538e3a 100644
--- a/dev/fbcon/fbcon.c
+++ b/dev/fbcon/fbcon.c
@@ -211,13 +211,24 @@
 void display_image_on_screen(void)
 {
     unsigned i = 0;
-    unsigned total_x = config->width;
-    unsigned total_y = config->height;
-    unsigned bytes_per_bpp = ((config->bpp) / 8);
-    unsigned image_base = ((((total_y/2) - (SPLASH_IMAGE_WIDTH / 2) - 1) *
-			    (config->width)) + (total_x/2 - (SPLASH_IMAGE_HEIGHT / 2)));
+    unsigned total_x;
+    unsigned total_y;
+    unsigned bytes_per_bpp;
+    unsigned image_base;
+
+    if (!config) {
+       dprintf(CRITICAL,"NULL configuration, image cannot be displayed\n");
+       return;
+    }
+
     fbcon_clear();
 
+    total_x = config->width;
+    total_y = config->height;
+    bytes_per_bpp = ((config->bpp) / 8);
+    image_base = ((((total_y/2) - (SPLASH_IMAGE_WIDTH / 2) - 1) *
+		    (config->width)) + (total_x/2 - (SPLASH_IMAGE_HEIGHT / 2)));
+
 #if DISPLAY_TYPE_MIPI
     if (bytes_per_bpp == 3)
     {
diff --git a/platform/msm7x30/platform.c b/platform/msm7x30/platform.c
index 1b39264..527fc58 100755
--- a/platform/msm7x30/platform.c
+++ b/platform/msm7x30/platform.c
@@ -131,12 +131,14 @@
 #endif
 
 #if DISPLAY_TYPE_LCDC
-	struct lcdc_timing_parameters *lcd_timing;
-	mdp_lcdc_clock_init();
-	lcd_timing = get_lcd_timing();
-	fb_cfg = lcdc_init_set(lcd_timing);
-	panel_poweron();
-	fbcon_setup(fb_cfg);
+	if(!machine_is_ffa()) {
+		struct lcdc_timing_parameters *lcd_timing;
+		mdp_lcdc_clock_init();
+		lcd_timing = get_lcd_timing();
+		fb_cfg = lcdc_init_set(lcd_timing);
+		panel_poweron();
+		fbcon_setup(fb_cfg);
+	}
 #endif
 }
 
@@ -144,7 +146,9 @@
 {
 #if DISPLAY_TYPE_LCDC
 	/* Turning off LCDC */
-	lcdc_shutdown();
+	if(!machine_is_ffa()) {
+		lcdc_shutdown();
+	}
 #endif
 }
 
diff --git a/target/msm7630_surf/init.c b/target/msm7630_surf/init.c
index 6f06e18..eb0c525 100644
--- a/target/msm7630_surf/init.c
+++ b/target/msm7630_surf/init.c
@@ -427,3 +427,20 @@
 {
 	return platform_ce_type;
 }
+
+int machine_is_ffa()
+{
+	unsigned mach_type;
+	int ret = 0;
+
+	mach_type = board_machtype();
+	switch(mach_type) {
+	case LINUX_MACHTYPE_8x55_FFA:
+	case LINUX_MACHTYPE_7x30_FFA:
+		ret = 1;
+		break;
+	default:
+		ret = 0;
+	}
+	return ret;
+}