[PATCH 13/21] drm/i915/vrr: Refactor condition for computing vmax and LRR

Ville Syrjälä ville.syrjala at linux.intel.com
Thu Mar 6 16:40:16 UTC 2025


On Thu, Mar 06, 2025 at 06:40:52PM +0530, Ankit Nautiyal wrote:
> LRR and Vmax can be computed only if VRR is supported and vrr.in_range
> is set. Currently we proceed with vrr timings only for VRR supporting
> panels and return otherwise. For using VRR TG with fix timings, need to
> continue even for panels that do not support VRR.
> 
> To achieve this, refactor the condition for computing vmax and
> update_lrr so that we can continue for fixed timings for panels that do
> not support VRR.
> 
> v2: Set vmax = vmin for non VRR panels. (Ville)
> 
> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal at intel.com>

Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_vrr.c | 14 ++++++++------
>  1 file changed, 8 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c b/drivers/gpu/drm/i915/display/intel_vrr.c
> index 622a70e21737..310add32781f 100644
> --- a/drivers/gpu/drm/i915/display/intel_vrr.c
> +++ b/drivers/gpu/drm/i915/display/intel_vrr.c
> @@ -363,14 +363,16 @@ intel_vrr_compute_config(struct intel_crtc_state *crtc_state,
>  
>  	crtc_state->vrr.in_range =
>  		intel_vrr_is_in_range(connector, drm_mode_vrefresh(adjusted_mode));
> -	if (!crtc_state->vrr.in_range)
> -		return;
> -
> -	if (HAS_LRR(display))
> -		crtc_state->update_lrr = true;
>  
>  	vmin = intel_vrr_compute_vmin(crtc_state);
> -	vmax = intel_vrr_compute_vmax(connector, adjusted_mode);
> +
> +	if (crtc_state->vrr.in_range) {
> +		if (HAS_LRR(display))
> +			crtc_state->update_lrr = true;
> +		vmax = intel_vrr_compute_vmax(connector, adjusted_mode);
> +	} else {
> +		vmax = vmin;
> +	}
>  
>  	if (vmin >= vmax)
>  		return;
> -- 
> 2.45.2

-- 
Ville Syrjälä
Intel


More information about the Intel-gfx mailing list