mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-27 16:49:22 -04:00
drm/panel: himax-hx8394: simplify hx8394_enable()
Simplify hx8394_enable() function by using hx8394_disable() instead of open-coding it and mipi_dsi_msleep() instead of manual checks. Reviewed-by: Linus Walleij <linusw@kernel.org> Reviewed-by: Javier Martinez Canillas <javierm@redhat.com> Link: https://patch.msgid.link/20260413-waveshare-dsi-touch-v3-9-3aeb53022c32@oss.qualcomm.com Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
This commit is contained in:
@@ -618,39 +618,6 @@ static const struct hx8394_panel_desc hl055fhav028c_desc = {
|
||||
.init_sequence = hl055fhav028c_init_sequence,
|
||||
};
|
||||
|
||||
static int hx8394_enable(struct drm_panel *panel)
|
||||
{
|
||||
struct hx8394 *ctx = panel_to_hx8394(panel);
|
||||
struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
|
||||
struct mipi_dsi_multi_context dsi_ctx = { .dsi = dsi };
|
||||
int ret;
|
||||
|
||||
ctx->desc->init_sequence(&dsi_ctx);
|
||||
|
||||
mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
|
||||
|
||||
if (dsi_ctx.accum_err)
|
||||
return dsi_ctx.accum_err;
|
||||
/* Panel is operational 120 msec after reset */
|
||||
msleep(120);
|
||||
|
||||
mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
|
||||
if (dsi_ctx.accum_err)
|
||||
goto sleep_in;
|
||||
|
||||
return 0;
|
||||
|
||||
sleep_in:
|
||||
ret = dsi_ctx.accum_err;
|
||||
dsi_ctx.accum_err = 0;
|
||||
|
||||
/* This will probably fail, but let's try orderly power off anyway. */
|
||||
mipi_dsi_dcs_enter_sleep_mode_multi(&dsi_ctx);
|
||||
mipi_dsi_msleep(&dsi_ctx, 50);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int hx8394_disable(struct drm_panel *panel)
|
||||
{
|
||||
struct hx8394 *ctx = panel_to_hx8394(panel);
|
||||
@@ -663,6 +630,26 @@ static int hx8394_disable(struct drm_panel *panel)
|
||||
return dsi_ctx.accum_err;
|
||||
}
|
||||
|
||||
static int hx8394_enable(struct drm_panel *panel)
|
||||
{
|
||||
struct hx8394 *ctx = panel_to_hx8394(panel);
|
||||
struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
|
||||
struct mipi_dsi_multi_context dsi_ctx = { .dsi = dsi };
|
||||
|
||||
ctx->desc->init_sequence(&dsi_ctx);
|
||||
|
||||
mipi_dsi_dcs_exit_sleep_mode_multi(&dsi_ctx);
|
||||
|
||||
/* Panel is operational 120 msec after reset */
|
||||
mipi_dsi_msleep(&dsi_ctx, 120);
|
||||
|
||||
mipi_dsi_dcs_set_display_on_multi(&dsi_ctx);
|
||||
if (dsi_ctx.accum_err)
|
||||
hx8394_disable(panel);
|
||||
|
||||
return dsi_ctx.accum_err;
|
||||
}
|
||||
|
||||
static int hx8394_unprepare(struct drm_panel *panel)
|
||||
{
|
||||
struct hx8394 *ctx = panel_to_hx8394(panel);
|
||||
|
||||
Reference in New Issue
Block a user