]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/panel-elida-kd35t133: hold panel in reset for unprepare
authorChris Morgan <macromorgan@hotmail.com>
Fri, 17 Nov 2023 19:44:02 +0000 (13:44 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Jan 2024 22:52:41 +0000 (14:52 -0800)
[ Upstream commit 03c5b2a5f6c39fe4e090346536cf1c14ee18b61e ]

For devices like the Anbernic RG351M and RG351P the panel is wired to
an always on regulator. When the device suspends and wakes up, there
are some slight artifacts on the screen that go away over time. If
instead we hold the panel in reset status after it is unprepared,
this does not happen.

Fixes: 5b6603360c12 ("drm/panel: add panel driver for Elida KD35T133 panels")
Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
Reviewed-by: Jessica Zhang <quic_jesszhan@quicinc.com>
Link: https://lore.kernel.org/r/20231117194405.1386265-3-macroalpha82@gmail.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20231117194405.1386265-3-macroalpha82@gmail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/panel/panel-elida-kd35t133.c

index 80227617a4d6e4392409c127edd800d2ee12411b..ccb7d521f30aeabc8da2cdde1cc9a98e11c6a4e7 100644 (file)
@@ -112,6 +112,8 @@ static int kd35t133_unprepare(struct drm_panel *panel)
                return ret;
        }
 
+       gpiod_set_value_cansleep(ctx->reset_gpio, 1);
+
        regulator_disable(ctx->iovcc);
        regulator_disable(ctx->vdd);