Message ID | 17c6a5a668e5975f871b77fb1fca6711a0799d9e.1718176895.git.geert+renesas@glider.be (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v3] drm: renesas: shmobile: Call drm_atomic_helper_shutdown() at shutdown time | expand |
On Wed, 12 Jun 2024 09:23:13 +0200, Geert Uytterhoeven wrote: > Based on grepping through the source code, this driver appears to be > missing a call to drm_atomic_helper_shutdown() at system shutdown time. > This is important because drm_atomic_helper_shutdown() will cause > panels to get disabled cleanly which may be important for their power > sequencing. Future changes will remove any custom powering off in > individual panel drivers so the DRM drivers need to start getting this > right. > > [...] Applied to misc/kernel.git (drm-misc-fixes). Thanks! Maxime
diff --git a/drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.c b/drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.c index e83c3e52251dedf9..0250d5f00bf102dc 100644 --- a/drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.c +++ b/drivers/gpu/drm/renesas/shmobile/shmob_drm_drv.c @@ -171,6 +171,13 @@ static void shmob_drm_remove(struct platform_device *pdev) drm_kms_helper_poll_fini(ddev); } +static void shmob_drm_shutdown(struct platform_device *pdev) +{ + struct shmob_drm_device *sdev = platform_get_drvdata(pdev); + + drm_atomic_helper_shutdown(&sdev->ddev); +} + static int shmob_drm_probe(struct platform_device *pdev) { struct shmob_drm_platform_data *pdata = pdev->dev.platform_data; @@ -273,6 +280,7 @@ static const struct of_device_id shmob_drm_of_table[] __maybe_unused = { static struct platform_driver shmob_drm_platform_driver = { .probe = shmob_drm_probe, .remove_new = shmob_drm_remove, + .shutdown = shmob_drm_shutdown, .driver = { .name = "shmob-drm", .of_match_table = of_match_ptr(shmob_drm_of_table),