Merge "target: msm8952: turn off vibrator before jump to kernel" into lk.lnx.1.0-dev.1.0
diff --git a/dev/gcdb/display/include/panel_r69006_1080p_cmd.h b/dev/gcdb/display/include/panel_r69006_1080p_cmd.h
index 01c8d17..06f6a36 100755
--- a/dev/gcdb/display/include/panel_r69006_1080p_cmd.h
+++ b/dev/gcdb/display/include/panel_r69006_1080p_cmd.h
@@ -357,6 +357,14 @@
0x6E, 0x3F, 0x36, 0x00, 0x5A, 0x4F, 0x38, 0x41, 0x54, 0x03, 0x04, 0x00
};
+static const uint32_t r69006_1080p_14nm_cmd_timings[] = {
+ 0x24, 0x1f, 0x08, 0x09, 0x05, 0x03, 0x04, 0xa0,
+ 0x24, 0x1f, 0x08, 0x09, 0x05, 0x03, 0x04, 0xa0,
+ 0x24, 0x1f, 0x08, 0x09, 0x05, 0x03, 0x04, 0xa0,
+ 0x24, 0x1f, 0x08, 0x09, 0x05, 0x03, 0x04, 0xa0,
+ 0x24, 0x1b, 0x08, 0x09, 0x05, 0x03, 0x04, 0xa0,
+};
+
static struct panel_timing r69006_1080p_cmd_timing_info = {
0, 4, 0x20, 0x2c
};
diff --git a/dev/gcdb/display/include/panel_r69006_1080p_video.h b/dev/gcdb/display/include/panel_r69006_1080p_video.h
index 82be298..d2beedb 100755
--- a/dev/gcdb/display/include/panel_r69006_1080p_video.h
+++ b/dev/gcdb/display/include/panel_r69006_1080p_video.h
@@ -296,6 +296,14 @@
0x7d, 0x25, 0x1d, 0x00, 0x37, 0x33, 0x22, 0x27, 0x1e, 0x03, 0x04, 0x00
};
+static const uint32_t r69006_1080p_14nm_video_timings[] = {
+ 0x24, 0x1f, 0x08, 0x09, 0x05, 0x03, 0x04, 0xa0,
+ 0x24, 0x1f, 0x08, 0x09, 0x05, 0x03, 0x04, 0xa0,
+ 0x24, 0x1f, 0x08, 0x09, 0x05, 0x03, 0x04, 0xa0,
+ 0x24, 0x1f, 0x08, 0x09, 0x05, 0x03, 0x04, 0xa0,
+ 0x24, 0x1b, 0x08, 0x09, 0x05, 0x03, 0x04, 0xa0,
+};
+
static struct panel_timing r69006_1080p_video_timing_info = {
0, 4, 0x20, 0x2c
};
diff --git a/target/msmtitanium/oem_panel.c b/target/msmtitanium/oem_panel.c
index 2f38db6..1d5ebb1 100644
--- a/target/msmtitanium/oem_panel.c
+++ b/target/msmtitanium/oem_panel.c
@@ -47,6 +47,9 @@
/*---------------------------------------------------------------------------*/
#include "include/panel_truly_1080p_video.h"
#include "include/panel_truly_1080p_cmd.h"
+#include "include/panel_r69006_1080p_video.h"
+#include "include/panel_r69006_1080p_cmd.h"
+
/*---------------------------------------------------------------------------*/
/* static panel selection variable */
@@ -54,6 +57,8 @@
enum {
TRULY_1080P_VIDEO_PANEL,
TRULY_1080P_CMD_PANEL,
+ R69006_1080P_VIDEO_PANEL,
+ R69006_1080P_CMD_PANEL,
UNKNOWN_PANEL
};
@@ -64,6 +69,8 @@
static struct panel_list supp_panels[] = {
{"truly_1080p_video", TRULY_1080P_VIDEO_PANEL},
{"truly_1080p_cmd", TRULY_1080P_CMD_PANEL},
+ {"r69006_1080p_video", R69006_1080P_VIDEO_PANEL},
+ {"r69006_1080p_cmd", R69006_1080P_CMD_PANEL},
};
static uint32_t panel_id;
@@ -79,6 +86,9 @@
if (panel_id == TRULY_1080P_CMD_PANEL ||
panel_id == TRULY_1080P_VIDEO_PANEL)
mdelay(TRULY_1080P_PANEL_ON_DELAY);
+ else if (panel_id == R69006_1080P_CMD_PANEL) {
+ mdelay(R69006_1080P_CMD_PANEL_ON_DELAY);
+ }
return NO_ERROR;
}
@@ -153,6 +163,62 @@
MAX_TIMING_CONFIG * sizeof(uint32_t));
pinfo->mipi.signature = TRULY_1080P_CMD_SIGNATURE;
break;
+ case R69006_1080P_VIDEO_PANEL:
+ panelstruct->paneldata = &r69006_1080p_video_panel_data;
+ panelstruct->panelres = &r69006_1080p_video_panel_res;
+ panelstruct->color = &r69006_1080p_video_color;
+ panelstruct->videopanel = &r69006_1080p_video_video_panel;
+ panelstruct->commandpanel = &r69006_1080p_video_command_panel;
+ panelstruct->state = &r69006_1080p_video_state;
+ panelstruct->laneconfig = &r69006_1080p_video_lane_config;
+ panelstruct->paneltiminginfo
+ = &r69006_1080p_video_timing_info;
+ panelstruct->panelresetseq
+ = &r69006_1080p_video_reset_seq;
+ panelstruct->backlightinfo = &r69006_1080p_video_backlight;
+ pinfo->labibb = &r69006_1080p_video_labibb;
+ pinfo->mipi.panel_on_cmds
+ = r69006_1080p_video_on_command;
+ pinfo->mipi.num_of_panel_on_cmds
+ = R69006_1080P_VIDEO_ON_COMMAND;
+ pinfo->mipi.panel_off_cmds
+ = r69006_1080p_video_off_command;
+ pinfo->mipi.num_of_panel_off_cmds
+ = R69006_1080P_VIDEO_OFF_COMMAND;
+ memcpy(phy_db->timing,
+ r69006_1080p_14nm_video_timings,
+ MAX_TIMING_CONFIG * sizeof(uint32_t));
+ pinfo->mipi.signature = R69006_1080P_VIDEO_SIGNATURE;
+ break;
+ case R69006_1080P_CMD_PANEL:
+ panelstruct->paneldata = &r69006_1080p_cmd_panel_data;
+ panelstruct->panelres = &r69006_1080p_cmd_panel_res;
+ panelstruct->color = &r69006_1080p_cmd_color;
+ panelstruct->videopanel = &r69006_1080p_cmd_video_panel;
+ panelstruct->commandpanel = &r69006_1080p_cmd_command_panel;
+ panelstruct->state = &r69006_1080p_cmd_state;
+ panelstruct->laneconfig = &r69006_1080p_cmd_lane_config;
+ panelstruct->paneltiminginfo
+ = &r69006_1080p_cmd_timing_info;
+ panelstruct->panelresetseq
+ = &r69006_1080p_cmd_reset_seq;
+ panelstruct->backlightinfo = &r69006_1080p_cmd_backlight;
+ pinfo->labibb = &r69006_1080p_cmd_labibb;
+ pinfo->mipi.panel_on_cmds
+ = r69006_1080p_cmd_on_command;
+ pinfo->mipi.num_of_panel_on_cmds
+ = R69006_1080P_CMD_ON_COMMAND;
+ pinfo->mipi.panel_off_cmds
+ = r69006_1080p_cmd_off_command;
+ pinfo->mipi.num_of_panel_off_cmds
+ = R69006_1080P_CMD_OFF_COMMAND;
+ memcpy(phy_db->timing,
+ r69006_1080p_14nm_cmd_timings,
+ MAX_TIMING_CONFIG * sizeof(uint32_t));
+ pinfo->mipi.signature = R69006_1080P_CMD_SIGNATURE;
+ pinfo->mipi.tx_eot_append = true;
+ pinfo->mipi.rx_eot_ignore = true;
+ break;
case UNKNOWN_PANEL:
default:
memset(panelstruct, 0, sizeof(struct panel_struct));
@@ -208,6 +274,9 @@
case HW_PLATFORM_RCM:
panel_id = TRULY_1080P_VIDEO_PANEL;
break;
+ case HW_PLATFORM_QRD:
+ panel_id = R69006_1080P_CMD_PANEL;
+ break;
default:
dprintf(CRITICAL, "Display not enabled for %d HW type\n",
hw_id);