From 9e5185ad698f9bf09632508a227d93f7c885d649 Mon Sep 17 00:00:00 2001 From: Kashish Jain Date: Wed, 2 Mar 2022 15:24:41 +0530 Subject: [PATCH] disp: msm: dsi: handle panel detection after a pp done timeout It has been observed that TE check may fail even if status read is passing. Panel detection should be successful only if both TE check and register read (if supported) pass. Change-Id: I8d2c5d4139561fe533fc148124b7dde54b63c24e Signed-off-by: Kashish Jain --- msm/dsi/dsi_display.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/msm/dsi/dsi_display.c b/msm/dsi/dsi_display.c index e6c03fc7f6c0..de15e02389a8 100644 --- a/msm/dsi/dsi_display.c +++ b/msm/dsi/dsi_display.c @@ -885,16 +885,17 @@ int dsi_display_check_status(struct drm_connector *connector, void *display, panel->esd_config.esd_enabled = false; } - if (rc <= 0 && te_check_override) + /* + * TE check may fail even if status read is passing. In case of + * te_check_override, check the status both from reg read and TE. + */ + if (rc > 0 && te_check_override) rc = dsi_display_status_check_te(dsi_display, te_rechecks); /* Unmask error interrupts if check passed*/ if (rc > 0) { dsi_display_set_ctrl_esd_check_flag(dsi_display, false); dsi_display_mask_ctrl_error_interrupts(dsi_display, mask, false); - if (te_check_override && panel->esd_config.esd_enabled == false) - rc = dsi_display_status_check_te(dsi_display, - te_rechecks); } dsi_display_clk_ctrl(dsi_display->dsi_clk_handle,