From 9652f27293f8bbfbbc11f9171e927a08b19d3b0a Mon Sep 17 00:00:00 2001 From: Dhaval Patel Date: Fri, 27 Dec 2019 11:53:56 -0800 Subject: [PATCH] disp: msm: avoid esd check during pm_suspend state Avoid esd check during pm_suspend state because core clock enable will fail. This change adds additional check and also adds the clock enable failure check. Change-Id: Ie8bfa4f74d323ff15a07fb037675f07ab942f016 Signed-off-by: Dhaval Patel Signed-off-by: Satya Rama Aditya Pinapala --- msm/dsi/dsi_display.c | 6 ++++-- msm/sde/sde_connector.c | 5 ++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/msm/dsi/dsi_display.c b/msm/dsi/dsi_display.c index 5434bf83379e..daa0c20a9a81 100644 --- a/msm/dsi/dsi_display.c +++ b/msm/dsi/dsi_display.c @@ -801,7 +801,7 @@ int dsi_display_check_status(struct drm_connector *connector, void *display, struct dsi_display *dsi_display = display; struct dsi_panel *panel; u32 status_mode; - int rc = 0x1; + int rc = 0x1, ret; u32 mask; if (!dsi_display || !dsi_display->panel) @@ -839,8 +839,10 @@ int dsi_display_check_status(struct drm_connector *connector, void *display, goto exit; } - dsi_display_clk_ctrl(dsi_display->dsi_clk_handle, + ret = dsi_display_clk_ctrl(dsi_display->dsi_clk_handle, DSI_ALL_CLKS, DSI_CLK_ON); + if (ret) + goto release_panel_lock; /* Mask error interrupts before attempting ESD read */ mask = BIT(DSI_FIFO_OVERFLOW) | BIT(DSI_FIFO_UNDERFLOW); diff --git a/msm/sde/sde_connector.c b/msm/sde/sde_connector.c index 92e63651edfc..240381582ee6 100644 --- a/msm/sde/sde_connector.c +++ b/msm/sde/sde_connector.c @@ -2167,6 +2167,7 @@ static void sde_connector_check_status_work(struct work_struct *work) { struct sde_connector *conn; int rc = 0; + struct device *dev; conn = container_of(to_delayed_work(work), struct sde_connector, status_work); @@ -2176,7 +2177,9 @@ static void sde_connector_check_status_work(struct work_struct *work) } mutex_lock(&conn->lock); - if (!conn->ops.check_status || + dev = conn->base.dev->dev; + + if (!conn->ops.check_status || dev->power.is_suspended || (conn->dpms_mode != DRM_MODE_DPMS_ON)) { SDE_DEBUG("dpms mode: %d\n", conn->dpms_mode); mutex_unlock(&conn->lock);