]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amd/display: Consult MCCS FreeSync cap only if requested & supported
authorMichel Dänzer <mdaenzer@redhat.com>
Mon, 18 May 2026 15:48:09 +0000 (17:48 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 4 Jun 2026 20:00:11 +0000 (16:00 -0400)
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 <mdaenzer@redhat.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 115bf5ca318e18a3dc1888ec6271c7052774952a)

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

index 5fc5d56085066bd1d48425ddeb36626898811380..122982b7a7b9decc00c7711918d9340720fa97ec 100644 (file)
@@ -13446,17 +13446,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)