> -----Original Message-----
> From: Borah, Chaitanya Kumar <[email protected]>
> Sent: 15 July 2026 18:45
> To: Golani, Mitulkumar Ajitkumar <[email protected]>;
> [email protected]
> Cc: [email protected]; Shankar, Uma <[email protected]>;
> Nautiyal, Ankit K <[email protected]>
> Subject: Re: [PATCH v3 5/8] drm/i915/vrr: Move CMRR hw registers to fix
> refresh rate path
>
>
>
> On 7/14/2026 4:09 PM, Mitul Golani wrote:
> > Move CMRR register writes to fix refresh rate register write path to
> > consolidate with fix refresh rate implementation.
> >
> > Signed-off-by: Mitul Golani <[email protected]>
> > ---
> > drivers/gpu/drm/i915/display/intel_vrr.c | 22 +++++++++++-----------
> > 1 file changed, 11 insertions(+), 11 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c
> > b/drivers/gpu/drm/i915/display/intel_vrr.c
> > index 25ce56d48bb1..95c7b0c05ec3 100644
> > --- a/drivers/gpu/drm/i915/display/intel_vrr.c
> > +++ b/drivers/gpu/drm/i915/display/intel_vrr.c
> > @@ -337,6 +337,17 @@ void intel_vrr_set_fixed_rr_timings(const struct
> intel_crtc_state *crtc_state,
> > if (!intel_vrr_possible(crtc_state))
> > return;
> >
> > + if (crtc_state->vrr.cmrr.enable) {
> > + intel_de_write(display, TRANS_CMRR_M_HI(display,
> transcoder),
> > + upper_32_bits(crtc_state->vrr.cmrr.cmrr_m));
> > + intel_de_write(display, TRANS_CMRR_M_LO(display,
> transcoder),
> > + lower_32_bits(crtc_state->vrr.cmrr.cmrr_m));
> > + intel_de_write(display, TRANS_CMRR_N_HI(display,
> transcoder),
> > + upper_32_bits(crtc_state->vrr.cmrr.cmrr_n));
> > + intel_de_write(display, TRANS_CMRR_N_LO(display,
> transcoder),
> > + lower_32_bits(crtc_state->vrr.cmrr.cmrr_n));
>
> Shouldn't TRANS_CMRR_N_HI be the last register to be written.
No functional change has done, just moved to fix refresh rate path.
In later patches when actual enable/disable sequence is computed, there
suggested changes are applied.
Thanks
>
> > + }
> > +
> > 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, transcoder), @@
> > -648,17 +659,6 @@ void intel_vrr_set_transcoder_timings(const struct
> intel_crtc_state *crtc_state)
> > return;
> > }
> >
> > - if (crtc_state->vrr.cmrr.enable) {
> > - intel_de_write(display, TRANS_CMRR_M_HI(display,
> cpu_transcoder),
> > - upper_32_bits(crtc_state->vrr.cmrr.cmrr_m));
> > - intel_de_write(display, TRANS_CMRR_M_LO(display,
> cpu_transcoder),
> > - lower_32_bits(crtc_state->vrr.cmrr.cmrr_m));
> > - intel_de_write(display, TRANS_CMRR_N_HI(display,
> cpu_transcoder),
> > - upper_32_bits(crtc_state->vrr.cmrr.cmrr_n));
> > - intel_de_write(display, TRANS_CMRR_N_LO(display,
> cpu_transcoder),
> > - lower_32_bits(crtc_state->vrr.cmrr.cmrr_n));
> > - }
> > -
> > intel_vrr_set_fixed_rr_timings(crtc_state, cpu_transcoder);
> > intel_cmtg_set_vrr_timings(crtc_state);
> >