Comment 70 for bug 1488719

Revision history for this message
In , Ville-syrjala-e (ville-syrjala-e) wrote :

(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) >>