amdgpu_dm_connector_mode_valid regression
Gergo Koteles
soyer at irl.hu
Wed Apr 2 10:40:53 UTC 2025
Hi,
While playing with
https://lore.kernel.org/all/61c3df83ab73aba0bc7a941a443cd7faf4cf7fb0.1743195250.git.soyer@irl.hu/
I found a regression that prevented some EDID DTDs from being selected
in some specific cases.
This is the first bad commit:
b255ce4 ("drm/amdgpu: don't change mode in
amdgpu_dm_connector_mode_valid()")
I think the problem is that decide_crtc_timing_for_drm_display_mode()
function tries to copy the crtc information from the preferred mode,
but that's not filled yet if the first one is the preferred one and
it's not the one with the maximum refresh rate.
amdgpu_dm_connector_mode_valid()
create_validate_stream_for_sink()
create_stream_for_sink()
decide_crtc_timing_for_drm_display_mode(&mode, preferred_mode, scale)
It works if I call
drm_mode_set_crtcinfo((struct drm_display_mode *)mode, 0) before
create_validate_stream_for_sink()
in amdgpu_dm_connector_mode_valid()
or
if I comment out the decide_crtc_timing_for_drm_display_mode() in
create_stream_for_sink()
but a better fix than these can be imagined :)
more information:
https://gitlab.freedesktop.org/drm/amd/-/issues/4085
Regards,
Gergo
More information about the amd-gfx
mailing list