From: "Nautiyal, Ankit K" <ankit.k.nautiyal@intel.com>
To: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>,
<intel-gfx@lists.freedesktop.org>,
<intel-xe@lists.freedesktop.org>
Cc: <ville.syrjala@linux.intel.com>
Subject: Re: [PATCH v2 08/13] drm/i915/vrr: Implement vblank evasion with DC balancing
Date: Wed, 23 Apr 2025 12:45:06 +0530 [thread overview]
Message-ID: <caf09a4e-a175-4be3-ac94-7bb55cfd372f@intel.com> (raw)
In-Reply-To: <20250421154900.2095202-9-mitulkumar.ajitkumar.golani@intel.com>
On 4/21/2025 9:18 PM, Mitul Golani wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Add vblank evasion logic when vrr is already enabled along with
> dc balance is computed.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_dsb.c | 31 ++++++++++++++++++++-
> drivers/gpu/drm/i915/display/intel_vblank.c | 26 +++++++++++++++--
> 2 files changed, 53 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dsb.c b/drivers/gpu/drm/i915/display/intel_dsb.c
> index 72fe390c5af2..ffd10ee96e29 100644
> --- a/drivers/gpu/drm/i915/display/intel_dsb.c
> +++ b/drivers/gpu/drm/i915/display/intel_dsb.c
> @@ -577,7 +577,36 @@ void intel_dsb_vblank_evade(struct intel_atomic_state *state,
> if (crtc_state->has_psr)
> intel_dsb_emit_wait_dsl(dsb, DSB_OPCODE_WAIT_DSL_OUT, 0, 0);
>
> - if (pre_commit_is_vrr_active(state, crtc)) {
> + if (pre_commit_is_vrr_active(state, crtc) && crtc_state->vrr.dc_balance.enable) {
> + int vblank_delay = intel_vrr_vblank_delay(crtc_state);
> + int vmin_vblank_start, vmax_vblank_start;
> +
> + vmin_vblank_start = intel_vrr_dcb_vmin_vblank_start_next(crtc_state);
> +
> + if (vmin_vblank_start >= 0) {
> + end = vmin_vblank_start;
> + start = end - vblank_delay - latency;
> + intel_dsb_wait_scanline_out(state, dsb, start, end);
> + }
> +
> + vmax_vblank_start = intel_vrr_dcb_vmax_vblank_start_next(crtc_state);
> +
> + if (vmax_vblank_start >= 0) {
> + end = vmax_vblank_start;
> + start = end - vblank_delay - latency;
> + intel_dsb_wait_scanline_out(state, dsb, start, end);
> + }
> +
> + vmin_vblank_start = intel_vrr_dcb_vmin_vblank_start_final(crtc_state);
> + end = vmin_vblank_start;
> + start = end - vblank_delay - latency;
> + intel_dsb_wait_scanline_out(state, dsb, start, end);
> +
> + vmax_vblank_start = intel_vrr_dcb_vmax_vblank_start_final(crtc_state);
> + end = vmax_vblank_start;
> + start = end - vblank_delay - latency;
> + intel_dsb_wait_scanline_out(state, dsb, start, end);
> + } else if (pre_commit_is_vrr_active(state, crtc)) {
> int vblank_delay = intel_vrr_vblank_delay(crtc_state);
>
> end = intel_vrr_vmin_vblank_start(crtc_state);
> diff --git a/drivers/gpu/drm/i915/display/intel_vblank.c b/drivers/gpu/drm/i915/display/intel_vblank.c
> index 680013f00fc0..eb74d08d6690 100644
> --- a/drivers/gpu/drm/i915/display/intel_vblank.c
> +++ b/drivers/gpu/drm/i915/display/intel_vblank.c
> @@ -644,10 +644,30 @@ intel_pre_commit_crtc_state(struct intel_atomic_state *state,
>
> static int vrr_vblank_start(const struct intel_crtc_state *crtc_state)
> {
> - if (intel_vrr_is_push_sent(crtc_state))
> - return intel_vrr_vmin_vblank_start(crtc_state);
> + bool is_push_sent = intel_vrr_is_push_sent(crtc_state);
> + int vblank_start;
> +
> + if (!crtc_state->vrr.dc_balance.enable) {
> + if (is_push_sent)
> + return intel_vrr_vmin_vblank_start(crtc_state);
> + else
> + return intel_vrr_vmax_vblank_start(crtc_state);
> + }
> +
> + if (is_push_sent)
> + vblank_start = intel_vrr_dcb_vmin_vblank_start_next(crtc_state);
> else
> - return intel_vrr_vmax_vblank_start(crtc_state);
> + vblank_start = intel_vrr_dcb_vmax_vblank_start_next(crtc_state);
> +
> + if (vblank_start >= 0)
> + return vblank_start;
> +
> + if (is_push_sent)
> + vblank_start = intel_vrr_dcb_vmin_vblank_start_final(crtc_state);
> + else
> + vblank_start = intel_vrr_dcb_vmax_vblank_start_final(crtc_state);
> +
> + return vblank_start;
> }
>
> void intel_vblank_evade_init(const struct intel_crtc_state *old_crtc_state,
next prev parent reply other threads:[~2025-04-23 7:15 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-21 15:48 [PATCH v2 00/13] Enable/Disable DC balance along with VRR DSB Mitul Golani
2025-04-21 15:48 ` [PATCH v2 01/13] drm/i915/vrr: Refactor vmin/vmax stuff Mitul Golani
2025-04-23 6:49 ` Nautiyal, Ankit K
2025-04-25 11:36 ` Nautiyal, Ankit K
2025-04-21 15:48 ` [PATCH v2 02/13] drm/i915/vrr: Add functions to read out " Mitul Golani
2025-04-23 6:52 ` Nautiyal, Ankit K
2025-04-23 13:17 ` Nautiyal, Ankit K
2025-04-23 13:34 ` Nautiyal, Ankit K
2025-04-21 15:48 ` [PATCH v2 03/13] drm/i915/display: Add source param for dc balance Mitul Golani
2025-04-23 6:58 ` Nautiyal, Ankit K
2025-04-21 15:48 ` [PATCH v2 04/13] drm/i915/vrr: Add enable/disable calls for DC Balance Mitul Golani
2025-04-23 7:01 ` Nautiyal, Ankit K
2025-04-21 15:48 ` [PATCH v2 05/13] drm/i915/vrr: Add compute config for DC balance params Mitul Golani
2025-04-23 7:05 ` Nautiyal, Ankit K
2025-04-21 15:48 ` [PATCH v2 06/13] drm/i915/vrr: Add state dump for dc " Mitul Golani
2025-04-23 8:47 ` Nautiyal, Ankit K
2025-04-21 15:48 ` [PATCH v2 07/13] drm/i915: Extract vrr_vblank_start() Mitul Golani
2025-04-23 7:10 ` Nautiyal, Ankit K
2025-04-21 15:48 ` [PATCH v2 08/13] drm/i915/vrr: Implement vblank evasion with DC balancing Mitul Golani
2025-04-23 7:15 ` Nautiyal, Ankit K [this message]
2025-04-21 15:48 ` [PATCH v2 09/13] drm/i915/dsb: Add pipedmc dc balance enable/disable Mitul Golani
2025-04-23 7:16 ` Nautiyal, Ankit K
2025-04-21 15:48 ` [PATCH v2 10/13] drm/i915/vrr: Pause DC balancing for DSB commits Mitul Golani
2025-04-23 7:21 ` Nautiyal, Ankit K
2025-04-21 15:48 ` [PATCH v2 11/13] drm/i915/vrr: Add state checker for dc balance params Mitul Golani
2025-04-23 7:24 ` Nautiyal, Ankit K
2025-04-23 10:21 ` Jani Nikula
2025-04-23 11:36 ` Nautiyal, Ankit K
2025-04-21 15:48 ` [PATCH v2 12/13] drm/i915/display: Prepare state checker for dc balance enable Mitul Golani
2025-04-23 7:26 ` Nautiyal, Ankit K
2025-04-21 15:49 ` [PATCH v2 13/13] drm/i915/vrr: enable dc balance bit Mitul Golani
2025-04-23 7:28 ` Nautiyal, Ankit K
2025-04-21 16:43 ` ✓ CI.Patch_applied: success for Enable/Disable DC balance along with VRR DSB Patchwork
2025-04-21 16:44 ` ✓ CI.checkpatch: " Patchwork
2025-04-21 16:45 ` ✓ CI.KUnit: " Patchwork
2025-04-21 16:53 ` ✓ CI.Build: " Patchwork
2025-04-21 16:55 ` ✓ CI.Hooks: " Patchwork
2025-04-21 16:57 ` ✗ CI.checksparse: warning " Patchwork
2025-04-21 18:39 ` ✗ Xe.CI.Full: failure " Patchwork
2025-04-22 7:52 ` ✗ Fi.CI.SPARSE: warning for Enable/Disable DC balance along with VRR DSB (rev2) Patchwork
2025-04-22 8:16 ` ✗ i915.CI.BAT: failure " Patchwork
2025-04-22 13:19 ` ✓ Xe.CI.BAT: success for Enable/Disable DC balance along with VRR DSB Patchwork
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=caf09a4e-a175-4be3-ac94-7bb55cfd372f@intel.com \
--to=ankit.k.nautiyal@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=mitulkumar.ajitkumar.golani@intel.com \
--cc=ville.syrjala@linux.intel.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.