Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Nautiyal, Ankit K" <ankit.k.nautiyal@intel.com>
To: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>,
	<intel-gfx@lists.freedesktop.org>
Cc: <intel-xe@lists.freedesktop.org>, <ville.syrjala@linux.intel.com>,
	<uma.shankar@intel.com>, <jani.nikula@intel.com>
Subject: Re: [PATCH v10 17/17] drm/i915/vrr: Enable DC Balance
Date: Tue, 16 Dec 2025 18:00:59 +0530	[thread overview]
Message-ID: <8d31226f-a94d-49f7-8ee5-aa34ea37f19c@intel.com> (raw)
In-Reply-To: <20251202073659.926838-18-mitulkumar.ajitkumar.golani@intel.com>


On 12/2/2025 1:06 PM, Mitul Golani wrote:
> Enable DC Balance from vrr compute config and related hw flag.
> Also to add pipe restrictions along with this.
>
> --v2:
> - Use dc balance check instead of source restriction.
> --v3:
> - Club pipe restriction check with dc balance enablement. (Ankit)
>
> Signed-off-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
> ---
>   drivers/gpu/drm/i915/display/intel_vrr.c | 11 ++++++++++-
>   1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c b/drivers/gpu/drm/i915/display/intel_vrr.c
> index ba8b3c664e70..db74744ddb31 100644
> --- a/drivers/gpu/drm/i915/display/intel_vrr.c
> +++ b/drivers/gpu/drm/i915/display/intel_vrr.c
> @@ -399,6 +399,7 @@ intel_vrr_dc_balance_compute_config(struct intel_crtc_state *crtc_state)
>   	crtc_state->vrr.dc_balance.vblank_target =
>   		DIV_ROUND_UP((crtc_state->vrr.vmax - crtc_state->vrr.vmin) *
>   			     DCB_BLANK_TARGET, 100);
> +	crtc_state->vrr.dc_balance.enable = true;
>   }
>   
>   void
> @@ -789,6 +790,7 @@ intel_vrr_enable_dc_balancing(const struct intel_crtc_state *crtc_state)
>   	enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
>   	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>   	enum pipe pipe = crtc->pipe;
> +	u32 vrr_ctl = intel_de_read(display, TRANS_VRR_CTL(display, cpu_transcoder));

As Uma pointed out, it would be better to use trans_vrr_ctl() here.


