[PATCH 06/11] drm/i915/hdcp: HDCP Capability for the downstream device

Nautiyal, Ankit K ankit.k.nautiyal at intel.com
Wed Feb 7 05:31:41 UTC 2024


On 2/4/2024 7:55 PM, Suraj Kandpal wrote:
> Currently we are only checking capability of remote device and not
> immediate downstream device but during capability check we need are
> concerned with only the HDCP capability of downstream device.
> During i915_display_info reporting we need HDCP Capability for both
> the monitors and downstream branch device if any this patch adds that.
>
> --v2
> -Use MST Hub HDCP version [Ankit]
>
> --v3
> -Redefined how we seprate remote and direct read to make sure HDMI
> shim functions are not touched [Ankit]
>
> --v4
> - Fix the conditions so that hdcp_info with remote_req true is sent
> only when encoder is mst [Ankit]
>
> Signed-off-by: Suraj Kandpal <suraj.kandpal at intel.com>
> ---
>   .../drm/i915/display/intel_display_debugfs.c  | 24 +++++++++++++++----
>   1 file changed, 19 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_display_debugfs.c b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> index 6f2d13c8ccf7..a51857dc4ece 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> +++ b/drivers/gpu/drm/i915/display/intel_display_debugfs.c
> @@ -188,7 +188,8 @@ static void intel_panel_info(struct seq_file *m,
>   }
>   
>   static void intel_hdcp_info(struct seq_file *m,
> -			    struct intel_connector *intel_connector)
> +			    struct intel_connector *intel_connector,
> +			    bool remote_req)
>   {
>   	bool hdcp_cap, hdcp2_cap;
>   
> @@ -197,8 +198,13 @@ static void intel_hdcp_info(struct seq_file *m,
>   		goto out;
>   	}
>   
> -	hdcp_cap = intel_hdcp_capable(intel_connector);
> -	hdcp2_cap = intel_hdcp2_capable(intel_connector);
> +	if (remote_req) {
> +		intel_hdcp_remote_cap(intel_connector, &hdcp_cap,
> +				      &hdcp2_cap);
> +	} else {
> +		hdcp_cap = intel_hdcp_capable(intel_connector);
> +		hdcp2_cap = intel_hdcp2_capable(intel_connector);
> +	}
>   
>   	if (hdcp_cap)
>   		seq_puts(m, "HDCP1.4 ");
> @@ -285,7 +291,11 @@ static void intel_connector_info(struct seq_file *m,
>   	}
>   
>   	seq_puts(m, "\tHDCP version: ");
> -	intel_hdcp_info(m, intel_connector);
> +	if (intel_encoder_is_mst(encoder)) {
> +		intel_hdcp_info(m, intel_connector, true);
> +		seq_puts(m, "\tMST Hub HDCP version: ");
> +	}
> +	intel_hdcp_info(m, intel_connector, false);
>   
>   	seq_printf(m, "\tmax bpc: %u\n", connector->display_info.bpc);
>   
> @@ -1131,7 +1141,11 @@ static int i915_hdcp_sink_capability_show(struct seq_file *m, void *data)
>   
>   	seq_printf(m, "%s:%d HDCP version: ", connector->base.name,
>   		   connector->base.base.id);
> -	intel_hdcp_info(m, connector);
> +	if (intel_encoder_is_mst(connector->encoder)) {
> +		intel_hdcp_info(m, connector, true);
> +		seq_puts(m, "\tMST Hub HDCP version: ");
> +	}
> +	intel_hdcp_info(m, connector, false);


Lets not add this for i915_hdcp_sink_capability_show, as this is used by 
kms_content_protection test which just search for HDCP1.4 and HDCP2.2.

With this change, the test also needs to be modified. So lets have this 
and the change in kms_content_protection separately.

Otherwise the patch looks good to me.

With the removed, this is:

Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal at intel.com>


>   
>   out:
>   	drm_modeset_unlock(&i915->drm.mode_config.connection_mutex);


More information about the Intel-gfx mailing list