diff mbox series

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

Message ID 20230810074758.154968-4-suraj.kandpal@intel.com (mailing list archive)
State New, archived
Headers show
Series HDCP MST aux issue fix | expand

Commit Message

Suraj Kandpal Aug. 10, 2023, 7:47 a.m. UTC
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(-)

Comments

Murthy, Arun R Aug. 22, 2023, 3:04 a.m. UTC | #1
> -----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 mbox series

Patch

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)