Path: blob/master/drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-hdcp.h
26516 views
/* SPDX-License-Identifier: GPL-2.0 */1/*2* Cadence MHDP8546 DP bridge driver.3*4* Copyright (C) 2020 Cadence Design Systems, Inc.5*6*/78#ifndef CDNS_MHDP8546_HDCP_H9#define CDNS_MHDP8546_HDCP_H1011#include "cdns-mhdp8546-core.h"1213#define HDCP_MAX_RECEIVERS 3214#define HDCP_RECEIVER_ID_SIZE_BYTES 515#define HDCP_STATUS_SIZE 0x516#define HDCP_PORT_STS_AUTH 0x117#define HDCP_PORT_STS_LAST_ERR_SHIFT 0x518#define HDCP_PORT_STS_LAST_ERR_MASK (0x0F << 5)19#define GET_HDCP_PORT_STS_LAST_ERR(__sts__) \20(((__sts__) & HDCP_PORT_STS_LAST_ERR_MASK) >> \21HDCP_PORT_STS_LAST_ERR_SHIFT)2223#define HDCP_CONFIG_1_4 BIT(0) /* use HDCP 1.4 only */24#define HDCP_CONFIG_2_2 BIT(1) /* use HDCP 2.2 only */25/* use All HDCP versions */26#define HDCP_CONFIG_ALL (BIT(0) | BIT(1))27#define HDCP_CONFIG_NONE 02829enum {30HDCP_GENERAL_SET_LC_128,31HDCP_SET_SEED,32};3334enum {35HDCP_TRAN_CONFIGURATION,36HDCP2X_TX_SET_PUBLIC_KEY_PARAMS,37HDCP2X_TX_SET_DEBUG_RANDOM_NUMBERS,38HDCP2X_TX_RESPOND_KM,39HDCP1_TX_SEND_KEYS,40HDCP1_TX_SEND_RANDOM_AN,41HDCP_TRAN_STATUS_CHANGE,42HDCP2X_TX_IS_KM_STORED,43HDCP2X_TX_STORE_KM,44HDCP_TRAN_IS_REC_ID_VALID,45HDCP_TRAN_RESPOND_RECEIVER_ID_VALID,46HDCP_TRAN_TEST_KEYS,47HDCP2X_TX_SET_KM_KEY_PARAMS,48HDCP_NUM_OF_SUPPORTED_MESSAGES49};5051enum {52HDCP_CONTENT_TYPE_0,53HDCP_CONTENT_TYPE_1,54};5556#define DRM_HDCP_CHECK_PERIOD_MS (128 * 16)5758#define HDCP_PAIRING_R_ID 559#define HDCP_PAIRING_M_LEN 1660#define HDCP_KM_LEN 1661#define HDCP_PAIRING_M_EKH 166263struct cdns_hdcp_pairing_data {64u8 receiver_id[HDCP_PAIRING_R_ID];65u8 m[HDCP_PAIRING_M_LEN];66u8 km[HDCP_KM_LEN];67u8 ekh[HDCP_PAIRING_M_EKH];68};6970enum {71HDCP_TX_2,72HDCP_TX_1,73HDCP_TX_BOTH,74};7576#define DLP_MODULUS_N 38477#define DLP_E 37879struct cdns_hdcp_tx_public_key_param {80u8 N[DLP_MODULUS_N];81u8 E[DLP_E];82};8384int cdns_mhdp_hdcp_enable(struct cdns_mhdp_device *mhdp, u8 content_type);85int cdns_mhdp_hdcp_disable(struct cdns_mhdp_device *mhdp);86void cdns_mhdp_hdcp_init(struct cdns_mhdp_device *mhdp);8788#endif899091