Message ID | 20230810074758.154968-4-suraj.kandpal@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | HDCP MST aux issue fix | expand |
> -----Original Message----- > From: Kandpal, Suraj <suraj.kandpal@intel.com> > Sent: Thursday, August 10, 2023 1:18 PM > To: intel-gfx@lists.freedesktop.org > Cc: Nautiyal, Ankit K <ankit.k.nautiyal@intel.com>; uma.shakar@intel.com; > Murthy, Arun R <arun.r.murthy@intel.com>; Kandpal, Suraj > <suraj.kandpal@intel.com> > Subject: [PATCH 3/4] drm/i915/hdcp: Send the correct aux for DPMST HDCP > scenario > > 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@intel.com> Reviewed-by: Arun R Murthy <arun.r.mruthy@intel.com> Thanks and Regards, Arun R Murthy -------------------- > --- > 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
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)
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@intel.com> --- drivers/gpu/drm/i915/display/intel_dp_hdcp.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)