target: msm8916: support splash screen for SKUHF

Enable the otm1283a 720p video panel on MSM8916 SKUHF devices.

Change-Id: If5d8d07afd4addfde5eb57a7161e7651c43ea121
diff --git a/target/msm8916/oem_panel.c b/target/msm8916/oem_panel.c
index 43e98e1..b5f2e01 100644
--- a/target/msm8916/oem_panel.c
+++ b/target/msm8916/oem_panel.c
@@ -46,6 +46,7 @@
 #include "include/panel_nt35590_720p_cmd.h"
 #include "include/panel_innolux_720p_video.h"
 #include "include/panel_otm8019a_fwvga_video.h"
+#include "include/panel_otm1283a_720p_video.h"
 
 #define DISPLAY_MAX_PANEL_DETECTION 2
 #define OTM8019A_FWVGA_VIDEO_PANEL_ON_DELAY 50
@@ -61,6 +62,7 @@
 NT35590_720P_CMD_PANEL,
 INNOLUX_720P_VIDEO_PANEL,
 OTM8019A_FWVGA_VIDEO_PANEL,
+OTM1283A_720P_VIDEO_PANEL,
 UNKNOWN_PANEL
 };
 
@@ -74,6 +76,7 @@
 	{"nt35590_720p_cmd", NT35590_720P_CMD_PANEL},
 	{"innolux_720p_video", INNOLUX_720P_VIDEO_PANEL},
 	{"otm8019a_fwvga_video", OTM8019A_FWVGA_VIDEO_PANEL},
+	{"otm1283a_720p_video", OTM1283A_720P_VIDEO_PANEL},
 };
 
 static uint32_t panel_id;
@@ -184,38 +187,57 @@
 		panelstruct->state        = &innolux_720p_video_state;
 		panelstruct->laneconfig   = &innolux_720p_video_lane_config;
 		panelstruct->paneltiminginfo
-			= &innolux_720p_video_timing_info;
+					= &innolux_720p_video_timing_info;
 		panelstruct->panelresetseq
-					 = &innolux_720p_video_reset_seq;
+					= &innolux_720p_video_reset_seq;
 		panelstruct->backlightinfo = &innolux_720p_video_backlight;
 		pinfo->mipi.panel_cmds
-			= innolux_720p_video_on_command;
+					= innolux_720p_video_on_command;
 		pinfo->mipi.num_of_panel_cmds
-		= INNOLUX_720P_VIDEO_ON_COMMAND;
+					= INNOLUX_720P_VIDEO_ON_COMMAND;
 		memcpy(phy_db->timing,
-			innolux_720p_video_timings, TIMING_SIZE);
+				innolux_720p_video_timings, TIMING_SIZE);
 		break;
 	case OTM8019A_FWVGA_VIDEO_PANEL:
-                panelstruct->paneldata    = &otm8019a_fwvga_video_panel_data;
-                panelstruct->panelres     = &otm8019a_fwvga_video_panel_res;
-                panelstruct->color        = &otm8019a_fwvga_video_color;
-                panelstruct->videopanel   = &otm8019a_fwvga_video_video_panel;
-                panelstruct->commandpanel = &otm8019a_fwvga_video_command_panel;
-                panelstruct->state        = &otm8019a_fwvga_video_state;
-                panelstruct->laneconfig   = &otm8019a_fwvga_video_lane_config;
-                panelstruct->paneltiminginfo
-                        = &otm8019a_fwvga_video_timing_info;
-                panelstruct->panelresetseq
-                                         = &otm8019a_fwvga_video_reset_seq;
-                panelstruct->backlightinfo = &otm8019a_fwvga_video_backlight;
-                pinfo->mipi.panel_cmds
-                        = otm8019a_fwvga_video_on_command;
-                pinfo->mipi.num_of_panel_cmds
-                = OTM8019A_FWVGA_VIDEO_ON_COMMAND;
-                memcpy(phy_db->timing,
-                        otm8019a_fwvga_video_timings, TIMING_SIZE);
-                break;
-
+		panelstruct->paneldata    = &otm8019a_fwvga_video_panel_data;
+		panelstruct->panelres     = &otm8019a_fwvga_video_panel_res;
+		panelstruct->color        = &otm8019a_fwvga_video_color;
+		panelstruct->videopanel   = &otm8019a_fwvga_video_video_panel;
+		panelstruct->commandpanel = &otm8019a_fwvga_video_command_panel;
+		panelstruct->state        = &otm8019a_fwvga_video_state;
+		panelstruct->laneconfig   = &otm8019a_fwvga_video_lane_config;
+		panelstruct->paneltiminginfo
+					= &otm8019a_fwvga_video_timing_info;
+		panelstruct->panelresetseq
+					= &otm8019a_fwvga_video_reset_seq;
+		panelstruct->backlightinfo = &otm8019a_fwvga_video_backlight;
+		pinfo->mipi.panel_cmds
+					= otm8019a_fwvga_video_on_command;
+		pinfo->mipi.num_of_panel_cmds
+					= OTM8019A_FWVGA_VIDEO_ON_COMMAND;
+		memcpy(phy_db->timing,
+				otm8019a_fwvga_video_timings, TIMING_SIZE);
+		break;
+	case OTM1283A_720P_VIDEO_PANEL:
+		panelstruct->paneldata    = &otm1283a_720p_video_panel_data;
+		panelstruct->panelres     = &otm1283a_720p_video_panel_res;
+		panelstruct->color        = &otm1283a_720p_video_color;
+		panelstruct->videopanel   = &otm1283a_720p_video_video_panel;
+		panelstruct->commandpanel = &otm1283a_720p_video_command_panel;
+		panelstruct->state        = &otm1283a_720p_video_state;
+		panelstruct->laneconfig   = &otm1283a_720p_video_lane_config;
+		panelstruct->paneltiminginfo
+					= &otm1283a_720p_video_timing_info;
+		panelstruct->panelresetseq
+					= &otm1283a_720p_video_reset_seq;
+		panelstruct->backlightinfo = &otm1283a_720p_video_backlight;
+		pinfo->mipi.panel_cmds
+					= otm1283a_720p_video_on_command;
+		pinfo->mipi.num_of_panel_cmds
+					= OTM1283A_720P_VIDEO_ON_COMMAND;
+		memcpy(phy_db->timing,
+				otm1283a_720p_video_timings, TIMING_SIZE);
+		break;
 	case UNKNOWN_PANEL:
 	default:
 		memset(panelstruct, 0, sizeof(struct panel_struct));
@@ -242,6 +264,7 @@
 	uint32_t hw_subtype = board_hardware_subtype();
 	int32_t panel_override_id;
 	bool ret = true;
+	uint32_t target_id, plat_hw_ver_major;
 
 	if (panel_name) {
 		panel_override_id = panel_name_to_id(supp_panels,
@@ -284,7 +307,14 @@
 	case HW_PLATFORM_QRD:
 		switch (hw_subtype) {
 		case HW_PLATFORM_SUBTYPE_SKUH:
-			panel_id = INNOLUX_720P_VIDEO_PANEL;
+			target_id = board_target_id();
+			plat_hw_ver_major = ((target_id >> 16) & 0xFF);
+
+			/* qrd fan-out hw ? */
+			if ((plat_hw_ver_major >> 4) == 0x1)
+				panel_id = OTM1283A_720P_VIDEO_PANEL;
+			else
+				panel_id = INNOLUX_720P_VIDEO_PANEL;
 			break;
 		case HW_PLATFORM_SUBTYPE_SKUI:
 			panel_id = OTM8019A_FWVGA_VIDEO_PANEL;