|
@@ -1115,7 +1115,7 @@ static int exynos_dsi_enable(struct exynos_dsi *dsi)
|
|
|
if (ret < 0)
|
|
|
return ret;
|
|
|
|
|
|
- ret = drm_panel_enable(dsi->panel);
|
|
|
+ ret = drm_panel_prepare(dsi->panel);
|
|
|
if (ret < 0) {
|
|
|
exynos_dsi_poweroff(dsi);
|
|
|
return ret;
|
|
@@ -1124,6 +1124,14 @@ static int exynos_dsi_enable(struct exynos_dsi *dsi)
|
|
|
exynos_dsi_set_display_mode(dsi);
|
|
|
exynos_dsi_set_display_enable(dsi, true);
|
|
|
|
|
|
+ ret = drm_panel_enable(dsi->panel);
|
|
|
+ if (ret < 0) {
|
|
|
+ exynos_dsi_set_display_enable(dsi, false);
|
|
|
+ drm_panel_unprepare(dsi->panel);
|
|
|
+ exynos_dsi_poweroff(dsi);
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
+
|
|
|
dsi->state |= DSIM_STATE_ENABLED;
|
|
|
|
|
|
return 0;
|
|
@@ -1134,8 +1142,9 @@ static void exynos_dsi_disable(struct exynos_dsi *dsi)
|
|
|
if (!(dsi->state & DSIM_STATE_ENABLED))
|
|
|
return;
|
|
|
|
|
|
- exynos_dsi_set_display_enable(dsi, false);
|
|
|
drm_panel_disable(dsi->panel);
|
|
|
+ exynos_dsi_set_display_enable(dsi, false);
|
|
|
+ drm_panel_unprepare(dsi->panel);
|
|
|
exynos_dsi_poweroff(dsi);
|
|
|
|
|
|
dsi->state &= ~DSIM_STATE_ENABLED;
|