On 18/06/2025 13:01, Marek Szyprowski wrote: > I've finally found where is the problem! It turned out that the issue is > in the exynos_drm_fimd driver, in the code for enabling the display port > clock (fimd_dp_clock_enable() > function). It touches FIMD regs, but it was not guarded with FIMD's > runtime pm calls and after the $subject change it happened that > exynos_dp/analogix_dp code called the clock enable/disable when FIMD > driver (which implements the CRTC object) was not runtime resumed. > Previously all dp clock handling was done when CRTC was enabled, thus > the FIMD device was in the resumed runtime pm state.
We have another issue the this patch: i.MX8MM (and MP) seem to have a problem with DSI, which is using the samsung-dsim.c driver. For me, the first time I run kmstest I get a black screen. The second time I get a display, but it's horizontally in the wrong place. Perhaps you have an idea about this if you're familiar with the samsung-dsim?. The issue seems to be that earlier the order was: mxsfb_crtc_atomic_enable() samsung_dsim_atomic_pre_enable() samsung_dsim_atomic_enable() now the order is: samsung_dsim_atomic_pre_enable() mxsfb_crtc_atomic_enable() samsung_dsim_atomic_enable() If I move the samsung_dsim_init() call from samsung_dsim_atomic_pre_enable() to samsung_dsim_atomic_enable(), it starts to work. My guess is that the DSI init requires a pixel stream from the crtc, and now that the (pre)init is done without the pixel stream, it goes wrong. But this is purely a guess so far. I also see that the samsung_dsim_init() call is behind "!samsung_dsim_hw_is_exynos()", so you probably don't hit this issue... Tomi
