|
@@ -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);
|