Re: [PATCH v6 9/9] drm/i915/vrr: Enable cmrr

"Borah, Chaitanya Kumar" <[email protected]> Fri, 24 Jul 2026 15:20:23 +0530
Newsgroups org.freedesktop.lists.intel-gfx,org.freedesktop.lists.intel-xe
Message-ID <[email protected]>

On 7/23/2026 9:51 PM, Borah, Chaitanya Kumar wrote:
> 
> 
> On 7/22/2026 10:09 AM, Mitul Golani wrote:
>> Enable CMRR during compute config and add related state
>> checker for the same.
>>
>> --v2:
>> - Everything else except enable compute to handle before this patch
>> (Chaitanya)
>>
>> --v3:
>> - Remove redundant return from compute config
>>
>> Signed-off-by: Mitul Golani <[email protected]>
>> ---
>>   drivers/gpu/drm/i915/display/intel_vrr.c | 2 ++
>>   1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c b/drivers/gpu/ 
>> drm/i915/display/intel_vrr.c
>> index 6bc3ccd62513..ed23a03b0d3d 100644
>> --- a/drivers/gpu/drm/i915/display/intel_vrr.c
>> +++ b/drivers/gpu/drm/i915/display/intel_vrr.c
>> @@ -302,6 +302,8 @@ intel_vrr_cmrr_compute_config(struct 
>> intel_crtc_state *crtc_state)
>>       adjusted_mode->crtc_vtotal = div64_u64_rem(dividend,
>>                              crtc_state->vrr.cmrr.cmrr_n,
>>                              &crtc_state->vrr.cmrr.cmrr_m);
>> +
>> +    crtc_state->vrr.cmrr.enable = true;
> 
> We will also need to clear it (and cmrr_n, cmrr_m ) at the beginning of 
> the compute config. If we only have this statement cmrr.enable will 
> always remain true once set as it propagates through duplicated crtc 
> states.
> 

Spoke too soon, intel_crtc_prepare_cleared_state() zeroes the crtc_state 
right before intel_modeset_pipe_config() runs compute. So we should be 
good at that front.

The problem will still lie with CMRR_ENABLE not getting programmed 
during a fastset. It will leave the CMRR registers programmed (to 0s in 
disabled case) but CMRR_ENABLE bit in TRANS_VRR_CTL will not be updated 
as enable_vrr_tg (except in lrr case) and disable_vrr_tg are called only 
on modeset.

>>   }
>>   static
>