[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