[PATCH 2/2] drm/i915: Get alternate aux for port E from VBT.
Rodrigo Vivi
rodrigo.vivi at intel.com
Thu Aug 3 16:51:20 UTC 2017
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.
v2: Convert VBT definitions from aux to our port
before using it to pick a power domain.
Cc: Jani Nikula <jani.nikula at intel.com>
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 | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index ca6a9b646bb8..0ec9e78e3277 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -5904,6 +5904,10 @@ 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];
+ enum port port;
switch (intel_dig_port->port) {
case PORT_A:
@@ -5924,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;
+ port = intel_alternate_aux_to_port(info->alternate_aux_channel);
+ intel_dp->aux_power_domain = POWER_DOMAIN_AUX_A + port ? port :
+ POWER_DOMAIN_AUX_D;
break;
default:
MISSING_CASE(intel_dig_port->port);
--
2.13.2
More information about the Intel-gfx-trybot
mailing list