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
prev 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.