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 01906243a93e3306fbce5bf617838b517822a2b6..be7758ef445b1b87b8ce6bd2001a15fa0f24f4d3 100644 --- a/drivers/gpu/drm/sprd/sprd_dpu.c +++ b/drivers/gpu/drm/sprd/sprd_dpu.c @@ -458,6 +458,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 e781e6c84860402f37352e768244d88ca6ffd4c9..dd9e3179cef985ec39155994c122a6288ac4b2f8 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