drm/amd/display: Handle hdcp2.2 type0/1 in dm

[Why]
HDCP 2.2 uses type0 and type1 content type. This is passed to the receiver
to stream the proper content.

For example, in a MST case if the main
device is HDCP2.2 capable but the secondary device is only 1.4 capabale
we can use Type0

Type0 content: use HDCP 1.4 or HDCP2.2 type0
Type1 content: Only use HDCP 2.2 type1

[How]
We use the "hdcp content type" property in drm. We use the
disable_type1 flag in hdcp module to select the type based on the
properties.

For updating the property we use the same logic as 1.4, but now we
consider content_type as well and update the property if the
requirements are met

Signed-off-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Bhawanpreet Lakha
2019-08-16 14:49:05 -04:00
committed by Alex Deucher
parent da283469e0
commit 53e108aa99
4 changed files with 33 additions and 11 deletions

View File

@@ -417,7 +417,10 @@ enum mod_hdcp_status mod_hdcp_query_display(struct mod_hdcp *hdcp,
query->trace = &hdcp->connection.trace;
query->encryption_status = MOD_HDCP_ENCRYPTION_STATUS_HDCP_OFF;
mod_hdcp_hdcp1_get_link_encryption_status(hdcp, &query->encryption_status);
if (is_hdcp1(hdcp))
mod_hdcp_hdcp1_get_link_encryption_status(hdcp, &query->encryption_status);
else if (is_hdcp2(hdcp))
mod_hdcp_hdcp2_get_link_encryption_status(hdcp, &query->encryption_status);
out:
return status;