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...@bp.renesas.com>
Closes: https://lore.kernel.org/all/aDB8bD6cF7qiSpKd@tom-desktop/
Signed-off-by: Tommaso Merciai <tommaso.merciai...@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@smarc-rzg3e:~# modetest -M rzg2l-du -d -s HDMI-A-1:800x600-56.25@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@smarc-rzg3e:~# modetest -M rzg2l-du -d -s HDMI-A-1:800x600-56.25@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 do you think? Thanks in advance.

Thanks & Regards,
Tommaso


Maxime

Reply via email to