[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <026c9b37-ae79-416c-b57d-be98f7e91f36@ideasonboard.com>
Date: Wed, 18 Jun 2025 19:27:27 +0300
From: Tomi Valkeinen <tomi.valkeinen@...asonboard.com>
To: Marek Szyprowski <m.szyprowski@...sung.com>,
Maxime Ripard <mripard@...nel.org>
Cc: Aradhya Bhatia <aradhya.bhatia@...ux.dev>,
DRI Development List <dri-devel@...ts.freedesktop.org>,
Linux Kernel List <linux-kernel@...r.kernel.org>, Nishanth Menon
<nm@...com>, Vignesh Raghavendra <vigneshr@...com>,
Devarsh Thakkar <devarsht@...com>, Jayesh Choudhary <j-choudhary@...com>,
Alexander Sverdlin <alexander.sverdlin@...mens.com>,
Dmitry Baryshkov <lumag@...nel.org>, Andrzej Hajda
<andrzej.hajda@...el.com>, Neil Armstrong <neil.armstrong@...aro.org>,
Robert Foss <rfoss@...nel.org>,
Laurent Pinchart <Laurent.pinchart@...asonboard.com>,
Jonas Karlman <jonas@...boo.se>, Jernej Skrabec <jernej.skrabec@...il.com>,
Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
Thomas Zimmermann <tzimmermann@...e.de>, David Airlie <airlied@...il.com>,
Simona Vetter <simona@...ll.ch>
Subject: Re: [PATCH v13 3/4] drm/atomic-helper: Re-order bridge chain
pre-enable and post-disable
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
Powered by blists - more mailing lists