]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/amd/display: Disable VRR on DCE 6
authorTimur Kristóf <timur.kristof@gmail.com>
Mon, 25 Aug 2025 21:56:30 +0000 (23:56 +0200)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 15 Sep 2025 21:04:28 +0000 (17:04 -0400)
DCE 6 was not advertised as being able to support VRR,
so let's mark it as unsupported for now.

The VRR implementation in amdgpu_dm depends on the VUPDATE
interrupt which is not registered for DCE 6.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rodrigo Siqueira <siqueira@igalia.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
drivers/gpu/drm/amd/display/dc/dc_helper.c
drivers/gpu/drm/amd/display/dc/dm_services.h

index 7495122358bdb64799346e5339fc0f945c2b1d7b..38fa6319265e9e7db09db8c9d265a7453539962c 100644 (file)
@@ -10834,6 +10834,8 @@ static void get_freesync_config_for_crtc(
                } else {
                        config.state = VRR_STATE_INACTIVE;
                }
+       } else {
+               config.state = VRR_STATE_UNSUPPORTED;
        }
 out:
        new_crtc_state->freesync_config = config;
@@ -12735,7 +12737,7 @@ void amdgpu_dm_update_freesync_caps(struct drm_connector *connector,
 
        dm_con_state = to_dm_connector_state(connector->state);
 
-       if (!adev->dm.freesync_module)
+       if (!adev->dm.freesync_module || !dc_supports_vrr(sink->ctx->dce_version))
                goto update;
 
        edid = drm_edid_raw(drm_edid); // FIXME: Get rid of drm_edid_raw()
index 51e41aed7316c3497a88dcab127beb0c3d45b944..5a365bd19933f794536c14c003627f714f361b3e 100644 (file)
@@ -755,3 +755,8 @@ char *dce_version_to_string(const int version)
                return "Unknown";
        }
 }
+
+bool dc_supports_vrr(const enum dce_version v)
+{
+       return v >= DCE_VERSION_8_0;
+}
index 7b9c22c45453d12a4aed204d154948ad1c5faa76..7b398d4f44398bf2f99b467885ed0c19da3c705b 100644 (file)
@@ -311,4 +311,6 @@ void dm_dtn_log_end(struct dc_context *ctx,
 
 char *dce_version_to_string(const int version);
 
+bool dc_supports_vrr(const enum dce_version v);
+
 #endif /* __DM_SERVICES_H__ */