On Mon, May 18, 2026 at 1:09 PM Michel Dänzer <[email protected]> wrote:
>
> From: Michel Dänzer <[email protected]>
>
> When the do_mccs parameter is false, we don't call
> dm_helpers_read_mccs_caps, so sink->mccs_caps.freesync_supported is
> unlikely to be true.
>
> Fixes: 6f71d5dd3206 ("drm/amd/display: Read sink freesync support via mccs")
> Bug: https://gitlab.freedesktop.org/drm/amd/-/work_items/5286
> Signed-off-by: Michel Dänzer <[email protected]>
Applied. Thanks!
Alex
> ---
>
> I suspect this logic might not be quite right yet, it fixes the
> regression and should be a step in the right direction though.
>
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 14 ++++++--------
> 1 file changed, 6 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index e0d209d016cd..9d4692e4ea26 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -13468,17 +13468,15 @@ void amdgpu_dm_update_freesync_caps(struct
> drm_connector *connector,
> }
>
> /* Handle MCCS */
> - if (do_mccs)
> + if (do_mccs) {
> dm_helpers_read_mccs_caps(adev->dm.dc->ctx,
> amdgpu_dm_connector->dc_link, sink);
>
> - if ((sink->sink_signal == SIGNAL_TYPE_HDMI_TYPE_A ||
> - as_type == FREESYNC_TYPE_PCON_IN_WHITELIST) &&
> - (!sink->edid_caps.freesync_vcp_code ||
> - (sink->edid_caps.freesync_vcp_code &&
> !sink->mccs_caps.freesync_supported)))
> - freesync_capable = false;
> + if (sink->edid_caps.freesync_vcp_code &&
> !sink->mccs_caps.freesync_supported)
> + freesync_capable = false;
>
> - if (do_mccs && sink->mccs_caps.freesync_supported && freesync_capable)
> - dm_helpers_mccs_vcp_set(adev->dm.dc->ctx,
> amdgpu_dm_connector->dc_link, sink);
> + if (sink->mccs_caps.freesync_supported && freesync_capable)
> + dm_helpers_mccs_vcp_set(adev->dm.dc->ctx,
> amdgpu_dm_connector->dc_link, sink);
> + }
>
> update:
> if (dm_con_state)
> --
> 2.53.0
>