[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