disp: msm: sde: set watchdog TE when panel fails ESD check

In the event of panel dead scenario, it is possible to receive a
mode set call before the panel has recovered. When this happens,
display should select watchdog TE as the vsync source.

Similarly when detecting a write pointer timeout, if the panel is
dead then watchdog TE should be or has already been configured and
display should not make a change to this vsync selection.

Change-Id: I732c75e54d734b00889151b914b0749ae1f27d08
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
This commit is contained in:
Samantha Tran
2021-06-03 22:06:37 -07:00
parent 087fdfd66f
commit 11f2efbe16
2 changed files with 12 additions and 3 deletions

View File

@@ -1315,6 +1315,7 @@ static void _sde_encoder_update_vsync_source(struct sde_encoder_virt *sde_enc,
struct msm_display_info *disp_info)
{
struct sde_encoder_phys *phys;
struct sde_connector *sde_conn;
int i;
u32 vsync_source;
@@ -1329,8 +1330,10 @@ static void _sde_encoder_update_vsync_source(struct sde_encoder_virt *sde_enc,
return;
}
sde_conn = to_sde_connector(sde_enc->cur_master->connector);
if (sde_encoder_check_curr_mode(&sde_enc->base, MSM_DISPLAY_CMD_MODE)) {
if (disp_info->is_te_using_watchdog_timer)
if (disp_info->is_te_using_watchdog_timer || sde_conn->panel_dead)
vsync_source = SDE_VSYNC_SOURCE_WD_TIMER_4 + sde_enc->te_source;
else
vsync_source = sde_enc->te_source;