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.nauti...@intel.com>

Reviewed-by: Ville Syrjälä <ville.syrj...@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

Reply via email to