When the Unisoc DRM driver is initialized for the first time to display an image on the screen, reinitialize the display properly instead of relying on the bootloader.
Signed-off-by: Otto Pflüger <otto.pflue...@abscue.de> --- drivers/gpu/drm/sprd/sprd_dpu.c | 8 ++++++++ drivers/gpu/drm/sprd/sprd_dsi.c | 1 - 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/sprd/sprd_dpu.c b/drivers/gpu/drm/sprd/sprd_dpu.c index 978d4947e1bc5cd5b13b1f25719268fa08b77297..b946d015133db44d2d3d0b18803ed887b2b7ae2e 100644 --- a/drivers/gpu/drm/sprd/sprd_dpu.c +++ b/drivers/gpu/drm/sprd/sprd_dpu.c @@ -456,6 +456,14 @@ static void sprd_dpu_init(struct sprd_dpu *dpu) } writel(int_mask, ctx->base + REG_DPU_INT_EN); + + /* + * The DPU is usually enabled by the bootloader to show + * a splash screen. Stop it here when the kernel initializes + * the display. + */ + if (!ctx->stopped) + sprd_dpu_stop(dpu); } static void sprd_dpu_fini(struct sprd_dpu *dpu) diff --git a/drivers/gpu/drm/sprd/sprd_dsi.c b/drivers/gpu/drm/sprd/sprd_dsi.c index 2af4273a6c73185084290c9d14b8ac18914d514b..7186d11bbdc753f52aba18995f4863b572f4fecb 100644 --- a/drivers/gpu/drm/sprd/sprd_dsi.c +++ b/drivers/gpu/drm/sprd/sprd_dsi.c @@ -954,7 +954,6 @@ static int sprd_dsi_context_init(struct sprd_dsi *dsi, ctx->max_rd_time = 6000; ctx->int0_mask = 0xffffffff; ctx->int1_mask = 0xffffffff; - ctx->enabled = true; return 0; } -- 2.50.0