[PATCH i-g-t v5 3/3] tools/intel_hdcp: Display hdcp status in connector info
Santhosh Reddy Guddati
santhosh.reddy.guddati at intel.com
Fri Aug 1 06:47:01 UTC 2025
Add new function to read the current hdcp status for a given connector.
Improve formatting of the connector in the info for better readability.
Signed-off-by: Santhosh Reddy Guddati <santhosh.reddy.guddati at intel.com>
---
tools/intel_hdcp.c | 46 +++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 43 insertions(+), 3 deletions(-)
diff --git a/tools/intel_hdcp.c b/tools/intel_hdcp.c
index d9496050a..65895fbed 100644
--- a/tools/intel_hdcp.c
+++ b/tools/intel_hdcp.c
@@ -98,6 +98,41 @@ static void set_hdcp(data_t *data, int connector_id, bool enable)
igt_output_set_hdcp(data, output, enable);
}
+static const char *get_hdcp_status(data_t *data, uint32_t connector_id)
+{
+ igt_output_t *output;
+ drmModeConnector connector, *drm_connector;
+ uint64_t prop_value;
+
+ connector.connector_id = connector_id;
+ output = igt_output_from_connector(&data->display, &connector);
+ if (!output)
+ return "Unknown";
+
+ drm_connector = drmModeGetConnectorCurrent(data->fd, connector_id);
+ if (!drm_connector || drm_connector->connection != DRM_MODE_CONNECTED ||
+ drm_connector->encoder_id == 0) {
+ if (drm_connector)
+ drmModeFreeConnector(drm_connector);
+ return "N/A";
+ }
+
+ drmModeFreeConnector(drm_connector);
+
+ prop_value = igt_output_get_prop(output, IGT_CONNECTOR_CONTENT_PROTECTION);
+
+ switch (prop_value) {
+ case CP_UNDESIRED:
+ return "Disabled";
+ case CP_DESIRED:
+ return "Desired";
+ case CP_ENABLED:
+ return "Enabled";
+ default:
+ return "Unknown";
+ }
+}
+
static const char *get_hdcp_version(int fd, char *connector_name)
{
char buf[MAX_HDCP_BUF_LEN];
@@ -136,7 +171,10 @@ static void get_hdcp_info(data_t *data)
}
fprintf(stderr, "Connectors:\n");
- fprintf(stderr, "id\tencoder\tstatus\t\ttype\tHDCP\n");
+ fprintf(stderr, "%-4s %-8s %-12s %-8s %-20s %-12s\n",
+ "ID", "Encoder", "Status", "Type", "HDCP Support", "HDCP Status");
+ fprintf(stderr, "---- -------- ------------ -------- -------------------- ------------\n");
+
for (int i = 0; i < res->count_connectors; i++) {
drmModeConnector *connector;
@@ -149,12 +187,14 @@ static void get_hdcp_info(data_t *data)
kmstest_connector_type_str(connector->connector_type),
connector->connector_type_id);
- fprintf(stderr, "%d\t%d\t%s\t%s\t%s\n",
+ fprintf(stderr, "%-4d %-8d %-12s %-8s %-20s %-12s\n",
connector->connector_id, connector->encoder_id,
kmstest_connector_status_str(connector->connection),
kmstest_connector_type_str(connector->connector_type),
- get_hdcp_version(data->fd, output_name));
+ get_hdcp_version(data->fd, output_name),
+ get_hdcp_status(data, connector->connector_id));
+ free(output_name);
drmModeFreeConnector(connector);
}
--
2.34.1
More information about the igt-dev
mailing list