From: Ville Syrjälä Date: Fri, 1 Sep 2023 13:04:36 +0000 (+0300) Subject: drm/i915: Validate that the timings are within the VRR range X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=6a38b36c274f7a969d276ffecad02d974b30175c;p=linux.git drm/i915: Validate that the timings are within the VRR range Let's assume there are some crazy displays where the high end of the VRR range ends up being lower than the refresh rate as determined by the actual timings. In that case when we toggle VRR on/off we would step outside the VRR range when toggling VRR on/off. Let's just make sure that never happens by not using VRR in such cases. If the user really wants VRR they should then select the timings to land within the VRR range. Cc: Manasi Navare Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20230901130440.2085-9-ville.syrjala@linux.intel.com Reviewed-by: Manasi Navare Reviewed-by: Mitul Golani --- diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c b/drivers/gpu/drm/i915/display/intel_vrr.c index 6ef7825383370..12731ad725a8c 100644 --- a/drivers/gpu/drm/i915/display/intel_vrr.c +++ b/drivers/gpu/drm/i915/display/intel_vrr.c @@ -117,10 +117,10 @@ intel_vrr_compute_config(struct intel_crtc_state *crtc_state, const struct drm_display_info *info = &connector->base.display_info; int vmin, vmax; - if (!intel_vrr_is_capable(connector)) + if (adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE) return; - if (adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE) + if (!intel_vrr_is_in_range(connector, drm_mode_vrefresh(adjusted_mode))) return; vmin = DIV_ROUND_UP(adjusted_mode->crtc_clock * 1000,