[PATCH 1/2] drm/i915/hotplug: Reduce SHPD_FLITER_CNT for DISPLAY_VER() == 12
Ville Syrjälä
ville.syrjala at linux.intel.com
Mon Sep 23 18:28:31 UTC 2024
On Mon, Sep 23, 2024 at 11:09:19AM -0700, Matt Roper wrote:
> On Mon, Sep 23, 2024 at 08:38:35PM +0300, Ville Syrjälä wrote:
> > On Mon, Sep 23, 2024 at 08:40:07AM +0530, Suraj Kandpal wrote:
> > > Reduce SHPD_CNT to 250us for display version 12 as it lines up
> > > with DP1.4a(Table3-4) spec.
> > >
> > > --v2
> > > -Update commit message and comment [Matt]
> > >
> > > Signed-off-by: Suraj Kandpal <suraj.kandpal at intel.com>
> > > ---
> > > drivers/gpu/drm/i915/display/intel_hotplug_irq.c | 6 +++++-
> > > 1 file changed, 5 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..8427386132e6 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_hotplug_irq.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_hotplug_irq.c
> > > @@ -849,7 +849,11 @@ 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)
> > > + /*
> > > + * We reduce the value to 250us to be able to 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);
> >
> > IMO if we start reducing this for older platforms then we
> > should just do it for all of them, instead of based on some
> > random cutoff.
>
> There is a note in the bspec (page 4342) that says
>
> "Program SHPD_FILTER_CNT with the "500 microseconds adjusted"
> value before enabling hotplug detection."
>
> for CNP and ICP which is where the cutoff originally came from. I'm not
> sure about CML (which uses CNP), but ICL at least supports DP1.4a, so I
> think the note in the bspec is probably just outdated and we'd still
> want 250 to ensure we align with the DP spec.
The 250usec has been in the DP spec forever. DP 1.4a vs. older
is a moot point.
Also, this is about filtering out glitches generated by the sink,
and anyone can plug any DP sink to any DP source. So if the 500us
is a problem for TGP+ then it'll be a problem for LPT+ as well
when using the same sink.
For IBX/CPT it seems we can't adjust this to a more sensible value
(the only choice seems to be 500us vs. 50us), so LPT+ is the hard
cutoff unfortunately.
--
Ville Syrjälä
Intel
More information about the Intel-gfx
mailing list