aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/panel/panel-ilitek-ili9881c.c')
-rw-r--r--drivers/gpu/drm/panel/panel-ilitek-ili9881c.c31
1 files changed, 11 insertions, 20 deletions
diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
index ac433345a179..7ed65d6762d8 100644
--- a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
+++ b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
@@ -1486,7 +1486,7 @@ static int ili9881c_prepare(struct drm_panel *panel)
instr->arg.cmd.data);
if (ret)
- return ret;
+ goto disable_power;
}
ret = ili9881c_switch_page(ctx, 0);
@@ -1498,42 +1498,35 @@ static int ili9881c_prepare(struct drm_panel *panel)
&ctx->address_mode,
sizeof(ctx->address_mode));
if (ret < 0)
- return ret;
+ goto disable_power;
}
ret = mipi_dsi_dcs_set_tear_on(ctx->dsi, MIPI_DSI_DCS_TEAR_MODE_VBLANK);
if (ret)
- return ret;
+ goto disable_power;
ret = mipi_dsi_dcs_exit_sleep_mode(ctx->dsi);
if (ret)
- return ret;
-
- return 0;
-}
-
-static int ili9881c_enable(struct drm_panel *panel)
-{
- struct ili9881c *ctx = panel_to_ili9881c(panel);
+ goto disable_power;
msleep(120);
- mipi_dsi_dcs_set_display_on(ctx->dsi);
+ ret = mipi_dsi_dcs_set_display_on(ctx->dsi);
+ if (ret)
+ goto disable_power;
return 0;
-}
-static int ili9881c_disable(struct drm_panel *panel)
-{
- struct ili9881c *ctx = panel_to_ili9881c(panel);
-
- return mipi_dsi_dcs_set_display_off(ctx->dsi);
+disable_power:
+ regulator_disable(ctx->power);
+ return ret;
}
static int ili9881c_unprepare(struct drm_panel *panel)
{
struct ili9881c *ctx = panel_to_ili9881c(panel);
+ mipi_dsi_dcs_set_display_off(ctx->dsi);
mipi_dsi_dcs_enter_sleep_mode(ctx->dsi);
regulator_disable(ctx->power);
gpiod_set_value_cansleep(ctx->reset, 1);
@@ -1706,8 +1699,6 @@ static enum drm_panel_orientation ili9881c_get_orientation(struct drm_panel *pan
static const struct drm_panel_funcs ili9881c_funcs = {
.prepare = ili9881c_prepare,
.unprepare = ili9881c_unprepare,
- .enable = ili9881c_enable,
- .disable = ili9881c_disable,
.get_modes = ili9881c_get_modes,
.get_orientation = ili9881c_get_orientation,
};