Re: [PATCH] drm/i915: fix short vs. long hpd detection

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

 



On Wed, 15 Oct 2014, Jani Nikula <jani.nikula@xxxxxxxxx> wrote:
> On Wed, 15 Oct 2014, Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> wrote:
>> On Thu, Oct 02, 2014 at 10:26:58AM +0200, Daniel Vetter wrote:
>>> On Thu, Oct 02, 2014 at 11:16:32AM +0300, Jani Nikula wrote:
>>> > Fix short vs. long hpd detection for non-g4x and non-pch split
>>> > platforms.
>>> > 
>>> > Broken since introduction in
>>> > commit 13cf550448b58abf8f44f5d6a560f2d20871c965
>>> > Author: Dave Airlie <airlied@xxxxxxxxxx>
>>> > Date:   Wed Jun 18 11:29:35 2014 +1000
>>> > 
>>> >     drm/i915: rework digital port IRQ handling (v2)
>>> > 
>>> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=83175
>>> > Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
>>> > ---
>>> >  drivers/gpu/drm/i915/i915_irq.c | 14 +++++++-------
>>> >  1 file changed, 7 insertions(+), 7 deletions(-)
>>> > 
>>> > diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
>>> > index 72cb9397ecc5..3ff6f1bb594a 100644
>>> > --- a/drivers/gpu/drm/i915/i915_irq.c
>>> > +++ b/drivers/gpu/drm/i915/i915_irq.c
>>> > @@ -1708,7 +1708,7 @@ static irqreturn_t gen8_gt_irq_handler(struct drm_device *dev,
>>> >  #define HPD_STORM_DETECT_PERIOD 1000
>>> >  #define HPD_STORM_THRESHOLD 5
>>> >  
>>> > -static int ilk_port_to_hotplug_shift(enum port port)
>>> > +static int pch_port_to_hotplug_shift(enum port port)
>>> >  {
>>> >  	switch (port) {
>>> >  	case PORT_A:
>>> > @@ -1724,7 +1724,7 @@ static int ilk_port_to_hotplug_shift(enum port port)
>>> >  	}
>>> >  }
>>> >  
>>> > -static int g4x_port_to_hotplug_shift(enum port port)
>>> > +static int i915_port_to_hotplug_shift(enum port port)
>>> >  {
>>> >  	switch (port) {
>>> >  	case PORT_A:
>>> > @@ -1782,12 +1782,12 @@ static inline void intel_hpd_irq_handler(struct drm_device *dev,
>>> >  		if (port && dev_priv->hpd_irq_port[port]) {
>>> >  			bool long_hpd;
>>> >  
>>> > -			if (IS_G4X(dev)) {
>>> > -				dig_shift = g4x_port_to_hotplug_shift(port);
>>> > -				long_hpd = (hotplug_trigger >> dig_shift) & PORTB_HOTPLUG_LONG_DETECT;
>>> > -			} else {
>>> > -				dig_shift = ilk_port_to_hotplug_shift(port);
>>> > +			if (HAS_PCH_SPLIT(dev)) {
>>> > +				dig_shift = pch_port_to_hotplug_shift(port);
>>> >  				long_hpd = (dig_hotplug_reg >> dig_shift) & PORTB_HOTPLUG_LONG_DETECT;
>>> 
>>> Using the new HAS_GMCH_DISPLAY will probably survive longer (i.e. skl).
>>
>> Did we have a concenses on this? I want hpd on my BSW.
>
> Sorry, we agreed on IRC that the ifs were okay as-is, but we're still
> missing review.

Even a tested-by would be welcome!

Jani.


>
> BR,
> Jani.
>
>
>
>
>>
>>> -Daniel
>>> 
>>> > +			} else {
>>> > +				dig_shift = i915_port_to_hotplug_shift(port);
>>> > +				long_hpd = (hotplug_trigger >> dig_shift) & PORTB_HOTPLUG_LONG_DETECT;
>>> >  			}
>>> >  
>>> >  			DRM_DEBUG_DRIVER("digital hpd port %c - %s\n",
>>> > -- 
>>> > 1.9.1
>>> > 
>>> > _______________________________________________
>>> > Intel-gfx mailing list
>>> > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
>>> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>>> 
>>> -- 
>>> Daniel Vetter
>>> Software Engineer, Intel Corporation
>>> +41 (0) 79 365 57 48 - http://blog.ffwll.ch
>>> _______________________________________________
>>> Intel-gfx mailing list
>>> Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
>>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>>
>> -- 
>> Ville Syrjälä
>> Intel OTC
>
> -- 
> Jani Nikula, Intel Open Source Technology Center
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/intel-gfx





[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux