[PATCH 16/22] drm/i915/vrr: Use fixed timings for platforms that support VRR
Nautiyal, Ankit K
ankit.k.nautiyal at intel.com
Wed Mar 5 08:46:44 UTC 2025
On 3/5/2025 12:23 AM, Ville Syrjälä wrote:
> On Tue, Mar 04, 2025 at 01:49:42PM +0530, Ankit Nautiyal wrote:
>> For fixed refresh rate use fixed timings for all platforms that support
>> VRR. For this add checks to avoid computing and reading VRR for
>> platforms that do not support VRR.
>>
>> v2: Avoid touching check for VRR_CTL_FLIP_LINE_EN. (Ville)
>>
>> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal at intel.com>
>> ---
>> drivers/gpu/drm/i915/display/intel_vrr.c | 11 ++++++++---
>> 1 file changed, 8 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c b/drivers/gpu/drm/i915/display/intel_vrr.c
>> index 97040ab9ed86..11f23affd13a 100644
>> --- a/drivers/gpu/drm/i915/display/intel_vrr.c
>> +++ b/drivers/gpu/drm/i915/display/intel_vrr.c
>> @@ -347,6 +347,9 @@ intel_vrr_compute_config(struct intel_crtc_state *crtc_state,
>> struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
>> int vmin, vmax;
>>
>> + if (!HAS_VRR(display))
>> + return;
>> +
>> /*
>> * FIXME all joined pipes share the same transcoder.
>> * Need to account for that during VRR toggle/push/etc.
>> @@ -370,8 +373,7 @@ intel_vrr_compute_config(struct intel_crtc_state *crtc_state,
>> vmax = vmin;
>> }
>>
>> - if (vmin >= vmax)
>> - return;
>> + vmin = intel_vrr_compute_vmin(crtc_state);
> Didn't we already do that?
(facepalm) Yes, indeed, this is already set in an earlier patch. It
should be removed. Thanks for catching this.
>
>>
>> crtc_state->vrr.vmin = vmin;
>> crtc_state->vrr.vmax = vmax;
>> @@ -385,7 +387,7 @@ intel_vrr_compute_config(struct intel_crtc_state *crtc_state,
>> */
>> crtc_state->vrr.vmin -= intel_vrr_flipline_offset(display);
>>
>> - if (crtc_state->uapi.vrr_enabled)
>> + if (crtc_state->uapi.vrr_enabled && vmin < vmax)
>> intel_vrr_compute_vrr_timings(crtc_state);
>> else if (is_cmrr_frac_required(crtc_state) && is_edp)
>> intel_vrr_compute_cmrr_timings(crtc_state);
>> @@ -659,6 +661,9 @@ void intel_vrr_get_config(struct intel_crtc_state *crtc_state)
>> enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
>> u32 trans_vrr_ctl, trans_vrr_vsync;
>>
>> + if (!HAS_VRR(display))
>> + return;
>> +
> The caller already checks that, so should not be needed here.
Will remove this check from here.
Regards,
Ankit
>
>> trans_vrr_ctl = intel_de_read(display,
>> TRANS_VRR_CTL(display, cpu_transcoder));
>>
>> --
>> 2.45.2
More information about the Intel-gfx
mailing list