From: Imre Deak <imre.deak@intel.com>
To: "Nautiyal, Ankit K" <ankit.k.nautiyal@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 1/6] drm/i915/adlp: Add MST FEC BS jitter WA (Wa_14013163432)
Date: Tue, 30 Jan 2024 16:05:53 +0200 [thread overview]
Message-ID: <ZbkB9NHc2cO5Te7R@ideak-desk.fi.intel.com> (raw)
In-Reply-To: <03994206-48f4-4784-be85-fedacdded17e@intel.com>
On Tue, Jan 30, 2024 at 07:18:25PM +0530, Nautiyal, Ankit K wrote:
>
> On 1/29/2024 11:25 PM, Imre Deak wrote:
> > Add a workaround to fix BS (blank start) to BS jitter issues on MST
> > links when FEC is enabled. Neither Bspec requires this nor Windows
> > clears the WA when disabling the output - presumedly because
> > CHICKEN_MISC_3 gets reset after disabling the pipe/transcoder - so
> > follow suit.
> >
> > Bspec: 50050, 55424
> >
> > Signed-off-by: Imre Deak <imre.deak@intel.com>
> > ---
> > drivers/gpu/drm/i915/display/intel_dp_mst.c | 24 +++++++++++++++++++++
> > drivers/gpu/drm/i915/i915_reg.h | 3 +++
> > 2 files changed, 27 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > index 5fa25a5a36b55..22c1759f912db 100644
> > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
> > @@ -1106,6 +1106,28 @@ static void intel_mst_pre_enable_dp(struct intel_atomic_state *state,
> > intel_ddi_set_dp_msa(pipe_config, conn_state);
> > }
> > +static void enable_bs_jitter_was(const struct intel_crtc_state *crtc_state)
> > +{
> > + struct drm_i915_private *i915 = to_i915(crtc_state->uapi.crtc->dev);
> > + u32 clear = 0;
> > + u32 set = 0;
> > +
> > + if (!IS_ALDERLAKE_P(i915))
> > + return;
> > +
> > + if (!IS_DISPLAY_STEP(i915, STEP_D0, STEP_FOREVER))
> > + return;
> > +
> > + /* Wa_14013163432:adlp */
> > + if (crtc_state->fec_enable || intel_dp_is_uhbr(crtc_state))
>
> Is this for DP MST + UHBR and DP MST + FEC?
>
> From Bspec it seems this is meant only for MST+ FEC case, unless I am
> missing something.
You mean not meant for UHBR? The register description is clearer than
the modeset page, requiring it for both non-UHBR and UHBR. Windows also
enables it for both.
> > + set |= DP_MST_FEC_BS_JITTER_WA(crtc_state->cpu_transcoder);
> > +
> > + if (!clear && !set)
> > + return;
> > +
> > + intel_de_rmw(i915, CHICKEN_MISC_3, clear, set);
> > +}
> > +
> > static void intel_mst_enable_dp(struct intel_atomic_state *state,
> > struct intel_encoder *encoder,
> > const struct intel_crtc_state *pipe_config,
> > @@ -1134,6 +1156,8 @@ static void intel_mst_enable_dp(struct intel_atomic_state *state,
> > TRANS_DP2_VFREQ_PIXEL_CLOCK(crtc_clock_hz & 0xffffff));
> > }
> > + enable_bs_jitter_was(pipe_config);
> > +
> > intel_ddi_enable_transcoder_func(encoder, pipe_config);
> > clear_act_sent(encoder, pipe_config);
> > diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> > index 75bc08081fce9..67b7d02ea37bf 100644
> > --- a/drivers/gpu/drm/i915/i915_reg.h
> > +++ b/drivers/gpu/drm/i915/i915_reg.h
> > @@ -4555,6 +4555,9 @@
> > #define GLK_CL1_PWR_DOWN REG_BIT(11)
> > #define GLK_CL0_PWR_DOWN REG_BIT(10)
> > +#define CHICKEN_MISC_3 _MMIO(0x42088)
> > +#define DP_MST_FEC_BS_JITTER_WA(trans) REG_BIT(0 + (trans) - TRANSCODER_A)
>
>
> Should we mention /* adlp */ here?
In the register description the flag is valid for other platforms too,
even though it's only enabled for ADLP/RPLP.
> Regards,
>
> Ankit
>
> > +
> > #define CHICKEN_MISC_4 _MMIO(0x4208c)
> > #define CHICKEN_FBC_STRIDE_OVERRIDE REG_BIT(13)
> > #define CHICKEN_FBC_STRIDE_MASK REG_GENMASK(12, 0)
next prev parent reply other threads:[~2024-01-30 14:05 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-29 17:55 [PATCH 0/6] drm/i915/dp: Add jitter WAs for MST/FEC/DSC links Imre Deak
2024-01-29 17:55 ` [PATCH 1/6] drm/i915/adlp: Add MST FEC BS jitter WA (Wa_14013163432) Imre Deak
2024-01-30 13:48 ` Nautiyal, Ankit K
2024-01-30 14:05 ` Imre Deak [this message]
2024-01-31 5:05 ` Nautiyal, Ankit K
2024-01-29 17:55 ` [PATCH 2/6] drm/i915/adlp: Add MST short HBlank WA (Wa_14014143976) Imre Deak
2024-01-31 5:15 ` Nautiyal, Ankit K
2024-01-29 17:55 ` [PATCH 3/6] drm/i915/adlp: Add DP MST DPT/DPTP alignment " Imre Deak
2024-01-31 5:27 ` Nautiyal, Ankit K
2024-01-29 17:55 ` [PATCH 4/6] drm/i915/adlp+: Add DSC early pixel count scaling WA (Wa_1409098942) Imre Deak
2024-01-31 5:41 ` Nautiyal, Ankit K
2024-01-29 17:55 ` [PATCH 5/6] drm/i915/mtl+: Disable DP/DSC SF insertion at EOL WA Imre Deak
2024-01-31 5:58 ` Nautiyal, Ankit K
2024-01-29 17:55 ` [PATCH 6/6] drm/i915/mtl: Add DP FEC BS jitter WA Imre Deak
2024-01-31 6:04 ` Nautiyal, Ankit K
2024-01-29 18:42 ` ✓ Fi.CI.BAT: success for drm/i915/dp: Add jitter WAs for MST/FEC/DSC links Patchwork
2024-04-10 16:30 ` Imre Deak
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=ZbkB9NHc2cO5Te7R@ideak-desk.fi.intel.com \
--to=imre.deak@intel.com \
--cc=ankit.k.nautiyal@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
/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.