Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/panel: panasonic-vvx10f034n00: Don't call disable at shutdown/remove

It's the responsibility of a correctly written DRM modeset driver to
call drm_atomic_helper_shutdown() at shutdown time and that should be
disabling / unpreparing the panel if needed. Panel drivers shouldn't
be calling these functions themselves.

A recent effort was made to fix as many DRM modeset drivers as
possible [1] [2] [3] and most drivers are fixed now.

Unfortunately, grepping mainline for this panel's compatible string
shows no hits, so we can't be 100% sure if the DRM modeset driver used
with this panel has been fixed. If it is found that the DRM modeset
driver hasn't been fixed then this patch could be temporarily reverted
until it is.

[1] https://lore.kernel.org/r/20230901234015.566018-1-dianders@chromium.org
[2] https://lore.kernel.org/r/20230901234202.566951-1-dianders@chromium.org
[3] https://lore.kernel.org/r/20230921192749.1542462-1-dianders@chromium.org

Cc: Werner Johansson <werner.johansson@sonymobile.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20240604172305.v3.14.I1562c864ee35a9c166765488c95104b7e4e562da@changeid
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240604172305.v3.14.I1562c864ee35a9c166765488c95104b7e4e562da@changeid

authored by

Douglas Anderson and committed by
Neil Armstrong
f10b4577 e9864996

-12
-12
drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
··· 222 222 struct wuxga_nt_panel *wuxga_nt = mipi_dsi_get_drvdata(dsi); 223 223 int ret; 224 224 225 - ret = drm_panel_disable(&wuxga_nt->base); 226 - if (ret < 0) 227 - dev_err(&dsi->dev, "failed to disable panel: %d\n", ret); 228 - 229 225 ret = mipi_dsi_detach(dsi); 230 226 if (ret < 0) 231 227 dev_err(&dsi->dev, "failed to detach from DSI host: %d\n", ret); 232 228 233 229 wuxga_nt_panel_del(wuxga_nt); 234 - } 235 - 236 - static void wuxga_nt_panel_shutdown(struct mipi_dsi_device *dsi) 237 - { 238 - struct wuxga_nt_panel *wuxga_nt = mipi_dsi_get_drvdata(dsi); 239 - 240 - drm_panel_disable(&wuxga_nt->base); 241 230 } 242 231 243 232 static struct mipi_dsi_driver wuxga_nt_panel_driver = { ··· 236 247 }, 237 248 .probe = wuxga_nt_panel_probe, 238 249 .remove = wuxga_nt_panel_remove, 239 - .shutdown = wuxga_nt_panel_shutdown, 240 250 }; 241 251 module_mipi_dsi_driver(wuxga_nt_panel_driver); 242 252