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 <[email protected]>
> > > ---
> > >  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

Reply via email to