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.kris...@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 <sique...@igalia.com> Thanks -- Rodrigo Siqueira