> -----Original Message-----
> From: Manna, Animesh <[email protected]>
> Sent: Thursday, June 4, 2026 1:24 AM
> To: [email protected]; [email protected]
> Cc: Shankar, Uma <[email protected]>; Dibin Moolakadan Subrahmanian
> <[email protected]>; [email protected];
> Nikula, Jani <[email protected]>; Manna, Animesh
> <[email protected]>
> Subject: [PATCH v8 08/20] drm/i915/vrr: Pass transcoder to
> intel_vrr_set_fixed_rr_timings()
> 
> Take the target transcoder as an explicit parameter so the helper can program
> VRR VMIN/VMAX/FLIPLINE registers for transcoders other than the crtc_state-
> >cpu_transcoder (e.g. the CMTG transcoder).
> 
> No functional change: all existing callers pass crtc_state->cpu_transcoder.
> 
> Signed-off-by: Animesh Manna <[email protected]>
> ---
>  drivers/gpu/drm/i915/display/intel_display.c |  2 +-
>  drivers/gpu/drm/i915/display/intel_vrr.c     | 14 +++++++-------
>  drivers/gpu/drm/i915/display/intel_vrr.h     |  5 ++++-
>  3 files changed, 12 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> b/drivers/gpu/drm/i915/display/intel_display.c
> index a6a1da4bd98d..416dea9e0d36 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -6674,7 +6674,7 @@ static void intel_pipe_fastset(const struct
> intel_crtc_state *old_crtc_state,
>       if (new_crtc_state->update_lrr) {
>               intel_set_transcoder_timings_lrr(new_crtc_state, new_crtc_state-
> >cpu_transcoder);
>               intel_cmtg_set_timings(new_crtc_state, true);
> -             intel_vrr_set_fixed_rr_timings(new_crtc_state);
> +             intel_vrr_set_fixed_rr_timings(new_crtc_state,
> +new_crtc_state->cpu_transcoder);
>               intel_vrr_transcoder_enable(new_crtc_state);
>       }
>  }
> diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c
> b/drivers/gpu/drm/i915/display/intel_vrr.c
> index e03b5daac5be..15d22de66d63 100644
> --- a/drivers/gpu/drm/i915/display/intel_vrr.c
> +++ b/drivers/gpu/drm/i915/display/intel_vrr.c
> @@ -318,19 +318,19 @@ int intel_vrr_fixed_rr_hw_flipline(const struct
> intel_crtc_state *crtc_state)
>       return intel_vrr_fixed_rr_hw_vtotal(crtc_state);
>  }
> 
> -void intel_vrr_set_fixed_rr_timings(const struct intel_crtc_state 
> *crtc_state)
> +void intel_vrr_set_fixed_rr_timings(const struct intel_crtc_state 
> *crtc_state,
> +                                 enum transcoder transcoder)
>  {
>       struct intel_display *display = to_intel_display(crtc_state);
> -     enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
> 
>       if (!intel_vrr_possible(crtc_state))
>               return;
> 
> -     intel_de_write(display, TRANS_VRR_VMIN(display, cpu_transcoder),
> +     intel_de_write(display, TRANS_VRR_VMIN(display, transcoder),
>                      intel_vrr_fixed_rr_hw_vmin(crtc_state) - 1);
> -     intel_de_write(display, TRANS_VRR_VMAX(display, cpu_transcoder),
> +     intel_de_write(display, TRANS_VRR_VMAX(display, transcoder),
>                      intel_vrr_fixed_rr_hw_vmax(crtc_state) - 1);
> -     intel_de_write(display, TRANS_VRR_FLIPLINE(display, cpu_transcoder),
> +     intel_de_write(display, TRANS_VRR_FLIPLINE(display, transcoder),
>                      intel_vrr_fixed_rr_hw_flipline(crtc_state) - 1);  }
> 
> @@ -645,7 +645,7 @@ void intel_vrr_set_transcoder_timings(const struct
> intel_crtc_state *crtc_state)
>                              lower_32_bits(crtc_state->cmrr.cmrr_n));
>       }
> 
> -     intel_vrr_set_fixed_rr_timings(crtc_state);
> +     intel_vrr_set_fixed_rr_timings(crtc_state, cpu_transcoder);
> 
>       if (!intel_vrr_always_use_vrr_tg(display))
>               intel_de_write(display, TRANS_VRR_CTL(display,
> cpu_transcoder), @@ -974,7 +974,7 @@ void intel_vrr_disable(const struct
> intel_crtc_state *old_crtc_state)
>               intel_vrr_tg_disable(old_crtc_state);
> 
>       intel_vrr_disable_dc_balancing(old_crtc_state);
> -     intel_vrr_set_fixed_rr_timings(old_crtc_state);
> +     intel_vrr_set_fixed_rr_timings(old_crtc_state,
> +old_crtc_state->cpu_transcoder);
>  }
> 
>  void intel_vrr_transcoder_enable(const struct intel_crtc_state *crtc_state) 
> diff --
> git a/drivers/gpu/drm/i915/display/intel_vrr.h
> b/drivers/gpu/drm/i915/display/intel_vrr.h
> index 4f16ca4af91f..2daba0c16162 100644
> --- a/drivers/gpu/drm/i915/display/intel_vrr.h
> +++ b/drivers/gpu/drm/i915/display/intel_vrr.h
> @@ -8,6 +8,8 @@
> 
>  #include <linux/types.h>
> 
> +#include "intel_display_limits.h"
> +

As Jani pointed, move this include out of the header.
Else all looks Good to me.

Reviewed-by: Uma Shankar <[email protected]>

>  struct drm_connector_state;
>  struct intel_atomic_state;
>  struct intel_connector;
> @@ -42,7 +44,8 @@ int intel_vrr_vmin_vblank_start(const struct 
> intel_crtc_state
> *crtc_state);  bool intel_vrr_is_fixed_rr(const struct intel_crtc_state 
> *crtc_state);
> void intel_vrr_transcoder_enable(const struct intel_crtc_state *crtc_state);  
> void
> intel_vrr_transcoder_disable(const struct intel_crtc_state *crtc_state); -void
> intel_vrr_set_fixed_rr_timings(const struct intel_crtc_state *crtc_state);
> +void intel_vrr_set_fixed_rr_timings(const struct intel_crtc_state 
> *crtc_state,
> +                                 enum transcoder transcoder);
>  void intel_vrr_dcb_reset(const struct intel_crtc_state *old_crtc_state,
>                        struct intel_crtc *crtc);
>  bool intel_vrr_always_use_vrr_tg(struct intel_display *display);
> --
> 2.29.0

Reply via email to