From: Fangzhi Zuo <[email protected]>

amdgpu_dm_update_freesync_caps() clears freesync_capable for any
SIGNAL_TYPE_HDMI_TYPE_A sink that lacks an AMD FreeSync MCCS VCP code.
HDMI-Forum VRR (HF-VSDB) sinks advertise VRR without such a VCP code, so
the HF-VSDB fallback that set freesync_capable was immediately undone,
leaving VRR and passive VRR disabled on those sinks.

Skip the MCCS clear when the sink reports HF-VSDB VRR capability, so
freesync_capable survives for HDMI-Forum VRR sinks.

Signed-off-by: Fangzhi Zuo <[email protected]>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c
index 8b2eec1a683d..e4b53086f312 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_connector.c
@@ -3973,6 +3973,7 @@ void amdgpu_dm_update_freesync_caps(struct drm_connector 
*connector,
 
        if ((sink->sink_signal == SIGNAL_TYPE_HDMI_TYPE_A ||
                as_type == FREESYNC_TYPE_PCON_IN_WHITELIST) &&
+               !connector->display_info.hdmi.vrr_cap.supported &&
                (!sink->edid_caps.freesync_vcp_code ||
                (sink->edid_caps.freesync_vcp_code && 
!sink->mccs_caps.freesync_supported)))
                freesync_capable = false;
-- 
2.53.0

Reply via email to