All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: "José Roberto de Souza" <jose.souza@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH v4 1/4] drm/i915/display/tgl+: Set default values for all registers in PIPE_MBUS_DBOX_CTL
Date: Wed, 30 Mar 2022 13:30:14 +0300	[thread overview]
Message-ID: <YkQxNgcePGJGmuMJ@intel.com> (raw)
In-Reply-To: <20220329223102.218689-1-jose.souza@intel.com>

On Tue, Mar 29, 2022 at 03:30:59PM -0700, José Roberto de Souza wrote:
> MBUS_DBOX_B2B_TRANSACTIONS_MAX, MBUS_DBOX_B2B_TRANSACTIONS_DELAY and
> MBUS_DBOX_REGULATE_B2B_TRANSACTIONS_EN were being programmed with
> zeros while specification has different default values for this
> registers in display 12 and newer.
> 
> While at it also converting all MBUS_DBOX macros to use REG_* macros.
> 
> BSpec: 50343
> BSpec: 20231
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
> Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_display.c | 13 +++++++---
>  drivers/gpu/drm/i915/i915_reg.h              | 26 ++++++++++++--------
>  2 files changed, 26 insertions(+), 13 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 28bfb73ae6471..234f363aad651 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -1829,13 +1829,20 @@ static void icl_pipe_mbus_enable(struct intel_crtc *crtc, bool joined_mbus)
>  {
>  	struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
>  	enum pipe pipe = crtc->pipe;
> -	u32 val;
> +	u32 val = 0;
> +
> +	if (DISPLAY_VER(dev_priv) >= 12) {
> +		val |= MBUS_DBOX_B2B_TRANSACTIONS_MAX(16);
> +		val |= MBUS_DBOX_B2B_TRANSACTIONS_DELAY(1);
> +		val |= MBUS_DBOX_REGULATE_B2B_TRANSACTIONS_EN;
> +	}
>  
>  	/* Wa_22010947358:adl-p */
>  	if (IS_ALDERLAKE_P(dev_priv))
> -		val = joined_mbus ? MBUS_DBOX_A_CREDIT(6) : MBUS_DBOX_A_CREDIT(4);
> +		val |= joined_mbus ? MBUS_DBOX_A_CREDIT(6) :
> +				     MBUS_DBOX_A_CREDIT(4);
>  	else
> -		val = MBUS_DBOX_A_CREDIT(2);
> +		val |= MBUS_DBOX_A_CREDIT(2);

It might make sense to have per-platform functions to determine
the whole register value. But that's a separate topic.

>  
>  	if (DISPLAY_VER(dev_priv) >= 12) {
>  		val |= MBUS_DBOX_BW_CREDIT(2);
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index a0d652f19ff93..f47f9dfc9b0ce 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -1103,16 +1103,22 @@
>  #define MBUS_ABOX_BT_CREDIT_POOL1_MASK	(0x1F << 0)
>  #define MBUS_ABOX_BT_CREDIT_POOL1(x)	((x) << 0)
>  
> -#define _PIPEA_MBUS_DBOX_CTL		0x7003C
> -#define _PIPEB_MBUS_DBOX_CTL		0x7103C
> -#define PIPE_MBUS_DBOX_CTL(pipe)	_MMIO_PIPE(pipe, _PIPEA_MBUS_DBOX_CTL, \
> -						   _PIPEB_MBUS_DBOX_CTL)
> -#define MBUS_DBOX_BW_CREDIT_MASK	(3 << 14)
> -#define MBUS_DBOX_BW_CREDIT(x)		((x) << 14)
> -#define MBUS_DBOX_B_CREDIT_MASK		(0x1F << 8)
> -#define MBUS_DBOX_B_CREDIT(x)		((x) << 8)
> -#define MBUS_DBOX_A_CREDIT_MASK		(0xF << 0)
> -#define MBUS_DBOX_A_CREDIT(x)		((x) << 0)
> +#define _PIPEA_MBUS_DBOX_CTL			0x7003C
> +#define _PIPEB_MBUS_DBOX_CTL			0x7103C
> +#define PIPE_MBUS_DBOX_CTL(pipe)		_MMIO_PIPE(pipe, _PIPEA_MBUS_DBOX_CTL, \
> +							   _PIPEB_MBUS_DBOX_CTL)
> +#define MBUS_DBOX_B2B_TRANSACTIONS_MAX_MASK	REG_GENMASK(24, 20)

