[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250719-ums9230-drm-v1-10-e4344a05eb3d@abscue.de>
Date: Sat, 19 Jul 2025 14:09:46 +0200
From: Otto Pflüger <otto.pflueger@...cue.de>
To: David Airlie <airlied@...il.com>, Simona Vetter <simona@...ll.ch>,
Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
Maxime Ripard <mripard@...nel.org>, Thomas Zimmermann <tzimmermann@...e.de>,
Rob Herring <robh@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, Orson Zhai <orsonzhai@...il.com>,
Baolin Wang <baolin.wang@...ux.alibaba.com>,
Chunyan Zhang <zhang.lyra@...il.com>, Kevin Tang <kevin.tang@...soc.com>
Cc: dri-devel@...ts.freedesktop.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org,
Otto Pflüger <otto.pflueger@...cue.de>
Subject: [PATCH 10/12] drm: sprd: always initialize DPU and DSI registers
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.pflueger@...cue.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
Powered by blists - more mailing lists