(In reply to Jani Nikula from comment #12) > However this helps. We're missing something. > > diff --git a/drivers/gpu/drm/i915/i915_irq.c > b/drivers/gpu/drm/i915/i915_irq.c > index 76bd40e13391..0d524034abd7 100644 > --- a/drivers/gpu/drm/i915/i915_irq.c > +++ b/drivers/gpu/drm/i915/i915_irq.c > @@ -1827,6 +1827,9 @@ static void ibx_hpd_irq_handler(struct drm_device > *dev, u32 hotplug_trigger, > dig_hotplug_reg = I915_READ(PCH_PORT_HOTPLUG); > I915_WRITE(PCH_PORT_HOTPLUG, dig_hotplug_reg);
Is the read alone enough, or do you need the write too?
> > + if (!hotplug_trigger) > + return; > + > intel_get_hpd_pins(&pin_mask, &long_mask, hotplug_trigger, > dig_hotplug_reg, hpd, > pch_port_hotplug_long_detect); > @@ -1934,8 +1937,7 @@ static void cpt_irq_handler(struct drm_device *dev, > u32 pch_iir) > int pipe; > u32 hotplug_trigger = pch_iir & SDE_HOTPLUG_MASK_CPT; > > - if (hotplug_trigger) > - ibx_hpd_irq_handler(dev, hotplug_trigger, hpd_cpt); > + ibx_hpd_irq_handler(dev, hotplug_trigger, hpd_cpt); > > if (pch_iir & SDE_AUDIO_POWER_MASK_CPT) { > int port = ffs((pch_iir & SDE_AUDIO_POWER_MASK_CPT) >>
(In reply to Jani Nikula from comment #12) gpu/drm/ i915/i915_ irq.c gpu/drm/ i915/i915_ irq.c .0d524034abd7 100644 gpu/drm/ i915/i915_ irq.c gpu/drm/ i915/i915_ irq.c irq_handler( struct drm_device PCH_PORT_ HOTPLUG) ; PCH_PORT_ HOTPLUG, dig_hotplug_reg);
> However this helps. We're missing something.
>
> diff --git a/drivers/
> b/drivers/
> index 76bd40e13391.
> --- a/drivers/
> +++ b/drivers/
> @@ -1827,6 +1827,9 @@ static void ibx_hpd_
> *dev, u32 hotplug_trigger,
> dig_hotplug_reg = I915_READ(
> I915_WRITE(
Is the read alone enough, or do you need the write too?
> hpd_pins( &pin_mask, &long_mask, hotplug_trigger, hotplug_ long_detect) ; handler( struct drm_device *dev, MASK_CPT; irq_handler( dev, hotplug_trigger, hpd_cpt); irq_handler( dev, hotplug_trigger, hpd_cpt); POWER_MASK_ CPT) { POWER_MASK_ CPT) >>
> + if (!hotplug_trigger)
> + return;
> +
> intel_get_
> dig_hotplug_reg, hpd,
> pch_port_
> @@ -1934,8 +1937,7 @@ static void cpt_irq_
> u32 pch_iir)
> int pipe;
> u32 hotplug_trigger = pch_iir & SDE_HOTPLUG_
>
> - if (hotplug_trigger)
> - ibx_hpd_
> + ibx_hpd_
>
> if (pch_iir & SDE_AUDIO_
> int port = ffs((pch_iir & SDE_AUDIO_