Re: [PATCH 1/2] drm/i915/hotplug: Reduce SHPD_FLITER_CNT for Display12

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx>
> ---
>  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



[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux