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"
+
 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