]> git.hungrycats.org Git - linux/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, 10 Sep 2026 16:52:39 +0000 (12:52 -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>
Reviewed-by: Alex Hung <alex.hung@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit ac3aea794fb4156467b4b3b92c3155d95bf435c9)
Cc: stable@vger.kernel.org
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c

index c8a1ab8c3b169d8e4141e35f506e39a18cfb6404..d037738872147a9c9673204cce9aeba5a7f6d560 100644 (file)
@@ -3937,17 +3937,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)