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)
committerNeil Armstrong <neil.armstrong@linaro.org>
Mon, 20 Nov 2023 08:35:07 +0000 (09:35 +0100)
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
drivers/gpu/drm/panel/panel-elida-kd35t133.c

index 6cd8536c09ffd63c62b318a480e8e87ce7565fbf..f1fc4a26f44762f04d983f865808211a4da357da 100644 (file)
@@ -104,6 +104,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);