brintos

brintos / linux-shallow public Read only

0
0
Text · 2.1 KiB · 334c0b8 Raw
93 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2/*3 * Cadence MHDP8546 DP bridge driver.4 *5 * Copyright (C) 2020 Cadence Design Systems, Inc.6 *7 */8 9#ifndef CDNS_MHDP8546_HDCP_H10#define CDNS_MHDP8546_HDCP_H11 12#include "cdns-mhdp8546-core.h"13 14#define HDCP_MAX_RECEIVERS 3215#define HDCP_RECEIVER_ID_SIZE_BYTES 516#define HDCP_STATUS_SIZE         0x517#define HDCP_PORT_STS_AUTH       0x118#define HDCP_PORT_STS_LAST_ERR_SHIFT 0x519#define HDCP_PORT_STS_LAST_ERR_MASK  (0x0F << 5)20#define GET_HDCP_PORT_STS_LAST_ERR(__sts__) \21	(((__sts__) & HDCP_PORT_STS_LAST_ERR_MASK) >> \22	HDCP_PORT_STS_LAST_ERR_SHIFT)23 24#define HDCP_CONFIG_1_4     BIT(0) /* use HDCP 1.4 only */25#define HDCP_CONFIG_2_2     BIT(1) /* use HDCP 2.2 only */26/* use All HDCP versions */27#define HDCP_CONFIG_ALL     (BIT(0) | BIT(1))28#define HDCP_CONFIG_NONE    029 30enum {31	HDCP_GENERAL_SET_LC_128,32	HDCP_SET_SEED,33};34 35enum {36	HDCP_TRAN_CONFIGURATION,37	HDCP2X_TX_SET_PUBLIC_KEY_PARAMS,38	HDCP2X_TX_SET_DEBUG_RANDOM_NUMBERS,39	HDCP2X_TX_RESPOND_KM,40	HDCP1_TX_SEND_KEYS,41	HDCP1_TX_SEND_RANDOM_AN,42	HDCP_TRAN_STATUS_CHANGE,43	HDCP2X_TX_IS_KM_STORED,44	HDCP2X_TX_STORE_KM,45	HDCP_TRAN_IS_REC_ID_VALID,46	HDCP_TRAN_RESPOND_RECEIVER_ID_VALID,47	HDCP_TRAN_TEST_KEYS,48	HDCP2X_TX_SET_KM_KEY_PARAMS,49	HDCP_NUM_OF_SUPPORTED_MESSAGES50};51 52enum {53	HDCP_CONTENT_TYPE_0,54	HDCP_CONTENT_TYPE_1,55};56 57#define DRM_HDCP_CHECK_PERIOD_MS (128 * 16)58 59#define HDCP_PAIRING_R_ID 560#define HDCP_PAIRING_M_LEN 1661#define HDCP_KM_LEN 1662#define HDCP_PAIRING_M_EKH 1663 64struct cdns_hdcp_pairing_data {65	u8 receiver_id[HDCP_PAIRING_R_ID];66	u8 m[HDCP_PAIRING_M_LEN];67	u8 km[HDCP_KM_LEN];68	u8 ekh[HDCP_PAIRING_M_EKH];69};70 71enum {72	HDCP_TX_2,73	HDCP_TX_1,74	HDCP_TX_BOTH,75};76 77#define DLP_MODULUS_N 38478#define DLP_E 379 80struct cdns_hdcp_tx_public_key_param {81	u8 N[DLP_MODULUS_N];82	u8 E[DLP_E];83};84 85int cdns_mhdp_hdcp_set_public_key_param(struct cdns_mhdp_device *mhdp,86					struct cdns_hdcp_tx_public_key_param *val);87int cdns_mhdp_hdcp_set_lc(struct cdns_mhdp_device *mhdp, u8 *val);88int cdns_mhdp_hdcp_enable(struct cdns_mhdp_device *mhdp, u8 content_type);89int cdns_mhdp_hdcp_disable(struct cdns_mhdp_device *mhdp);90void cdns_mhdp_hdcp_init(struct cdns_mhdp_device *mhdp);91 92#endif93