diff options
author | Animesh Kishore <ankishore@nvidia.com> | 2013-12-27 06:38:25 -0500 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2015-03-18 15:08:02 -0400 |
commit | bc62b9992ddfb833fef39d85531c9e49dc914bfc (patch) | |
tree | f2fae95d3a88e603ca66d8712eac64cb24f255c1 /drivers/video/tegra/dc/dsi.c | |
parent | 88e519a684a47fee5b01ebf666a8598baa85d8ee (diff) |
video: tegra: dc: Enable TE when user seeks vsync
TE is vsync for one-shot. Enable it when userspace
is waiting on vsync.
Bug 1422639
Change-Id: Icc2bff2a906a3e79cce1e033b85263a579dd1889
Signed-off-by: Animesh Kishore <ankishore@nvidia.com>
Reviewed-on: http://git-master/r/350146
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
Diffstat (limited to 'drivers/video/tegra/dc/dsi.c')
-rw-r--r-- | drivers/video/tegra/dc/dsi.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/video/tegra/dc/dsi.c b/drivers/video/tegra/dc/dsi.c index 041c2e357..f965fe54d 100644 --- a/drivers/video/tegra/dc/dsi.c +++ b/drivers/video/tegra/dc/dsi.c | |||
@@ -3092,6 +3092,7 @@ static int tegra_dsi_send_panel_cmd(struct tegra_dc *dc, | |||
3092 | struct tegra_dsi_cmd *cmd, | 3092 | struct tegra_dsi_cmd *cmd, |
3093 | u32 n_cmd) | 3093 | u32 n_cmd) |
3094 | { | 3094 | { |
3095 | #define DEFAULT_DELAY_MS 1 | ||
3095 | u32 i; | 3096 | u32 i; |
3096 | int err; | 3097 | int err; |
3097 | u8 delay_ms; | 3098 | u8 delay_ms; |
@@ -3118,8 +3119,7 @@ static int tegra_dsi_send_panel_cmd(struct tegra_dc *dc, | |||
3118 | tegra_dsi_start_host_cmd_v_blank_video(dsi, cur_cmd); | 3119 | tegra_dsi_start_host_cmd_v_blank_video(dsi, cur_cmd); |
3119 | tegra_dsi_end_host_cmd_v_blank_video(dc, dsi); | 3120 | tegra_dsi_end_host_cmd_v_blank_video(dc, dsi); |
3120 | } else { | 3121 | } else { |
3121 | /* default delay 1ms after command */ | 3122 | delay_ms = DEFAULT_DELAY_MS; |
3122 | delay_ms = 1; | ||
3123 | if ((i + 1 < n_cmd) && | 3123 | if ((i + 1 < n_cmd) && |
3124 | (cmd[i + 1].cmd_type == TEGRA_DSI_DELAY_MS)) { | 3124 | (cmd[i + 1].cmd_type == TEGRA_DSI_DELAY_MS)) { |
3125 | delay_ms = cmd[i + 1].sp_len_dly.delay_ms; | 3125 | delay_ms = cmd[i + 1].sp_len_dly.delay_ms; |
@@ -3132,6 +3132,7 @@ static int tegra_dsi_send_panel_cmd(struct tegra_dc *dc, | |||
3132 | } | 3132 | } |
3133 | } | 3133 | } |
3134 | return err; | 3134 | return err; |
3135 | #undef DEFAULT_DELAY_MS | ||
3135 | } | 3136 | } |
3136 | 3137 | ||
3137 | static u8 tegra_dsi_ecc(u32 header) | 3138 | static u8 tegra_dsi_ecc(u32 header) |
@@ -4376,11 +4377,13 @@ static int tegra_dsi_te_on_off(struct tegra_dc_dsi_data *dsi, bool flag) | |||
4376 | struct tegra_dsi_cmd te_enable[] = { | 4377 | struct tegra_dsi_cmd te_enable[] = { |
4377 | DSI_CMD_SHORT(DSI_DCS_WRITE_0_PARAM, | 4378 | DSI_CMD_SHORT(DSI_DCS_WRITE_0_PARAM, |
4378 | DSI_DCS_SET_TEARING_EFFECT_ON, 0x0), | 4379 | DSI_DCS_SET_TEARING_EFFECT_ON, 0x0), |
4380 | DSI_DLY_MS(0), | ||
4379 | }; | 4381 | }; |
4380 | 4382 | ||
4381 | struct tegra_dsi_cmd te_disable[] = { | 4383 | struct tegra_dsi_cmd te_disable[] = { |
4382 | DSI_CMD_SHORT(DSI_DCS_WRITE_0_PARAM, | 4384 | DSI_CMD_SHORT(DSI_DCS_WRITE_0_PARAM, |
4383 | DSI_DCS_SET_TEARING_EFFECT_OFF, 0x0), | 4385 | DSI_DCS_SET_TEARING_EFFECT_OFF, 0x0), |
4386 | DSI_DLY_MS(0), | ||
4384 | }; | 4387 | }; |
4385 | 4388 | ||
4386 | if (flag) | 4389 | if (flag) |