[PATCH i-g-t 2/4] lib/unigraf: Add HDCP management
Louis Chauvet <[email protected]> Fri, 31 Jul 2026 20:21:55 +0200
| Newsgroups | org.freedesktop.lists.igt-dev |
|---|---|
| Message-ID | <[email protected]> |
From: fomys <[email protected]> Unigraf is able to emulate HDCP, so add few helpers to enable/disable it. Signed-off-by: Louis Chauvet <[email protected]> --- lib/vendor/unigraf/unigraf.c | 23 ++++++++++++++++++++++- lib/vendor/unigraf/unigraf.h | 4 ++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/lib/vendor/unigraf/unigraf.c b/lib/vendor/unigraf/unigraf.c index 30ee3c72bc74..5b416f605428 100644 --- a/lib/vendor/unigraf/unigraf.c +++ b/lib/vendor/unigraf/unigraf.c @@ -549,9 +549,10 @@ void unigraf_reset(void) unigraf_set_mst_stream_count(1); unigraf_set_sst(); unigraf_load_default_edid(); - unigraf_hpd_assert(); unigraf_set_max_lane_count(4); unigraf_set_max_link_rate(UNIGRAF_RATE_8_10_GHZ); + unigraf_enable_hdcp(); + unigraf_hpd_assert(); } /** @@ -911,3 +912,23 @@ int unigraf_rate_to_kbs(enum unigraf_rate rate) return 0; } } + +/** + * unigraf_enable_hdcp - Enable HDCP 2 support + * + * Unigraf is able to load production keys, but this will disable all recording + * features. + */ +void unigraf_enable_hdcp(void) +{ + unigraf_write_u32(TSI_HDCP_2X_COMMAND_W, H2_SINK_LOAD_PROD_KEYS); + unigraf_write_u32(TSI_HDCP_2X_COMMAND_W, H2_SINK_SET_CAPABLE); +} + +/** + * unigraf_disable_hdcp - Disable HDCP support + */ +void unigraf_disable_hdcp(void) +{ + unigraf_write_u32(TSI_HDCP_2X_COMMAND_W, H2_SINK_CLEAR_CAPABLE); +} diff --git a/lib/vendor/unigraf/unigraf.h b/lib/vendor/unigraf/unigraf.h index 1570be3feb96..498a2d4daab3 100644 --- a/lib/vendor/unigraf/unigraf.h +++ b/lib/vendor/unigraf/unigraf.h @@ -103,4 +103,8 @@ uint32_t unigraf_get_lt_rate(void); uint32_t unigraf_get_lt_lane_count(void); +void unigraf_enable_hdcp(void); + +void unigraf_disable_hdcp(void); + #endif // UNIGRAF_H -- 2.54.0