drm/amd/display: set allow_freesync parameter in DM
authorAurabindo Pillai <aurabindo.pillai@amd.com>
Thu, 5 Jan 2023 19:21:45 +0000 (14:21 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 24 Jan 2023 17:27:29 +0000 (12:27 -0500)
[Why&how]
There are cases where VRR is possible but not enabled. If allow_freesync
parameter is not set, SubVP logic defaults to checking only the ignore MSA
parameter that is always set if display is DRR capable, which breaks the system
while trying to enable SubVP on multi monitor configs where freesync
does not work due to Xorg limitation.

SubVP uses allow_freesync parameter to check if SubVP + DRR case can be executed.

Reviewed-by: Alvin Lee <Alvin.Lee2@amd.com>
Acked-by: Alan Liu <HaoPing.Liu@amd.com>
Signed-off-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

index 3676d5ce77e0143e54087dfec8c9dfec18a49cd7..39513a6d2244fab1fd6d8ed8af2925af8e2f9c74 100644 (file)
@@ -7652,6 +7652,7 @@ static void update_freesync_state_on_stream(
        new_crtc_state->vrr_infopacket = vrr_infopacket;
 
        new_stream->vrr_infopacket = vrr_infopacket;
+       new_stream->allow_freesync = mod_freesync_get_freesync_enabled(&vrr_params);
 
        if (new_crtc_state->freesync_vrr_info_changed)
                DRM_DEBUG_KMS("VRR packet update: crtc=%u enabled=%d state=%d",