mirror-linux/drivers/gpu/drm/exynos
Marek Szyprowski 5d91394f23
drm/exynos: fimd: Guard display clock control with runtime PM calls
Commit c9b1150a68 ("drm/atomic-helper: Re-order bridge chain pre-enable
and post-disable") changed the call sequence to the CRTC enable/disable
and bridge pre_enable/post_disable methods, so those bridge methods are
now called when CRTC is not yet enabled.

This causes a lockup observed on Samsung Peach-Pit/Pi Chromebooks. The
source of this lockup is a call to fimd_dp_clock_enable() function, when
FIMD device is not yet runtime resumed. It worked before the mentioned
commit only because the CRTC implemented by the FIMD driver was always
enabled what guaranteed the FIMD device to be runtime resumed.

This patch adds runtime PM guards to the fimd_dp_clock_enable() function
to enable its proper operation also when the CRTC implemented by FIMD is
not yet enabled.

Fixes: 196e059a8a ("drm/exynos: convert clock_enable crtc callback to pipeline clock")
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2025-06-29 16:58:16 +09:00
..
Kconfig
Makefile
exynos7_drm_decon.c drm/exynos: exynos7_drm_decon: add vblank check in IRQ handling 2025-06-29 16:58:16 +09:00
exynos5433_drm_decon.c Get rid of 'remove_new' relic from platform driver struct 2024-12-01 15:12:43 -08:00
exynos_dp.c Get rid of 'remove_new' relic from platform driver struct 2024-12-01 15:12:43 -08:00
exynos_drm_crtc.c
exynos_drm_crtc.h drm/exynos: remove unused prototype for crtc 2024-11-04 10:42:50 +09:00
exynos_drm_dma.c
exynos_drm_dpi.c
exynos_drm_drv.c drm/exynos: Remove unnecessary checking 2025-04-23 22:52:58 +09:00
exynos_drm_drv.h
exynos_drm_dsi.c Get rid of 'remove_new' relic from platform driver struct 2024-12-01 15:12:43 -08:00
exynos_drm_fb.c
exynos_drm_fb.h
exynos_drm_fbdev.c
exynos_drm_fbdev.h
exynos_drm_fimc.c drm/exynos: Fix spelling mistake "enqueu" -> "enqueue" 2025-04-23 23:07:28 +09:00
exynos_drm_fimd.c drm/exynos: fimd: Guard display clock control with runtime PM calls 2025-06-29 16:58:16 +09:00
exynos_drm_g2d.c Get rid of 'remove_new' relic from platform driver struct 2024-12-01 15:12:43 -08:00
exynos_drm_g2d.h
exynos_drm_gem.c drm/exynos: Don't use %pK through printk 2025-06-29 16:58:13 +09:00
exynos_drm_gem.h
exynos_drm_gsc.c Get rid of 'remove_new' relic from platform driver struct 2024-12-01 15:12:43 -08:00
exynos_drm_ipp.c drm/exynos: Don't use %pK through printk 2025-06-29 16:58:13 +09:00
exynos_drm_ipp.h
exynos_drm_mic.c drm/exynos: mic: convert to devm_drm_bridge_alloc() API 2025-04-29 11:21:23 +02:00
exynos_drm_plane.c
exynos_drm_plane.h
exynos_drm_rotator.c Get rid of 'remove_new' relic from platform driver struct 2024-12-01 15:12:43 -08:00
exynos_drm_scaler.c Get rid of 'remove_new' relic from platform driver struct 2024-12-01 15:12:43 -08:00
exynos_drm_vidi.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
exynos_drm_vidi.h
exynos_hdmi.c drm/connector: make mode_valid take a const struct drm_display_mode 2025-01-07 12:45:19 +02:00
exynos_mixer.c Get rid of 'remove_new' relic from platform driver struct 2024-12-01 15:12:43 -08:00
regs-decon7.h drm/exynos: exynos7_drm_decon: add driver data and support for Exynos7870 2024-11-04 10:50:46 +09:00
regs-decon5433.h
regs-fimc.h
regs-gsc.h
regs-hdmi.h
regs-mixer.h
regs-rotator.h
regs-scaler.h
regs-vp.h