1 /* $NetBSD: hdcp_types.h,v 1.2 2021/12/18 23:45:07 riastradh Exp $ */ 2 3 /* 4 * Copyright 2019 Advanced Micro Devices, Inc. 5 * 6 * Permission is hereby granted, free of charge, to any person obtaining a 7 * copy of this software and associated documentation files (the "Software"), 8 * to deal in the Software without restriction, including without limitation 9 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 10 * and/or sell copies of the Software, and to permit persons to whom the 11 * Software is furnished to do so, subject to the following conditions: 12 * 13 * The above copyright notice and this permission notice shall be included in 14 * all copies or substantial portions of the Software. 15 * 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 19 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 * OTHER DEALINGS IN THE SOFTWARE. 23 * 24 * Authors: AMD 25 * 26 */ 27 28 #ifndef __DC_HDCP_TYPES_H__ 29 #define __DC_HDCP_TYPES_H__ 30 31 enum hdcp_message_id { 32 HDCP_MESSAGE_ID_INVALID = -1, 33 34 /* HDCP 1.4 */ 35 36 HDCP_MESSAGE_ID_READ_BKSV = 0, 37 /* HDMI is called Ri', DP is called R0' */ 38 HDCP_MESSAGE_ID_READ_RI_R0, 39 HDCP_MESSAGE_ID_READ_PJ, 40 HDCP_MESSAGE_ID_WRITE_AKSV, 41 HDCP_MESSAGE_ID_WRITE_AINFO, 42 HDCP_MESSAGE_ID_WRITE_AN, 43 HDCP_MESSAGE_ID_READ_VH_X, 44 HDCP_MESSAGE_ID_READ_VH_0, 45 HDCP_MESSAGE_ID_READ_VH_1, 46 HDCP_MESSAGE_ID_READ_VH_2, 47 HDCP_MESSAGE_ID_READ_VH_3, 48 HDCP_MESSAGE_ID_READ_VH_4, 49 HDCP_MESSAGE_ID_READ_BCAPS, 50 HDCP_MESSAGE_ID_READ_BSTATUS, 51 HDCP_MESSAGE_ID_READ_KSV_FIFO, 52 HDCP_MESSAGE_ID_READ_BINFO, 53 54 /* HDCP 2.2 */ 55 56 HDCP_MESSAGE_ID_HDCP2VERSION, 57 HDCP_MESSAGE_ID_RX_CAPS, 58 HDCP_MESSAGE_ID_WRITE_AKE_INIT, 59 HDCP_MESSAGE_ID_READ_AKE_SEND_CERT, 60 HDCP_MESSAGE_ID_WRITE_AKE_NO_STORED_KM, 61 HDCP_MESSAGE_ID_WRITE_AKE_STORED_KM, 62 HDCP_MESSAGE_ID_READ_AKE_SEND_H_PRIME, 63 HDCP_MESSAGE_ID_READ_AKE_SEND_PAIRING_INFO, 64 HDCP_MESSAGE_ID_WRITE_LC_INIT, 65 HDCP_MESSAGE_ID_READ_LC_SEND_L_PRIME, 66 HDCP_MESSAGE_ID_WRITE_SKE_SEND_EKS, 67 HDCP_MESSAGE_ID_READ_REPEATER_AUTH_SEND_RECEIVERID_LIST, 68 HDCP_MESSAGE_ID_WRITE_REPEATER_AUTH_SEND_ACK, 69 HDCP_MESSAGE_ID_WRITE_REPEATER_AUTH_STREAM_MANAGE, 70 HDCP_MESSAGE_ID_READ_REPEATER_AUTH_STREAM_READY, 71 HDCP_MESSAGE_ID_READ_RXSTATUS, 72 HDCP_MESSAGE_ID_WRITE_CONTENT_STREAM_TYPE, 73 74 HDCP_MESSAGE_ID_MAX 75 }; 76 77 enum hdcp_version { 78 HDCP_Unknown = 0, 79 HDCP_VERSION_14, 80 HDCP_VERSION_22, 81 }; 82 83 enum hdcp_link { 84 HDCP_LINK_PRIMARY, 85 HDCP_LINK_SECONDARY 86 }; 87 88 struct hdcp_protection_message { 89 enum hdcp_version version; 90 /* relevant only for DVI */ 91 enum hdcp_link link; 92 enum hdcp_message_id msg_id; 93 uint32_t length; 94 uint8_t max_retries; 95 uint8_t *data; 96 }; 97 98 #endif 99