[PATCH 2/3] drm/amd/display: Disable VRR on DCE 6
Rodrigo Siqueira
siqueira at igalia.com
Tue Aug 12 21:23:07 UTC 2025
On 08/02, Timur Kristóf wrote:
> 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 at gmail.com>
> ---
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 4 +++-
> drivers/gpu/drm/amd/display/dc/dc_helper.c | 5 +++++
> drivers/gpu/drm/amd/display/dc/dm_services.h | 2 ++
> 3 files changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index c71167ffdb76..470f831a17f7 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -10689,6 +10689,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;
> @@ -12590,7 +12592,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()
> diff --git a/drivers/gpu/drm/amd/display/dc/dc_helper.c b/drivers/gpu/drm/amd/display/dc/dc_helper.c
> index 51e41aed7316..5a365bd19933 100644
> --- a/drivers/gpu/drm/amd/display/dc/dc_helper.c
> +++ b/drivers/gpu/drm/amd/display/dc/dc_helper.c
> @@ -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;
> +}
> diff --git a/drivers/gpu/drm/amd/display/dc/dm_services.h b/drivers/gpu/drm/amd/display/dc/dm_services.h
> index 7b9c22c45453..7b398d4f4439 100644
> --- a/drivers/gpu/drm/amd/display/dc/dm_services.h
> +++ b/drivers/gpu/drm/amd/display/dc/dm_services.h
> @@ -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__ */
> --
> 2.50.1
>
This change also lgtm,
CCed other display folks.
Reviewed-by: Rodrigo Siqueira <siqueira at igalia.com>
Thanks
--
Rodrigo Siqueira
More information about the amd-gfx
mailing list