>   
>   	if (!crtc_state->vrr.dc_balance.enable)
>   		return;
> @@ -827,6 +829,9 @@ intel_vrr_enable_dc_balancing(const struct intel_crtc_state *crtc_state)
>   	intel_de_write(display, TRANS_ADAPTIVE_SYNC_DCB_CTL(cpu_transcoder),
>   		       ADAPTIVE_SYNC_COUNTER_EN);
>   	intel_pipedmc_dcb_enable(NULL, crtc);
> +
> +	vrr_ctl |= VRR_CTL_DCB_ADJ_ENABLE;
> +	intel_de_write(display, TRANS_VRR_CTL(display, cpu_transcoder), vrr_ctl);
>   }
>   
>   static void
> @@ -836,6 +841,7 @@ intel_vrr_disable_dc_balancing(const struct intel_crtc_state *old_crtc_state)
>   	enum transcoder cpu_transcoder = old_crtc_state->cpu_transcoder;
>   	struct intel_crtc *crtc = to_intel_crtc(old_crtc_state->uapi.crtc);
>   	enum pipe pipe = crtc->pipe;
> +	u32 vrr_ctl = intel_de_read(display, TRANS_VRR_CTL(display, cpu_transcoder));
>   
>   	if (!old_crtc_state->vrr.dc_balance.enable)
>   		return;
> @@ -858,6 +864,9 @@ intel_vrr_disable_dc_balancing(const struct intel_crtc_state *old_crtc_state)
>   	intel_de_write(display, TRANS_VRR_DCB_ADJ_FLIPLINE_CFG(cpu_transcoder), 0);
>   	intel_de_write(display, TRANS_VRR_DCB_VMAX(cpu_transcoder), 0);
>   	intel_de_write(display, TRANS_VRR_DCB_FLIPLINE(cpu_transcoder), 0);
> +
> +	vrr_ctl &= ~VRR_CTL_DCB_ADJ_ENABLE;
> +	intel_de_write(display, TRANS_VRR_CTL(display, cpu_transcoder), vrr_ctl);
>   }
>   
>   static void intel_vrr_tg_enable(const struct intel_crtc_state *crtc_state,
> @@ -963,7 +972,7 @@ void intel_vrr_get_dc_balance_config(struct intel_crtc_state *crtc_state)
>   	struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
>   	enum pipe pipe = crtc->pipe;
>   
> -	if (!HAS_VRR_DC_BALANCE(display))
> +	if (!intel_vrr_dc_balance_possible(crtc_state))
>   		return;
This change looks out of place.
Hmm .. In Patch#5, intel_vrr_get_dc_balance_config() is added, but at 
that point intel_vrr_dc_balance_possible() is not yet defined.
I think the above update should either:

Move to Patch#7 (where the helper is introduced), or
Introduce the helper in a separate patch placed right after Patch#7 but 
before the enablement patch.

PS:
My earlier suggestion in [1] was to introduce the helper sooner to avoid 
having it as the last patch.
This was to make sure we have pipe restriction in place before the 
enablement logic lands, to avoid any risk enabling DC balancing on 
unsupported pipes.
Given the current series structure, moving this change to Patch#7 or 
introducing a separate patch right after Patch#7 (before enablement) 
seems a better idea.

[1] https://patchwork.freedesktop.org/patch/690789/?series=158156&rev=1


Regards,
Ankit
>   
>   	reg_val = intel_de_read(display, PIPEDMC_DCB_VMIN(pipe));

  parent reply	other threads:[~2025-12-16 12:31 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-02  7:36 [PATCH v10 00/17] Enable/Disable DC balance along with VRR DSB Mitul Golani
2025-12-02  7:36 ` [PATCH v10 01/17] drm/i915/display: Add source param for dc balance Mitul Golani
2025-12-02  7:36 ` [PATCH v10 02/17] drm/i915/dmc: Add pipe dmc registers and bits for DC Balance Mitul Golani
2025-12-02  7:36 ` [PATCH v10 03/17] drm/i915/vrr: Add VRR DC balance registers Mitul Golani
2025-12-02  7:36 ` [PATCH v10 04/17] drm/i915/vrr: Add functions to read out vmin/vmax stuff Mitul Golani
2025-12-15  6:22   ` Shankar, Uma
2025-12-16 12:33   ` Nautiyal, Ankit K
2025-12-02  7:36 ` [PATCH v10 05/17] drm/i915/vrr: Add DC Balance params to crtc_state Mitul Golani
2025-12-02  7:36 ` [PATCH v10 06/17] drm/i915/vrr: Add state dump for DC Balance params Mitul Golani
2025-12-02  7:36 ` [PATCH v10 07/17] drm/i915/vrr: Add compute config " Mitul Golani
2025-12-15  6:25   ` Shankar, Uma
2025-12-02  7:36 ` [PATCH v10 08/17] drm/i915/vrr: Add function to reset DC balance accumulated params Mitul Golani
2025-12-02  7:36 ` [PATCH v10 09/17] drm/i915/display: Add DC Balance flip count operations Mitul Golani
2025-12-02  7:36 ` [PATCH v10 10/17] drm/i915/vrr: Write DC balance params to hw registers Mitul Golani
2025-12-02  7:36 ` [PATCH v10 11/17] drm/i915/vblank: Extract vrr_vblank_start() Mitul Golani
2025-12-02  7:36 ` [PATCH v10 12/17] drm/i915/vrr: Implement vblank evasion with DC balancing Mitul Golani
2025-12-02  7:36 ` [PATCH v10 13/17] drm/i915/display: Wait for VRR PUSH status update Mitul Golani
2025-12-15  6:27   ` Shankar, Uma
2025-12-16 12:34   ` Nautiyal, Ankit K
2025-12-02  7:36 ` [PATCH v10 14/17] drm/i915/dsb: Add pipedmc dc balance enable/disable Mitul Golani
2025-12-02  7:36 ` [PATCH v10 15/17] drm/i915/vrr: Pause DC Balancing for DSB commits Mitul Golani
2025-12-15  7:40   ` Shankar, Uma
2025-12-16 12:35   ` Nautiyal, Ankit K
2025-12-02  7:36 ` [PATCH v10 16/17] drm/i915/display: Add function to configure event for dc balance Mitul Golani
2025-12-15  7:42   ` Shankar, Uma
2025-12-16 12:36   ` Nautiyal, Ankit K
2025-12-02  7:36 ` [PATCH v10 17/17] drm/i915/vrr: Enable DC Balance Mitul Golani
2025-12-15  7:47   ` Shankar, Uma
2025-12-23 10:56     ` Golani, Mitulkumar Ajitkumar
2025-12-16 12:30   ` Nautiyal, Ankit K [this message]
2025-12-23 10:57     ` Golani, Mitulkumar Ajitkumar
2025-12-02  8:20 ` ✗ CI.checkpatch: warning for Enable/Disable DC balance along with VRR DSB Patchwork
2025-12-02  8:21 ` ✓ CI.KUnit: success " Patchwork
2025-12-02  8:37 ` ✗ CI.checksparse: warning " Patchwork
2025-12-02  9:23 ` ✓ Xe.CI.BAT: success " Patchwork
2025-12-02 10:21 ` ✓ Xe.CI.Full: " 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=8d31226f-a94d-49f7-8ee5-aa34ea37f19c@intel.com \
    --to=ankit.k.nautiyal@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=jani.nikula@intel.com \
    --cc=mitulkumar.ajitkumar.golani@intel.com \
    --cc=uma.shankar@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox