[PATCH 3/8] drm/i915: Init aux_ch even for HDMI DDI/TypeC ports

Imre Deak imre.deak at intel.com
Mon Oct 29 13:37:49 UTC 2018


On ICL onwards DDI/TypeC ports - even in HDMI static - mode need to know
which AUX CH belongs to them, so initialize aux_ch for those ports too.

Signed-off-by: Imre Deak <imre.deak at intel.com>
---
 drivers/gpu/drm/i915/intel_ddi.c  | 4 ++++
 drivers/gpu/drm/i915/intel_dp.c   | 2 +-
 drivers/gpu/drm/i915/intel_drv.h  | 8 +++++++-
 drivers/gpu/drm/i915/intel_hdmi.c | 1 +
 4 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index 32a080265d03..94cc4b636b7f 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -3555,6 +3555,8 @@ intel_ddi_init_dp_connector(struct intel_digital_port *intel_dig_port)
 		return NULL;
 
 	intel_dig_port->dp.output_reg = DDI_BUF_CTL(port);
+	intel_dig_port->aux_ch = intel_aux_ch(dig_port_to_i915(intel_dig_port),
+					      port);
 	if (!intel_dp_init_connector(intel_dig_port, connector)) {
 		kfree(connector);
 		return NULL;
@@ -3718,6 +3720,8 @@ intel_ddi_init_hdmi_connector(struct intel_digital_port *intel_dig_port)
 		return NULL;
 
 	intel_dig_port->hdmi.hdmi_reg = DDI_BUF_CTL(port);
+	intel_dig_port->aux_ch = intel_aux_ch(dig_port_to_i915(intel_dig_port),
+					      port);
 	intel_hdmi_init_connector(intel_dig_port, connector);
 
 	return connector;
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index e843572ec738..ab40cc5ce59e 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1654,7 +1654,6 @@ intel_dp_aux_init(struct intel_dp *intel_dp)
 	struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
 	struct intel_encoder *encoder = &dig_port->base;
 
-	dig_port->aux_ch = intel_aux_ch(dev_priv, encoder->port);
 	intel_dp->aux_power_domain = intel_aux_power_domain(intel_dp);
 
 	if (INTEL_GEN(dev_priv) >= 9) {
@@ -6706,6 +6705,7 @@ bool intel_dp_init(struct drm_i915_private *dev_priv,
 	if (port != PORT_A)
 		intel_infoframe_init(intel_dig_port);
 
+	intel_dig_port->aux_ch = intel_aux_ch(dev_priv, port);
 	if (!intel_dp_init_connector(intel_dig_port, intel_connector))
 		goto err_init_connector;
 
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index a166f36361fd..c52c3d57c185 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -1369,9 +1369,15 @@ dp_to_lspcon(struct intel_dp *intel_dp)
 }
 
 static inline struct drm_i915_private *
+dig_port_to_i915(struct intel_digital_port *dig_port)
+{
+	return to_i915(dig_port->base.base.dev);
+}
+
+static inline struct drm_i915_private *
 dp_to_i915(struct intel_dp *intel_dp)
 {
-	return to_i915(dp_to_dig_port(intel_dp)->base.base.dev);
+	return dig_port_to_i915(dp_to_dig_port(intel_dp));
 }
 
 static inline struct intel_digital_port *
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index 129b880bce64..b50c5497048a 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -2506,5 +2506,6 @@ void intel_hdmi_init(struct drm_i915_private *dev_priv,
 
 	intel_infoframe_init(intel_dig_port);
 
+	intel_dig_port->aux_ch = intel_aux_ch(dev_priv, port);
 	intel_hdmi_init_connector(intel_dig_port, intel_connector);
 }
-- 
2.13.2



More information about the Intel-gfx-trybot mailing list