From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Cc: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org,
jani.nikula@linux.intel.com, navaremanasi@google.com
Subject: Re: [PATCH 1/6] drm/i915/display: Handle VSYNC timing in LRR path
Date: Wed, 3 Jun 2026 15:13:05 +0300 [thread overview]
Message-ID: <aiAaUVt3l2oRN2ZP@intel.com> (raw)
In-Reply-To: <20260522132511.321540-2-ankit.k.nautiyal@intel.com>
On Fri, May 22, 2026 at 06:55:06PM +0530, Ankit Nautiyal wrote:
> LRR already updates crtc_vtotal/crtc_vblank_end seamlessly.
> Extend the same handling to crtc_vsync_start/crtc_vsync_end so
> VSYNC timing changes are programmed and accepted via the LRR path instead
> of forcing a full modeset.
>
> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_display.c | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 757a78c75bbf..75c998960864 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -2797,6 +2797,9 @@ static void intel_set_transcoder_timings_lrr(const struct intel_crtc_state *crtc
> intel_de_write(display, TRANS_VBLANK(display, cpu_transcoder),
> VBLANK_START(crtc_vblank_start - 1) |
> VBLANK_END(crtc_vblank_end - 1));
I'm thinking we probably want some kind of comment here. Perhaps
something like this:
/*
* DP doesn't have vertical sync, so TRANS_VSYNC only affects
* the position of the vsync interrupt (and does so even when
* using the VRR timing generator!). Thus updating TRANS_VSYNC
* here seems fine even if it isn't double buffered.
*/
With that
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> + intel_de_write(display, TRANS_VSYNC(display, cpu_transcoder),
> + VSYNC_START(adjusted_mode->crtc_vsync_start - 1) |
> + VSYNC_END(adjusted_mode->crtc_vsync_end - 1));
> /*
> * For platforms that always use VRR Timing Generator, the VTOTAL.Vtotal
> * bits are not required. Since the support for these bits is going to
> @@ -5166,9 +5169,9 @@ intel_pipe_config_compare(const struct intel_crtc_state *current_config,
> PIPE_CONF_CHECK_I(name.crtc_vdisplay); \
> if (!fastset || !allow_vblank_delay_fastset(current_config)) \
> PIPE_CONF_CHECK_I(name.crtc_vblank_start); \
> - PIPE_CONF_CHECK_I(name.crtc_vsync_start); \
> - PIPE_CONF_CHECK_I(name.crtc_vsync_end); \
> if (!fastset || !pipe_config->update_lrr) { \
> + PIPE_CONF_CHECK_I(name.crtc_vsync_start); \
> + PIPE_CONF_CHECK_I(name.crtc_vsync_end); \
> PIPE_CONF_CHECK_I(name.crtc_vtotal); \
> PIPE_CONF_CHECK_I(name.crtc_vblank_end); \
> } \
> @@ -5782,6 +5785,8 @@ static bool lrr_params_changed(const struct intel_crtc_state *old_crtc_state,
>
> return old_adjusted_mode->crtc_vblank_start != new_adjusted_mode->crtc_vblank_start ||
> old_adjusted_mode->crtc_vblank_end != new_adjusted_mode->crtc_vblank_end ||
> + old_adjusted_mode->crtc_vsync_start != new_adjusted_mode->crtc_vsync_start ||
> + old_adjusted_mode->crtc_vsync_end != new_adjusted_mode->crtc_vsync_end ||
> old_adjusted_mode->crtc_vtotal != new_adjusted_mode->crtc_vtotal ||
> old_crtc_state->set_context_latency != new_crtc_state->set_context_latency;
> }
> --
> 2.45.2
--
Ville Syrjälä
Intel
next prev parent reply other threads:[~2026-06-03 12:13 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-22 13:25 [PATCH 0/6] drm/i915/intel_panel: Fix seamless VRR mode switching for DRRS panels Ankit Nautiyal
2026-05-22 13:25 ` [PATCH 1/6] drm/i915/display: Handle VSYNC timing in LRR path Ankit Nautiyal
2026-06-03 12:13 ` Ville Syrjälä [this message]
2026-05-22 13:25 ` [PATCH 2/6] drm/i915/panel: Preserve Vtotal-Vsync distance while adjusting vtotal Ankit Nautiyal
2026-06-03 12:14 ` Ville Syrjälä
2026-05-22 13:25 ` [PATCH 3/6] drm/i915/intel_panel: Add a helper to get the highest refresh rate mode Ankit Nautiyal
2026-05-22 13:25 ` [PATCH 4/6] drm/i915/intel_panel: Pass crtc_state to intel_panel_compute_config Ankit Nautiyal
2026-05-22 13:25 ` [PATCH 5/6] drm/i915/intel_panel: Use highest refresh rate mode for VRR panels Ankit Nautiyal
2026-05-22 13:25 ` [PATCH 6/6] drm/i915/intel_panel: Refine VRR fixed mode selection for DRRS panels Ankit Nautiyal
2026-05-22 14:38 ` ✓ CI.KUnit: success for drm/i915/intel_panel: Fix seamless VRR mode switching for DRRS panels (rev3) Patchwork
2026-05-22 15:16 ` ✗ Xe.CI.BAT: failure " Patchwork
2026-05-22 17:48 ` ✓ i915.CI.BAT: success " Patchwork
2026-05-22 21:37 ` ✗ Xe.CI.FULL: failure " Patchwork
2026-05-24 0:07 ` ✗ i915.CI.Full: " Patchwork
2026-06-03 14:38 ` [PATCH 0/6] drm/i915/intel_panel: Fix seamless VRR mode switching for DRRS panels Ville Syrjälä
2026-06-09 3:03 ` Nautiyal, Ankit K
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aiAaUVt3l2oRN2ZP@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=ankit.k.nautiyal@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=jani.nikula@linux.intel.com \
--cc=navaremanasi@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.