mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
drm/panel: sharp-lq101r1sx01: 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. A grep through mainline for compatible strings used by this driver indicates that it is used by Tegra boards. The Tegra driver appears to be correctly calling drm_atomic_helper_shutdown() so we can remove the calls. [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: Thierry Reding <treding@nvidia.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.18.I6a87fce1ee027c96f71c7adf74248b865f50b336@changeid Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> Link: https://patchwork.freedesktop.org/patch/msgid/20240604172305.v3.18.I6a87fce1ee027c96f71c7adf74248b865f50b336@changeid
This commit is contained in:
parent
316bb1473c
commit
d7d473d846
@ -357,32 +357,13 @@ static void sharp_panel_remove(struct mipi_dsi_device *dsi)
|
|||||||
struct sharp_panel *sharp = mipi_dsi_get_drvdata(dsi);
|
struct sharp_panel *sharp = mipi_dsi_get_drvdata(dsi);
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
/* only detach from host for the DSI-LINK2 interface */
|
|
||||||
if (!sharp) {
|
|
||||||
mipi_dsi_detach(dsi);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
err = drm_panel_disable(&sharp->base);
|
|
||||||
if (err < 0)
|
|
||||||
dev_err(&dsi->dev, "failed to disable panel: %d\n", err);
|
|
||||||
|
|
||||||
err = mipi_dsi_detach(dsi);
|
err = mipi_dsi_detach(dsi);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
dev_err(&dsi->dev, "failed to detach from DSI host: %d\n", err);
|
dev_err(&dsi->dev, "failed to detach from DSI host: %d\n", err);
|
||||||
|
|
||||||
sharp_panel_del(sharp);
|
/* only detach from host for the DSI-LINK2 interface */
|
||||||
}
|
|
||||||
|
|
||||||
static void sharp_panel_shutdown(struct mipi_dsi_device *dsi)
|
|
||||||
{
|
|
||||||
struct sharp_panel *sharp = mipi_dsi_get_drvdata(dsi);
|
|
||||||
|
|
||||||
/* nothing to do for DSI-LINK2 */
|
|
||||||
if (!sharp)
|
if (!sharp)
|
||||||
return;
|
sharp_panel_del(sharp);
|
||||||
|
|
||||||
drm_panel_disable(&sharp->base);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct mipi_dsi_driver sharp_panel_driver = {
|
static struct mipi_dsi_driver sharp_panel_driver = {
|
||||||
@ -392,7 +373,6 @@ static struct mipi_dsi_driver sharp_panel_driver = {
|
|||||||
},
|
},
|
||||||
.probe = sharp_panel_probe,
|
.probe = sharp_panel_probe,
|
||||||
.remove = sharp_panel_remove,
|
.remove = sharp_panel_remove,
|
||||||
.shutdown = sharp_panel_shutdown,
|
|
||||||
};
|
};
|
||||||
module_mipi_dsi_driver(sharp_panel_driver);
|
module_mipi_dsi_driver(sharp_panel_driver);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user