[Intel-gfx] [PATCH] drm/i915: implement ibx_hpd_irq_setup

Egbert Eich eich at suse.com
Fri Mar 29 17:35:50 CET 2013


Sorry for replying so late, I wasn't able to task switch my brain
towards this when it was discussed:

Daniel Vetter writes:
 > diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
 > index 43436e0..1279a44 100644
 > --- a/drivers/gpu/drm/i915/i915_irq.c
 > +++ b/drivers/gpu/drm/i915/i915_irq.c
 > @@ -2084,7 +2084,7 @@ static void ibx_enable_hotplug(struct drm_device *dev)
 >  	I915_WRITE(PCH_PORT_HOTPLUG, hotplug);
 >  }
 >  
 > -static void ibx_irq_postinstall(struct drm_device *dev)
 > +static void ibx_hpd_irq_setup(struct drm_device *dev)
 >  {
 >  	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
 >  	struct drm_mode_config *mode_config = &dev->mode_config;
 > @@ -2095,12 +2095,10 @@ static void ibx_irq_postinstall(struct drm_device *dev)
 >  		mask &= ~SDE_HOTPLUG_MASK;
                ^^^^^^^^^^^^^^^^^^^^^^^
I'm missing those lines in the committed version of the patch.

 >  		list_for_each_entry(intel_encoder, &mode_config->encoder_list, base.head)
 >  			mask |= hpd_ibx[intel_encoder->hpd_pin];
 > -		mask |= SDE_GMBUS | SDE_AUX_MASK;
 >  	} else {
 >  		mask &= ~SDE_HOTPLUG_MASK_CPT;
                ^^^^^^^^^^^^^^^^^^^^^^^
 >  		list_for_each_entry(intel_encoder, &mode_config->encoder_list, base.head)
 >  			mask |= hpd_cpt[intel_encoder->hpd_pin];
 > -		mask |= SDE_GMBUS_CPT | SDE_AUX_MASK_CPT;
 >  	}
 >  	I915_WRITE(SDEIIR, I915_READ(SDEIIR));

These are not really relevant in the present code, however they are
important once I've got the hotplug stuff refitted as one needs to be
able to turn off individual interrupts.
I'm going to prepare a commit for this and will send it with the hpd 
irq storm patches.

Cheers,
	Egbert.



More information about the Intel-gfx mailing list