[PATCH 06/11] drm/i915/hdcp: HDCP Capability for the downstream device
Nautiyal, Ankit K
ankit.k.nautiyal at intel.com
Fri Feb 2 09:56:08 UTC 2024
On 2/2/2024 12:08 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]
>
> Signed-off-by: Suraj Kandpal <suraj.kandpal at intel.com>
> ---
> .../drm/i915/display/intel_display_debugfs.c | 26 +++++++++++++++----
> 1 file changed, 21 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..41458f1cae38 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,12 @@ static void intel_connector_info(struct seq_file *m,
> }
>
> seq_puts(m, "\tHDCP version: ");
> - intel_hdcp_info(m, intel_connector);
> + intel_hdcp_info(m, intel_connector, true);
This seems to be wrong, If its not an MST then we dont want to read remote.
this should be something like:
seq_puts(m, "\tHDCP version: ");
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);
}
else {
intel_hdcp_info(m, intel_connector, false);
}
Regards,
Ankit
> +
> + if (intel_encoder_is_mst(encoder)) {
> + 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 +1142,12 @@ 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);
> + intel_hdcp_info(m, connector, true);
> +
> + if (intel_encoder_is_mst(connector->encoder)) {
> + seq_puts(m, "\tMST Hub HDCP version: ");
> + intel_hdcp_info(m, connector, false);
> + }
>
> out:
> drm_modeset_unlock(&i915->drm.mode_config.connection_mutex);
More information about the Intel-gfx
mailing list