Re: [PATCH 0/5] drm/dp: Fix link training interrupted by HPD pulse

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

 



On Wed, Feb 26, 2025 at 02:55:32PM +0200, Jani Nikula wrote:
> On Mon, 24 Feb 2025, Imre Deak <imre.deak@xxxxxxxxx> wrote:
> > This patchset fixes a problem during Display Port link training, where
> > the link training is interrupted by a short HPD pulse generated by the
> > sink. Generally the sink signals a bad link state via such short pulses,
> > but the sink should prevent such signaling during link training.
> >
> > Some sinks do generate a short pulse as above during link training, or a
> > pulse generated before the link training started may be handled from a
> > scheduled work during link training. Such a handling may interfere with
> > the link training (see patch 3 for the reason), so this patchset
> > prevents the handling of pulses during link training.
> 
> I'm wondering if this series is made unnecessarily complicated by
> blocking the hotplug handling at the hpd pin level, while what is
> actually needed is blocking at the encoder level. I believe that would
> be simpler too.
> 
> Thoughts?

I think handling it at the HPD pin level makes more sense, since
handling of the HPD IRQs should still happen after they are unblocked.
Also in case of encoders sharing an HPD pin the handling of the IRQs
should be blocked for all the encoders using this pin. The same
block/unblock functionality is also needed for the CRT encoder, so it
makes sense to extend that (intel_hpd_disable/enable) to support digital
ports as well.

> BR,
> Jani.
> 
> >
> > Imre Deak (5):
> >   drm/i915/hpd: Let an HPD pin be in the disabled state when handling
> >     missed IRQs
> >   drm/i915/hpd: Add support for suspending the IRQ handling on an HPD
> >     pin
> >   drm/i915/dp: Fix link training interrupted by a short HPD pulse
> >   drm/i915/dp: Queue a link check after link training is complete
> >   drm/i915/crt: Use intel_hpd_suspend/resume() instead of
> >     intel_hpd_disable/enable()
> >
> >  drivers/gpu/drm/i915/display/intel_crt.c      |   7 +-
> >  .../gpu/drm/i915/display/intel_display_core.h |   2 +
> >  .../drm/i915/display/intel_dp_link_training.c |  23 +-
> >  drivers/gpu/drm/i915/display/intel_hotplug.c  | 264 ++++++++++++++----
> >  drivers/gpu/drm/i915/display/intel_hotplug.h  |   5 +-
> >  5 files changed, 237 insertions(+), 64 deletions(-)
> 
> -- 
> Jani Nikula, Intel



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

  Powered by Linux