[Intel-gfx] [PATCH 2/2] drm/i915: Use HOTPLUG_INT_STATUS_G4X on VLV/CHV

Ville Syrjälä ville.syrjala at linux.intel.com
Tue May 12 03:27:08 PDT 2015


On Tue, May 12, 2015 at 11:54:23AM +0300, Jani Nikula wrote:
> On Mon, 11 May 2015, ville.syrjala at linux.intel.com wrote:
> > From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> >
> > Use HOTPLUG_INT_STATUS_G4X instead of HOTPLUG_INT_STATUS_I915 on VLV/CHV
> > so that we don't confuse the AUX status bits with SDVO status bits.
> >
> > Avoid pointless log spam as below while handling AUX interrupts:
> > [drm:intel_hpd_irq_handler] hotplug event received, stat 0x00000040, dig 0x00000000
> > [drm:intel_hpd_irq_handler] hotplug event received, stat 0x00000040, dig 0x00000000
> > [drm:intel_hpd_irq_handler] hotplug event received, stat 0x00000040, dig 0x00000000
> > [drm:intel_hpd_irq_handler] hotplug event received, stat 0x00000040, dig 0x00000000
> > [drm:intel_hpd_irq_handler] hotplug event received, stat 0x00000040, dig 0x00000000
> > [drm:intel_dp_aux_ch] dp_aux_ch timeout status 0x71450064
> >
> > Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> 
> Reviewed-by: Jani Nikula <jani.nikula at intel.com>
> 
> Shouldn't we also have bugs about missing hotplug on BYT...? Like,
> there's a lot of talk about power management on
> 
> https://bugs.freedesktop.org/show_bug.cgi?id=89008
> 
> but could this make a difference?

Both HOTPLUG_INT_STATUS_G4X and HOTPLUG_INT_STATUS_I915 have the
required bits to have working hpd on VLV/CHV. Only the SDVO bits
differ, and we don't care about those. So the only issue is that
the i915 SDVO bits overlap with the AUX bits, so every time we
get an AUX interrupt we also think we get an SDVO hpd.

> 
> BR,
> Jani.
> 
> 
> > ---
> >  drivers/gpu/drm/i915/i915_irq.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> > index 9c5371b..557af88 100644
> > --- a/drivers/gpu/drm/i915/i915_irq.c
> > +++ b/drivers/gpu/drm/i915/i915_irq.c
> > @@ -79,7 +79,7 @@ static const u32 hpd_status_g4x[HPD_NUM_PINS] = {
> >  	[HPD_PORT_D] = PORTD_HOTPLUG_INT_STATUS
> >  };
> >  
> > -static const u32 hpd_status_i915[HPD_NUM_PINS] = { /* i915 and valleyview are the same */
> > +static const u32 hpd_status_i915[HPD_NUM_PINS] = {
> >  	[HPD_CRT] = CRT_HOTPLUG_INT_STATUS,
> >  	[HPD_SDVO_B] = SDVOB_HOTPLUG_INT_STATUS_I915,
> >  	[HPD_SDVO_C] = SDVOC_HOTPLUG_INT_STATUS_I915,
> > @@ -1743,7 +1743,7 @@ static void i9xx_hpd_irq_handler(struct drm_device *dev)
> >  		 */
> >  		POSTING_READ(PORT_HOTPLUG_STAT);
> >  
> > -		if (IS_G4X(dev)) {
> > +		if (IS_G4X(dev) || IS_VALLEYVIEW(dev)) {
> >  			u32 hotplug_trigger = hotplug_status & HOTPLUG_INT_STATUS_G4X;
> >  
> >  			intel_hpd_irq_handler(dev, hotplug_trigger, 0, hpd_status_g4x);
> > -- 
> > 2.0.5
> >
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 
> -- 
> Jani Nikula, Intel Open Source Technology Center

-- 
Ville Syrjälä
Intel OTC


More information about the Intel-gfx mailing list