Could throw in some tgl+ comments onto these b2b defines.

> +#define MBUS_DBOX_B2B_TRANSACTIONS_MAX(x)	REG_FIELD_PREP(MBUS_DBOX_B2B_TRANSACTIONS_MAX_MASK, x)
> +#define MBUS_DBOX_B2B_TRANSACTIONS_DELAY_MASK	REG_GENMASK(19, 17)
> +#define MBUS_DBOX_B2B_TRANSACTIONS_DELAY(x)	REG_FIELD_PREP(MBUS_DBOX_B2B_TRANSACTIONS_DELAY_MASK, x)
> +#define MBUS_DBOX_B2B_TRANSACTIONS_DELAY_MASK	REG_GENMASK(19, 17)

Second MBUS_DBOX_B2B_TRANSACTIONS_DELAY_MASK define.

with that removed:
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

> +#define MBUS_DBOX_REGULATE_B2B_TRANSACTIONS_EN	REG_BIT(16)
> +#define MBUS_DBOX_BW_CREDIT_MASK		REG_GENMASK(15, 14)
> +#define MBUS_DBOX_BW_CREDIT(x)			REG_FIELD_PREP(MBUS_DBOX_BW_CREDIT_MASK, x)
> +#define MBUS_DBOX_B_CREDIT_MASK			REG_GENMASK(12, 8)
> +#define MBUS_DBOX_B_CREDIT(x)			REG_FIELD_PREP(MBUS_DBOX_B_CREDIT_MASK, x)
> +#define MBUS_DBOX_A_CREDIT_MASK			REG_GENMASK(3, 0)
> +#define MBUS_DBOX_A_CREDIT(x)			REG_FIELD_PREP(MBUS_DBOX_A_CREDIT_MASK, x)
>  
>  #define MBUS_UBOX_CTL			_MMIO(0x4503C)
>  #define MBUS_BBOX_CTL_S1		_MMIO(0x45040)
> -- 
> 2.35.1

-- 
Ville Syrjälä
Intel

      parent reply	other threads:[~2022-03-30 10:30 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-29 22:30 [Intel-gfx] [PATCH v4 1/4] drm/i915/display/tgl+: Set default values for all registers in PIPE_MBUS_DBOX_CTL José Roberto de Souza
2022-03-29 22:31 ` [Intel-gfx] [PATCH v4 2/4] drm/i915/display/adlp: Adjust MBUS DBOX BW and B credits José Roberto de Souza
2022-03-30 10:54   ` Ville Syrjälä
2022-03-29 22:31 ` [Intel-gfx] [PATCH v4 3/4] drm/i915/display: Add HAS_MBUS_JOINING José Roberto de Souza
2022-03-29 22:31 ` [Intel-gfx] [PATCH v4 4/4] drm/i915/display/adlp: Fix programing of PIPE_MBUS_DBOX_CTL José Roberto de Souza
2022-03-30 10:59   ` Ville Syrjälä
2022-03-29 22:41 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [v4,1/4] drm/i915/display/tgl+: Set default values for all registers in PIPE_MBUS_DBOX_CTL Patchwork
2022-03-29 22:42 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2022-03-29 22:46 ` [Intel-gfx] ✗ Fi.CI.DOCS: " Patchwork
2022-03-29 23:19 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2022-03-30  0:37 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
2022-03-30 10:30 ` Ville Syrjälä [this message]

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=YkQxNgcePGJGmuMJ@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jose.souza@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.