[Intel-gfx] [PATCH 3/4] drm/i915/hdcp: Send the correct aux for DPMST HDCP scenario

Suraj Kandpal suraj.kandpal at intel.com
Thu Aug 10 07:47:58 UTC 2023


Up until now we were sending the base aux stored in dig_port which
is not correct as this causes an issue when monitor is connected via
a DPMST hub causing it to be remote hence we end up seeing AUX
failures so let's send the remote aux in case of DPMST.

Signed-off-by: Suraj Kandpal <suraj.kandpal at intel.com>
---
 drivers/gpu/drm/i915/display/intel_dp_hdcp.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
index 5304aa73b23f..2a37a43243a3 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_hdcp.c
@@ -452,7 +452,10 @@ int intel_dp_hdcp2_write_msg(struct intel_connector *connector,
 
 	offset = hdcp2_msg_data->offset;
 
-	aux = &dig_port->dp.aux;
+	if (intel_encoder_is_mst(connector->encoder))
+		aux = &connector->port->aux;
+	else
+		aux = &dig_port->dp.aux;
 
 	/* No msg_id in DP HDCP2.2 msgs */
 	bytes_to_write = size - 1;
@@ -518,7 +521,10 @@ int intel_dp_hdcp2_read_msg(struct intel_connector *connector,
 		return -EINVAL;
 	offset = hdcp2_msg_data->offset;
 
-	aux = &dp->aux;
+	if (intel_encoder_is_mst(connector->encoder))
+		aux = &connector->port->aux;
+	else
+		aux = &dp->aux;
 
 	ret = intel_dp_hdcp2_wait_for_msg(i915, aux, hdcp, hdcp2_msg_data);
 	if (ret < 0)
-- 
2.25.1



More information about the Intel-gfx mailing list