[Intel-gfx] [PATCH] drm/i915: Get alternate aux for port E from VBT.

Vivi, Rodrigo rodrigo.vivi at intel.com
Thu Aug 3 17:17:22 UTC 2017


On Thu, 2017-08-03 at 15:24 +0300, Jani Nikula wrote:
> On Tue, 01 Aug 2017, Rodrigo Vivi <rodrigo.vivi at intel.com> wrote:
> > If VBT states that it uses an alternate aux for port E,
> > let's use it since even on new platforms there is no
> > dedicated aux for port E and it is being used for VGA
> > with DP-to-VGA converter by some OEMs.
> >
> > Let's assume that port A is in use for eDP so let's
> > keep the default to port D to minimize the changes
> > on the behaviour.
> >
> > Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > Signed-off-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
> > ---
> >  drivers/gpu/drm/i915/intel_dp.c | 9 ++++++---
> >  1 file changed, 6 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> > index 2d42d09428c9..c856567d4529 100644
> > --- a/drivers/gpu/drm/i915/intel_dp.c
> > +++ b/drivers/gpu/drm/i915/intel_dp.c
> > @@ -5905,6 +5905,9 @@ intel_dp_init_connector_port_info(struct intel_digital_port *intel_dig_port)
> >  {
> >  	struct intel_encoder *encoder = &intel_dig_port->base;
> >  	struct intel_dp *intel_dp = &intel_dig_port->dp;
> > +	struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> > +	const struct ddi_vbt_port_info *info =
> > +		&dev_priv->vbt.ddi_port_info[intel_dig_port->port];
> >  
> >  	switch (intel_dig_port->port) {
> >  	case PORT_A:
> > @@ -5925,9 +5928,9 @@ intel_dp_init_connector_port_info(struct intel_digital_port *intel_dig_port)
> >  		break;
> >  	case PORT_E:
> >  		encoder->hpd_pin = HPD_PORT_E;
> > -
> > -		/* FIXME: Check VBT for actual wiring of PORT E */
> > -		intel_dp->aux_power_domain = POWER_DOMAIN_AUX_D;
> > +		intel_dp->aux_power_domain = POWER_DOMAIN_AUX_A +
> > +			info->alternate_aux_channel ?
> > +			info->alternate_aux_channel : POWER_DOMAIN_AUX_D;
> 
> ->alternate_aux_channel contains values such as
> 
> #define DP_AUX_A 0x40
> #define DP_AUX_B 0x10
> #define DP_AUX_C 0x20
> #define DP_AUX_D 0x30
> 
> from i915_drv.h (which should really be in a VBT specific file because
> that comes straight from the VBT).

oh indeed! I had forgotten about it.

I tried a different approach now:
https://patchwork.freedesktop.org/series/28322/

But still breaks fi-skl-6700k:

https://intel-gfx-ci.01.org/tree/drm-tip/Trybot_1036/

Maybe it is better not touching this for now unless we really need...
but should we keep the fixme?

> 
> BR,
> Jani.
> 
> >  		break;
> >  	default:
> >  		MISSING_CASE(intel_dig_port->port);
> 



More information about the Intel-gfx mailing list