[PATCH 1/2] drm/i915/hotplug: Reduce SHPD_FLITER_CNT for Display12
Matt Roper
matthew.d.roper at intel.com
Fri Sep 20 21:26:07 UTC 2024
On Tue, Sep 17, 2024 at 10:53:06AM +0530, Suraj Kandpal wrote:
> Reduce SHPD_CNT to 250us for Display12 to implement WA 14013120569
> in a alternative way. Its not what the Wa asks to do but has the same
> effect which would be detecting shpd when it is less than 250us and
> this would be okay as it lines up with DP1.4a(Table3-4) spec.
>
> Signed-off-by: Suraj Kandpal <suraj.kandpal at intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_hotplug_irq.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_hotplug_irq.c b/drivers/gpu/drm/i915/display/intel_hotplug_irq.c
> index 2c4e946d5575..05a9e82cac75 100644
> --- a/drivers/gpu/drm/i915/display/intel_hotplug_irq.c
> +++ b/drivers/gpu/drm/i915/display/intel_hotplug_irq.c
> @@ -849,7 +849,12 @@ static void icp_hpd_irq_setup(struct drm_i915_private *dev_priv)
> enabled_irqs = intel_hpd_enabled_irqs(dev_priv, dev_priv->display.hotplug.pch_hpd);
> hotplug_irqs = intel_hpd_hotplug_irqs(dev_priv, dev_priv->display.hotplug.pch_hpd);
>
> - if (INTEL_PCH_TYPE(dev_priv) <= PCH_TGP)
> + /*
> + * As an alternative to WA_14013120569 we reduce the value to 250us to be able to
If I remember correctly, when the SHPD_FILTER_CNT programming was first
added in commit 4948738e296c ("drm/i915/hotplug: Reduce SHPD_FILTER to
250us") the justification was that we thought it could serve as a
cleaner alternative to the steps recommended by Wa_14013120569. However
when it was later discussed with the hardware teams in July 2023, they
said that this was _not_ a valid replacement for Wa_14013120569; the
steps given on the workaround are necessary due to the specific nature
of the clock signals on some of these platforms. However changing the
SHPD_FILTER_CNT value to 250us is good/desirable for different reasons
(to align with the DP source requirements in the DP spec).
So as far as the workaround is concerned, I think we need to either:
- Go back and actually implement the workaround using the original
steps the hardware team settled on.
- Decide that we just won't implement the workaround because the
recommended implementation is too ugly and Linux use cases aren't
suffering any adverse effects by not implementing it.
Either way, I think we should avoid mentioning that workaround in the
comments here (and in the commit message) because it turns out that this
is not actually a valid alternative. The justification given for
switching to use a 250us on platforms with a TGL PCH should be focused
specifically on alignment with the DP spec to avoid any confusion.
Matt
> + * detect SHPD when an external display is connected. This is also expected of
> + * us as stated in DP1.4a Table 3-4.
> + */
> + if (INTEL_PCH_TYPE(dev_priv) < PCH_TGP)
> intel_uncore_write(&dev_priv->uncore, SHPD_FILTER_CNT, SHPD_FILTER_CNT_500_ADJ);
> else
> intel_uncore_write(&dev_priv->uncore, SHPD_FILTER_CNT, SHPD_FILTER_CNT_250);
> --
> 2.43.2
>
--
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation
More information about the Intel-gfx
mailing list