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@xxxxxxxxx> --- 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