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

Jani Nikula jani.nikula at linux.intel.com
Thu Aug 3 12:24:04 UTC 2017


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

BR,
Jani.

>  		break;
>  	default:
>  		MISSING_CASE(intel_dig_port->port);

-- 
Jani Nikula, Intel Open Source Technology Center


More information about the Intel-gfx mailing list