[PATCH] drm/bridge: adv7511: Do not merge adv7511_mode_set() with atomic_enable()
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Mon May 26 10:49:02 UTC 2025
On Mon, May 26, 2025 at 11:58:37AM +0200, Tommaso Merciai wrote:
> Hi Maxime,
> Thanks for your comment.
>
> On 26/05/25 11:26, Maxime Ripard wrote:
> > Hi,
> >
> > On Mon, May 26, 2025 at 10:54:52AM +0200, Tommaso Merciai wrote:
> >> After adv7511_mode_set() was merged into .atomic_enable(), only the
> >> native resolution is working when using modetest.
> >>
> >> This is caused by incorrect timings: adv7511_mode_set() must not be
> >> merged into .atomic_enable().
> >>
> >> Move adv7511_mode_set() back to the .mode_set() callback in
> >> drm_bridge_funcs to restore correct behavior.
> >>
> >> Fixes: 0a9e2f0a6466 ("drm/bridge: adv7511: switch to the HDMI connector helpers")
> >> Reported-by: Biju Das <biju.das.jz at bp.renesas.com>
> >> Closes: https://lore.kernel.org/all/aDB8bD6cF7qiSpKd@tom-desktop/
> >> Signed-off-by: Tommaso Merciai <tommaso.merciai.xr at bp.renesas.com>
> >
> > Explaining why, both in the commit log and the comments, would be nice.
> > Because I can't think of any good reason it just can't work for that
> > bridge.
>
> Sorry, let me clarify and share with you some details:
>
> adv7511_mode_set:
> - Is setting up timings registers for the DSI2HDMI bridge in our case
> we are using ADV7535 bridge.
>
> rzg2l_mipi_dsi_atomic_enable:
> - Is setting up the vclock for the DSI ip
>
> Testing new/old implementation a bit we found the following:
>
> root at smarc-rzg3e:~# modetest -M rzg2l-du -d -s HDMI-A-1:800x600-56.25 at XR24
> setting mode 800x600-56.25Hz on connectors HDMI-A-1, crtc 62
> [ 49.273134] adv7511_mode_set_old: drm_mode_vrefresh(mode) = 56
> [ 49.281006] rzg2l_mipi_dsi_atomic_enable: mode->clock: 36000
>
> root at smarc-rzg3e:~# modetest -M rzg2l-du -d -s HDMI-A-1:800x600-56.25 at XR24
> setting mode 800x600-56.25Hz on connectors HDMI-A-1, crtc 62
> [ 74.076881] rzg2l_mipi_dsi_atomic_enable: mode->clock: 36000
> [ 74.092130] adv7511_mode_set: drm_mode_vrefresh(adj_mode) = 56
>
> Same result but different timing (in function call perspective):
>
> - old: adv7511_mode_set() is call before rzg2l_mipi_dsi_atomic_enable()
> - new: adv7511_mode_set() is call after rzg2l_mipi_dsi_atomic_enable()
What is "old" and "new" here ? Is it before and after Dmitry's patch, or
before and after yours ? Please be precise when describing problems.
> What do you think? Thanks in advance.
You're only explaining above what the "old" and "new" behaviours are,
and claiming one of them is causing an issue, but you're not explaining
*why* it causes an issue. That's what your commit message is expected to
detail.
--
Regards,
Laurent Pinchart
More information about the dri-devel
mailing list