Re: [PATCH 4/4] drm/panel: ilitek-ili9881c: do a soft reset in unprepare callback
From: Neil Armstrong
Date: Mon Nov 02 2026 - 08:11:58 EST
On 10/30/26 06:44, Icenowy Zheng wrote:
In case of neither reset pin nor switchable power supply is available,
the LCD module could be DC polarized (which is harmful) when the MIPI
DSI host is shut down.
It seems that do a soft reset for the LCD controller could stop the LCD
controller from biasing the liquid crystal, thus preventing the harm.
Add a soft reset after putting the LCD controller into sleep mode.
Tested on a Sipeed Lichee Console 4A, which has no LCD reset pin, and
the LCD supply is an always-on one.
Signed-off-by: Icenowy Zheng <zhengxingda@xxxxxxxxxxx>
---
drivers/gpu/drm/panel/panel-ilitek-ili9881c.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
index 83148c40e25ca..8b874c6f7d37c 100644
--- a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
+++ b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
@@ -2493,6 +2493,10 @@ static int ili9881c_unprepare(struct drm_panel *panel)
mipi_dsi_dcs_set_display_off_multi(&mctx);
mipi_dsi_dcs_enter_sleep_mode_multi(&mctx);
+ mipi_dsi_msleep(&mctx, 120);
+ mipi_dsi_dcs_soft_reset_multi(&mctx);
+ mipi_dsi_msleep(&mctx, 5);
+
regulator_disable(ctx->power);
if (ctx->iovcc)
regulator_disable(ctx->iovcc);
Reviewed-by: Neil Armstrong <neil.armstrong@xxxxxxxxxx>
Thanks,
Neil