|
|
/*
|
|
|
* Copyright (c) Hisilicon Technologies Co., Ltd. 2009-2020. All rights reserved.
|
|
|
* Description: Define the infomation about hdmi module.
|
|
|
* Author: Hisilicon
|
|
|
* Create: 2009-08-28
|
|
|
*/
|
|
|
|
|
|
#ifndef UAPI_HDMITX_H
|
|
|
#define UAPI_HDMITX_H
|
|
|
|
|
|
#include "uapi_cec.h"
|
|
|
#include "uapi_video.h"
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
#if __cplusplus
|
|
|
extern "C" {
|
|
|
#endif
|
|
|
#endif
|
|
|
|
|
|
#define UAPI_HDMITX_VENDOR_NAME_LEN 4
|
|
|
|
|
|
/*
|
|
|
* 3D video capibility bit definations
|
|
|
* CNcomment: 3D 能力位定义
|
|
|
*/
|
|
|
#define UAPI_HDMITX_3D_BZ_NONE 0
|
|
|
#define UAPI_HDMITX_3D_BZ_FRAME_PACKING (1 << 1)
|
|
|
#define UAPI_HDMITX_3D_BZ_FIELD_ALTERNATIVE (1 << 2)
|
|
|
#define UAPI_HDMITX_3D_BZ_LINE_ALTERNATIVE (1 << 3)
|
|
|
#define UAPI_HDMITX_3D_BZ_SIDE_BY_SIDE_FULL (1 << 4)
|
|
|
#define UAPI_HDMITX_3D_BZ_L_DEPTH (1 << 5)
|
|
|
#define UAPI_HDMITX_3D_BZ_L_DEPTH_GFX_GFX_DEPTH (1 << 6)
|
|
|
#define UAPI_HDMITX_3D_BZ_TOP_AND_BOTTOM (1 << 7)
|
|
|
#define UAPI_HDMITX_3D_BZ_SIDE_BY_SIDE_HALF (1 << 8)
|
|
|
|
|
|
/*
|
|
|
* UAPI_HDMITX_TIMING_FLAG flag definations
|
|
|
* CNcomment: 详细时序的标志位定义
|
|
|
*/
|
|
|
#define UAPI_HDMITX_TIMING_FLAG_NATIVE (1 << 0)
|
|
|
/*
|
|
|
* if bit is 1, the timing's vertical frequency is adjusted by a factor of 1000/1001
|
|
|
* CNcomment: 当bit为1时,则时序的垂直频率调整因子为1000/1001。
|
|
|
*/
|
|
|
#define UAPI_HDMITX_TIMING_FLAG_ALTERNATE_RATE (1 << 1)
|
|
|
|
|
|
/*
|
|
|
* Short Audio Descriptors max count, see CTA-861-G 7.5.2 Audio Data Block
|
|
|
* CNcomment: 简式音频描述符最大个数.见 CTA-861-G 7.5.2 Audio Data Block
|
|
|
*/
|
|
|
#define UAPI_HDMITX_MAX_AUDIO_CNT (0xe + 0x9)
|
|
|
|
|
|
/*
|
|
|
* Color format/depth(@u32ColorCap) flag definations
|
|
|
* CNcomment: 颜色格式/位宽能力标志位定义
|
|
|
*/
|
|
|
#define UAPI_HDMITX_COLOR_RGB_24 (1 << 0)
|
|
|
#define UAPI_HDMITX_COLOR_RGB_30 (1 << 1)
|
|
|
#define UAPI_HDMITX_COLOR_RGB_36 (1 << 2)
|
|
|
#define UAPI_HDMITX_COLOR_RGB_48 (1 << 3)
|
|
|
#define UAPI_HDMITX_COLOR_Y444_24 (1 << 4)
|
|
|
#define UAPI_HDMITX_COLOR_Y444_30 (1 << 5)
|
|
|
#define UAPI_HDMITX_COLOR_Y444_36 (1 << 6)
|
|
|
#define UAPI_HDMITX_COLOR_Y444_48 (1 << 7)
|
|
|
#define UAPI_HDMITX_COLOR_Y420_24 (1 << 8)
|
|
|
#define UAPI_HDMITX_COLOR_Y420_30 (1 << 9)
|
|
|
#define UAPI_HDMITX_COLOR_Y420_36 (1 << 10)
|
|
|
#define UAPI_HDMITX_COLOR_Y420_48 (1 << 11)
|
|
|
#define UAPI_HDMITX_COLOR_Y422 (1 << 12)
|
|
|
#define UAPI_HDMITX_COLOR_RGB_MASK (0xf << 0)
|
|
|
#define UAPI_HDMITX_COLOR_Y444_MASK (0xf << 4)
|
|
|
#define UAPI_HDMITX_COLOR_Y420_MASK (0xf << 8)
|
|
|
#define UAPI_HDMITX_COLOR_Y422_MASK (1 << 12)
|
|
|
|
|
|
/*
|
|
|
* HDCP re-authen defalut time, see uapi_hdmitx_hdcp_set_auth_times
|
|
|
* CNcomment: HDCP重认证默认时间
|
|
|
*/
|
|
|
#define UAPI_HDMITX_HDCP_REAUTH_DEFAULT 0xffffffff
|
|
|
|
|
|
/*
|
|
|
* Defines HDMITX interface ID
|
|
|
* CNcomment: 定义HDMITX 接口ID
|
|
|
*/
|
|
|
typedef enum {
|
|
|
UAPI_HDMITX_ID_0 = 0, /* HDMITX interface 0 */ /* CNcomment: HDMITX接口0 */
|
|
|
UAPI_HDMITX_ID_1 = 1, /* HDMITX interface 1 */ /* CNcomment: HDMITX接口1 */
|
|
|
UAPI_HDMITX_ID_MAX
|
|
|
} uapi_hdmitx_id;
|
|
|
|
|
|
/*
|
|
|
* Defines HDMITX event type
|
|
|
* CNcomment: 定义HDMITX事件类型
|
|
|
*/
|
|
|
typedef enum {
|
|
|
UAPI_HDMITX_EVENT_HOTPLUG_IN, /* HDMITX cable plug in */ /* CNcomment: HDMITX线缆插入 */
|
|
|
UAPI_HDMITX_EVENT_HOTPLUG_OUT, /* HDMITX cable plug out */ /* CNcomment: HDMITX线缆拔出 */
|
|
|
UAPI_HDMITX_EVENT_HDCP_CAP_CHANGE, /* HDCP capability change */ /* CNcomment: HDCP能力改变 */
|
|
|
UAPI_HDMITX_EVENT_HDCP_FAIL, /* HDCP authentication fail */ /* CNcomment: HDCP认证失败 */
|
|
|
UAPI_HDMITX_EVENT_HDCP_SUCCESS, /* HDCP authentication success */ /* CNcomment: HDCP认证成功 */
|
|
|
UAPI_HDMITX_EVENT_RSEN_CONNECT, /* HDMITX TMDS link connect */ /* CNcomment: TMDS链接成功 */
|
|
|
UAPI_HDMITX_EVENT_RSEN_DISCONNECT, /* HDMITX TMDS link is disconnect */ /* CNcomment: TMDS断开链接 */
|
|
|
UAPI_HDMITX_EVENT_LINK_TRAIN_FAIL, /* HDMITX FRL link training fail */ /* CNcomment: HDMITX固定码率链路训练失败 */
|
|
|
UAPI_HDMITX_EVENT_HDCP_KEY_LOST, /* HDMITX HDCP AUTH LOST HDCP1.4 KEY */ /* CNcomment: HDCP1.4 key 丢失 */
|
|
|
UAPI_HDMITX_EVENT_MAX
|
|
|
} uapi_hdmitx_event_type;
|
|
|
|
|
|
/*
|
|
|
* Defines event callback function interface
|
|
|
* CNcomment: 定义事件回调函数
|
|
|
*/
|
|
|
typedef td_void (*uapi_hdmitx_callback_ptr)(uapi_hdmitx_id id, uapi_hdmitx_event_type event,
|
|
|
td_void *private_data);
|
|
|
|
|
|
/*
|
|
|
* Defines HDMITX Callback Struct
|
|
|
* CNcomment: 定义HDMITX回调结构体类型
|
|
|
*/
|
|
|
typedef struct {
|
|
|
uapi_hdmitx_callback_ptr event_callback_func; /* callback function pointer */ /* CNcomment: 回调函数指针 */
|
|
|
td_void *private_data; /* callback funtion param */ /* CNcomment: 回调函数参数 */
|
|
|
} uapi_hdmitx_callback;
|
|
|
|
|
|
/*
|
|
|
* HDMITX hot plug status
|
|
|
* CNcomment: HDMITX 线缆拔插状态
|
|
|
*/
|
|
|
typedef enum {
|
|
|
UAPI_HDMITX_HOTPLUG_DETECTING, /* Hotplug is detecting */ /* CNcomment: 拔插状态检测中 */
|
|
|
UAPI_HDMITX_HOTPLUG_IN, /* Plug in */ /* CNcomment: 插入 */
|
|
|
UAPI_HDMITX_HOTPLUG_OUT, /* Plug out */ /* CNcomment: 拔出 */
|
|
|
UAPI_HDMITX_HOTPLUG_DET_FAIL, /* Hot plug detection failure */ /* CNcomment: 线缆拔插检测失效 */
|
|
|
} uapi_hdmitx_hotplug_status;
|
|
|
|
|
|
/*
|
|
|
* HDMITX TMDS link rsen status
|
|
|
* CNcomment: HDMITX TMDS链路的rsen状态
|
|
|
*/
|
|
|
typedef enum {
|
|
|
UAPI_HDMITX_RSEN_DISCONNECT, /* Rsen disconnect */ /* CNcomment: TMDS RSEN断开连接 */
|
|
|
UAPI_HDMITX_RSEN_CONNECT, /* Rsen connect */ /* CNcomment: TMDS RSEN链接成功 */
|
|
|
UAPI_HDMITX_RSEN_DET_FAIL, /* Rsen detection failure */ /* CNcomment: TMDS RSEN检测失效 */
|
|
|
} uapi_hdmitx_rsen_status;
|
|
|
|
|
|
/*
|
|
|
* HDMITX status
|
|
|
* CNcomment: HDMITX 状态
|
|
|
*/
|
|
|
typedef struct {
|
|
|
uapi_hdmitx_hotplug_status hotplug; /* HDMITX hot plug status */ /* CNcomment: hot plug状态 */
|
|
|
uapi_hdmitx_rsen_status rsen; /* HDMITX TMDS link rsen status */ /* CNcomment: TMDS链路的rsen状态 */
|
|
|
td_bool output_enable; /* HDMITX signal output enable status */ /* CNcomment: 信号输出使能状态 */
|
|
|
} uapi_hdmitx_status;
|
|
|
|
|
|
/*
|
|
|
* Sink colorimety capability infomation struct. see CTA-861-G
|
|
|
* CNcomment: Sink色域能力信息结构体, 请参考CTA-861-G
|
|
|
*/
|
|
|
typedef struct {
|
|
|
td_bool xvycc601; /* support xvYCC601, Standard Definition Colorimetry based on IEC 61966-2-4 [5 ]
|
|
|
* CNcomment: 支持xvYCC601,基于IEC 61966-2-4 [5]的标准定义色域 */
|
|
|
td_bool xvycc709; /* support xvYCC709, High Definition Colorimetry based on IEC 61966-2-4 [5 ]
|
|
|
* CNcomment: 支持xvYCC709,基于IEC 61966-2-4 [5]的高清色域 */
|
|
|
td_bool sycc601; /* Colorimetry based on IEC 61966-2-1/Amendment 1 [34]
|
|
|
* CNcomment: 色域设置基于 IEC 61966-2-1/Amendment 1 [34] */
|
|
|
td_bool adobe_ycc601; /* Colorimetry based on IEC 61966-2-5 [32], Annex A
|
|
|
* CNcomment: 色域设置基于 IEC 61966-2-5 [32], Annex A */
|
|
|
td_bool adobe_rgb; /* Colorimetry based on IEC 61966-2-5 [32]
|
|
|
* CNcomment: 色域设置基于 IEC 61966-2-5 [32] */
|
|
|
td_bool bt2020_c_ycc; /* Colorimetry based on ITU-R BT.2020 [39] Y'cC'bcC'rc
|
|
|
* CNcomment: 色域设置基于 ITU-R BT.2020 [39] Y'cC'bcC'rc */
|
|
|
td_bool bt2020_ycc; /* Colorimetry based on ITU-R BT.2020 [39] Y'C'BC'R
|
|
|
* CNcomment: 色域设置基于 ITU-R BT.2020 [39] Y'C'BC'R */
|
|
|
td_bool bt2020_rgb; /* Colorimetry based on ITU-R BT.2020 [39] R'G'B'
|
|
|
* CNcomment: 色域设置基于 ITU-R BT.2020 [39] R'G'B' */
|
|
|
td_bool dci_p3; /* Colorimetry based on DCI-P3 [51][52] */ /* CNcomment: 色域设置基于 DCI-P3 [51][52] */
|
|
|
} uapi_hdmitx_colorimetry;
|
|
|
|
|
|
/*
|
|
|
* Sink manufacture infomation struct
|
|
|
* CNcomment: Sink 制造信息结构体
|
|
|
*/
|
|
|
typedef struct {
|
|
|
td_u8 mfrs_name[UAPI_HDMITX_VENDOR_NAME_LEN]; /* manufacture name */ /* CNcomment: 制造名字 */
|
|
|
td_u32 product_code; /* product code */ /* CNcomment: 产品代码 */
|
|
|
td_u32 serial_number; /* serial numeber of manufacture */ /* CNcomment: 制造的序列号 */
|
|
|
td_u32 week; /* the week of manufacture */ /* CNcomment: 生产周 */
|
|
|
td_u32 year; /* the year of manufacture */ /* CNcomment: 制造的年限 */
|
|
|
} uapi_hdmitx_manufacture_info;
|
|
|
|
|
|
/*
|
|
|
* Define sdetail timing information
|
|
|
* CNcomment: 详细时序信息定义
|
|
|
*/
|
|
|
typedef struct {
|
|
|
td_u32 pixel_clock; /* pixel clock */ /* CNcomment: 像素时钟 */
|
|
|
td_bool progressive; /* if ture, the timing is a progressive format; or it is a interlaced format */
|
|
|
/* CNcomment: 如果true,则时序为逐行输出格式;或者为隔行输出格式 */
|
|
|
td_u32 field_rate; /* field rate */ /* CNcomment: 场速率 */
|
|
|
td_u32 h_active; /* horizontal active */ /* CNcomment: 水平活动区域 */
|
|
|
td_u32 h_total; /* horizontal total */ /* CNcomment: 水平计数 */
|
|
|
td_u32 h_blank; /* horizontal blank */ /* CNcomment: 水平空白区域 */
|
|
|
td_u32 h_front; /* horizontal front */ /* CNcomment: 水平前消隐 */
|
|
|
td_u32 h_sync; /* horizontal sync pulse */ /* CNcomment: 水平同步脉冲 */
|
|
|
td_u32 h_back; /* horizontal back */ /* CNcomment: 水平后消隐 */
|
|
|
td_bool h_pol; /* horizontal polarity, true for positive, false for negative */
|
|
|
/* CNcomment: 水平极性,正为真,负为假 */
|
|
|
td_u32 v_active; /* vertical active */ /* CNcomment: 垂直活动区域 */
|
|
|
td_u32 v_total; /* vertical total */ /* CNcomment: 垂直计数 */
|
|
|
td_u32 v_blank; /* vertical blank */ /* CNcomment: 垂直空白区域 */
|
|
|
td_u32 v_front; /* vertical front */ /* CNcomment: 垂直前消隐 */
|
|
|
td_u32 v_sync; /* vertical sync pulse */ /* CNcomment: 垂直同步脉冲 */
|
|
|
td_u32 v_back; /* vertical back */ /* CNcomment: 垂直后消隐 */
|
|
|
td_bool v_pol; /* vertical polarity, true for positive, false for negative */
|
|
|
/* CNcomment: 垂直极性,正为真,负为假 */
|
|
|
uapi_video_aspect_ratio pic_asp_ratio; /* see picture aspect ratio definations */
|
|
|
/* CNcomment: 见画面纵横比定义 */
|
|
|
td_u32 flag; /* see UAPI_HDMITX_TIMING_FLAG_XXX definations */
|
|
|
/* CNcomment: 见相关UAPI_HDMITX_TIMING_FLAG_XXX 宏定义 */
|
|
|
td_u32 mode_3d; /* see 3D video capibility bit definations, UAPI_HDMITX_3D_BZ_XXX */
|
|
|
/* CNcomment: 见3D视频能力位定义,UAPI_HDMITX_3D_BZ_XXX */
|
|
|
} uapi_hdmitx_detail_timing;
|
|
|
|
|
|
/*
|
|
|
* available mode information
|
|
|
* CNcomment: 有效制式模式信息
|
|
|
*/
|
|
|
typedef struct {
|
|
|
td_u32 vic; /* Video ID Code */ /* CNcomment: 视频ID编码 */
|
|
|
uapi_hdmitx_detail_timing detail_timing; /* see detail timing information */ /* CNcomment: 详细时序信息定义 */
|
|
|
td_u32 color_cap; /* see Color format/depth(@u32ColorCap) flag definations */
|
|
|
/* CNcomment: 见颜色格式/深度(@u32ColorCap)标志定义 */
|
|
|
} uapi_hdmitx_avail_mode;
|
|
|
|
|
|
/*
|
|
|
* available capability information
|
|
|
* CNcomment: 有效能力信息
|
|
|
*/
|
|
|
typedef struct {
|
|
|
uapi_hdmitx_avail_mode native_mode; /* the native mode */ /* CNcomment: 最佳模式 */
|
|
|
uapi_hdmitx_avail_mode max_mode; /* the max resolution & field rate mode */
|
|
|
/* CNcomment: 最大分辨率&场速率模式 */
|
|
|
td_u32 mode_cnt; /* avail modes count */ /* CNcomment: 有效模式计数 */
|
|
|
td_u32 max_tmds_clock; /* max tmds clock */ /* CNcomment: 最大的TMDS时钟 */
|
|
|
td_bool dvi_only; /* If true, this sink only supports DVI mode else support HDMITX mode and DVI mode */
|
|
|
/* CNcomment: 如果为真,则对端只支持DVI模式,否则支持HDMITX模式和DVI模式 */
|
|
|
} uapi_hdmitx_avail_cap;
|
|
|
|
|
|
/*
|
|
|
* EDID latency capability, see <hdmi1.4b> page154
|
|
|
* CNcomment: Sink 音视频延时能力结构体, 请参考hdmi1.4b 的154页
|
|
|
*/
|
|
|
typedef struct {
|
|
|
td_bool present; /* latency info is valid. */ /* CNcomment: 时延信息有效. */
|
|
|
td_u32 p_video; /* video latency for progressive video formats.in milliseconds */
|
|
|
/* CNcomment: 逐行视频格式的视频延迟,以毫秒为单位 */
|
|
|
td_u32 p_audio; /* audio latency for progressive video formats.in milliseconds */
|
|
|
/* CNcomment: 逐行视频格式的音频延迟,以毫秒为单位 */
|
|
|
td_u32 i_video; /* video latency for interlaced video formats.in milliseconds */
|
|
|
/* CNcomment: 隔行扫描视频格式的视频延迟。以毫秒为单位 */
|
|
|
td_u32 i_audio; /* audio latency for interlaced video formats.in milliseconds */
|
|
|
/* CNcomment: 隔行扫描视频格式的音频延迟。以毫秒为单位 */
|
|
|
} uapi_hdmitx_latency;
|
|
|
|
|
|
/*
|
|
|
* EDID max display parameters struct
|
|
|
* CNcomment: Sink 最大显示尺寸结构体
|
|
|
*/
|
|
|
typedef struct {
|
|
|
td_u8 max_image_width; /* the disp image max width (0~255)cm */ /* CNcomment: 色散图像最大宽度(0~255)cm */
|
|
|
td_u8 max_image_height; /* the disp image max height (0~255)cm */ /* CNcomment: 色散图像最大高度(0~255)cm */
|
|
|
} uapi_hdmitx_disp_para;
|
|
|
|
|
|
/*
|
|
|
* Defines eotf capability struct
|
|
|
* CNcomment: 定义eotf能力结构体
|
|
|
*/
|
|
|
typedef struct {
|
|
|
td_bool traditional_sdr; /* Traditional gamma - SDR Luminance Range */ /* CNcomment: 传统伽玛-SDR亮度范围 */
|
|
|
td_bool traditional_hdr; /* Traditional gamma - HDR Luminance Range */ /* CNcomment: 传统伽玛-HDR亮度范围 */
|
|
|
td_bool hdr10; /* HDR10(SMPTE ST 2084) */ /* CNcomment:HDMT HDR的HDR10模式 */
|
|
|
td_bool hlg; /* Hybrid Log-Gamma */ /* CNcomment: HDMT HDR的HLG模式(混合对数伽玛) */
|
|
|
} uapi_hdmitx_eotf;
|
|
|
|
|
|
/*
|
|
|
* Sink HDR dynamic metadata type
|
|
|
* CNcomment: Sink 动态元数据能力结构体
|
|
|
*/
|
|
|
typedef struct {
|
|
|
td_bool d_type1_support; /* type1 dynamic metadata support */ /* CNcomment: type1动态元数据支持 */
|
|
|
td_u32 d_type1_version; /* type1 dynamic metadata version */ /* CNcomment: type1动态元数据版本 */
|
|
|
td_bool d_type2_support; /* type2 dynamic metadata support */ /* CNcomment: type2动态元数据支持 */
|
|
|
td_u32 d_type2_version; /* type2 dynamic metadata version */ /* CNcomment: type2动态元数据版本 */
|
|
|
td_bool d_type3_support; /* type3 dynamic metadata support */ /* CNcomment: type3动态元数据支持 */
|
|
|
td_bool d_type4_support; /* type4 dynamic metadata support */ /* CNcomment: type4动态元数据支持 */
|
|
|
td_u32 d_type4_version; /* type_4_hdr_metadata_version */ /* CNcomment: type4动态元数据版本 */
|
|
|
} uapi_hdmitx_dynamic_metadata;
|
|
|
|
|
|
/*
|
|
|
* Sink HDR static metadata type
|
|
|
* CNcomment: Sink 静态元数据能力结构体
|
|
|
*/
|
|
|
typedef struct {
|
|
|
td_bool stype1; /* Static Metadata Type 1 support */ /* CNcomment: 静态元数据Type1支持 */
|
|
|
td_u8 max_lum_cv; /* Desired Content Max Luminance Data. Real value(in 1cd/m^2) = 50.2^(CV/32) */
|
|
|
/* CNcomment: 期望的内容最大亮度数据 */
|
|
|
td_u8 aver_lum_cv; /* Desired Content Max Frame-average Luminance. Real value(in 1cd/m^2) = 50.2^(CV/32) */
|
|
|
/* CNcomment: 所需内容最大帧平均亮度 */
|
|
|
td_u8 min_lum_cv; /* Desired Content Min Luminance Data.
|
|
|
* Real value(in 1cd/m^2) = MaxLuminance_CV * (MinLuminance_CV/255)^2 / 100 */
|
|
|
/* CNcomment: 所需内容最小亮度数据。 */
|
|
|
} uapi_hdmitx_static_metadata;
|
|
|
|
|
|
/*
|
|
|
* Sink HDR capability struct
|
|
|
* CNcomment: Sink HDR能力结构体
|
|
|
*/
|
|
|
typedef struct {
|
|
|
uapi_hdmitx_eotf eotf;
|
|
|
uapi_hdmitx_static_metadata static_metadata; /* HDR Static Metadata Type */ /* CNcomment: HDR静态元数据类型 */
|
|
|
uapi_hdmitx_dynamic_metadata dynamic_metadata; /* HDR Dynamic Metadata Type */ /* CNcomment: HDR动态元数据类型 */
|
|
|
} uapi_hdmitx_hdr_info;
|
|
|
|
|
|
/*
|
|
|
* EDID dolby vision capability ,for version 0
|
|
|
* CNcomment: Sink dolby vision能力结构体(版本0)
|
|
|
*/
|
|
|
typedef struct {
|
|
|
td_bool ycbcr422_12bit; /* support(true) or not support(false) a YCbCr422-12Bit dolby singal */
|
|
|
/* CNcomment: 支持(true)或不支持(false)YCbCr422-12bit杜比信号 */
|
|
|
td_bool cap_2160p60; /* capable of processing a max timming 3840X2160p60(true)/3840X2160p30(false) */
|
|
|
/* CNcomment: 能够处理最大时序3840X2160p60(真)/3840X2160p30(假) */
|
|
|
td_bool global_dimming; /* support(true) or not support(false) global dimming. */
|
|
|
/* CNcomment: 支持(true)或不支持(false)全局调光功能 */
|
|
|
td_u16 white_x; /* white point chromaticity coordinate x, bit[11:0] valid. bit[11:0] valid.
|
|
|
* Real value = SUM OF bit[N]*2^-(12-N) */
|
|
|
/* CNcomment: 白点色度坐标x,bit[11:0]有效。bit[11:0]有效。 */
|
|
|
td_u16 white_y; /* white point chromaticity coordinate y, bit[11:0] valid. bit[11:0] valid.
|
|
|
* Real value = SUM OF bit[N]*2^-(12-N) */
|
|
|
/* CNcomment: 白点色度坐标y,bit[11:0]有效。bit[11:0]有效。 */
|
|
|
td_u8 dm_major_ver; /* the major version of display management implemented. */
|
|
|
/* CNcomment: 显示器管理实施的主要版本 */
|
|
|
td_u8 dm_minor_ver; /* the minor version of display management implemented. */
|
|
|
/* CNcomment: 显示器管理实施的次要版本 */
|
|
|
td_u16 target_min_pq; /* Perceptual quantization(PQ)-encoded value of minimum display luminance */
|
|
|
/* CNcomment: PQ(感知量化)编码的最小显示亮度值 */
|
|
|
td_u16 target_max_pq; /* PQ-encoded value of maximum display luminance */
|
|
|
/* CNcomment: PQ编码的最大显示亮度值 */
|
|
|
td_u16 red_x; /* red primary chromaticity coordinate x, bit[11:0] valid. Real value =SUM OF bit[N]*2^-(12-N) */
|
|
|
/* CNcomment: 红色主色坐标x,bit[11:0]有效. 实际值=SUM of bit[N]*2^-(12-N) */
|
|
|
td_u16 red_y; /* red primary chromaticity coordinate y, bit[11:0] valid. Real value =SUM OF bit[N]*2^-(12-N) */
|
|
|
/* CNcomment: 红色主色坐标y,bit[11:0]有效. 实际值=SUM of bit[N]*2^-(12-N) */
|
|
|
td_u16 green_x; /* green primary chromaticity coordinate x, bit[11:0] valid. Real value =SUM OF bit[N]*2^-(12-N) */
|
|
|
/* CNcomment: 绿色主色坐标x,bit[11:0]有效. 实际值=SUM of bit[N]*2^-(12-N) */
|
|
|
td_u16 green_y; /* green primary chromaticity coordinate y, bit[11:0] valid. Real value =SUM OF bit[N]*2^-(12-N) */
|
|
|
/* CNcomment: 绿色主色坐标y,bit[11:0]有效. 实际值=SUM of bit[N]*2^-(12-N) */
|
|
|
td_u16 blue_x; /* blue primary chromaticity coordinate x, bit[11:0] valid. Real value =SUM OF bit[N]*2^-(12-N) */
|
|
|
/* CNcomment: 蓝色主色坐标x,bit[11:0]有效. 实际值=SUM of bit[N]*2^-(12-N) */
|
|
|
td_u16 blue_y; /* blue primary chromaticity coordinate y, bit[11:0] valid. Real value =SUM OF bit[N]*2^-(12-N) */
|
|
|
/* CNcomment: 蓝色主色坐标y,bit[11:0]有效. 实际值=SUM of bit[N]*2^-(12-N) */
|
|
|
} uapi_hdmitx_dolby_v0;
|
|
|
|
|
|
/*
|
|
|
* EDID dolby vision capability ,for version 1
|
|
|
* CNcomment: Sink dolby vision能力结构体(版本1)
|
|
|
*/
|
|
|
typedef struct {
|
|
|
td_bool ycbcr422_12bit; /* support or not YCbCr422-12Bit dolby singal; For low-latency this flag is ingnored */
|
|
|
/* CNcomment: 是否支持YCbCr422-12bit杜比信号;低延时时, 该标志被忽略 */
|
|
|
td_bool cap_2160p60; /* capable of processing a max timming 3840X2160p60/3840X2160p30 */
|
|
|
/* CNcomment: 能够处理的最大时序3840X2160p60/3840X2160p30 */
|
|
|
td_bool global_dimming; /* support(true) or not support(false) global dimming. */
|
|
|
/* CNcomment: 支持(true)或不支持(false)全局调光功能 */
|
|
|
td_bool colorimetry; /* 0: Dolby Vision HDMI sink's colorimetry is close to Rec.709,
|
|
|
* 1: EDR HDMI sink's colorimetry is close to P3,if Byte[9] to Byte[14] are present,
|
|
|
* ignores this bit. */
|
|
|
/* CNcomment: 0: 杜比Vision HDMI Sink的色域接近Rec.709
|
|
|
* 1: EDR HDMI sink端色域接近P3,如果Byte[9]到Byte[14]存在,忽略此位. */
|
|
|
td_u8 dm_version; /* 0: based on display management v2.x;
|
|
|
* 1: based on the video and blending pipeline v3.x;
|
|
|
* 2-7: reserved. */
|
|
|
/* CNcomment: 0:基于显示管理v2.x;
|
|
|
* 1:基于视频和混合管道 v3.x;
|
|
|
* 2-7:保留. */
|
|
|
td_u8 low_latency; /* 0: Supports only standard Dolby Vison;
|
|
|
* 1: Supports low latency with 12-bit YCbCr 4:2:2 interface;
|
|
|
* 2-3: reserved */
|
|
|
/* CNcomment: 0:只支持标准的杜比版本;
|
|
|
* 1:支持12bit YCbCr 4:2:2接口的低时延;
|
|
|
* 2-3:保留 */
|
|
|
td_u16 target_min_lum; /* minimum display luminance = (100+50*CV)cd/m2, where CV is the value */
|
|
|
/* CNcomment: 显示最小亮度=(100+50*CV)cd/m2,其中CV为数值 */
|
|
|
td_u16 target_max_lum; /* maximum display luminance = (CV/127)^2cd/m2, where CV is the value */
|
|
|
/* CNcomment: 显示最大亮度=(CV/127)^2cd/m2,其中CV为数值 */
|
|
|
td_u16 red_x; /* red primary chromaticity coordinate x, bit[11:0] valid. Real value = SUM OF bit[N]*2^-(12-N) */
|
|
|
/* CNcomment: 红色主色坐标x,bit[11:0]有效. 实际值=SUM of bit[N]*2^-(12-N) */
|
|
|
td_u16 red_y; /* red primary chromaticity coordinate y, bit[11:0] valid. Real value = SUM OF bit[N]*2^-(12-N) */
|
|
|
/* CNcomment: 红色主色坐标y,bit[11:0]有效. 实际值=SUM of bit[N]*2^-(12-N) */
|
|
|
td_u16 green_x; /* green primary chromaticity coordinate x, bit[11:0] valid. Real value = SUM OF bit[N]*2^-(12-N) */
|
|
|
/* CNcomment: 绿色主色坐标x,bit[11:0]有效. 实际值=SUM of bit[N]*2^-(12-N) */
|
|
|
td_u16 green_y; /* green primary chromaticity coordinate y, bit[11:0] valid. Real value = SUM OF bit[N]*2^-(12-N) */
|
|
|
/* CNcomment: 绿色主色坐标y,bit[11:0]有效. 实际值=SUM of bit[N]*2^-(12-N) */
|
|
|
td_u16 blue_x; /* blue primary chromaticity coordinate x, bit[11:0] valid. Real value = SUM OF bit[N]*2^-(12-N) */
|
|
|
/* CNcomment: 蓝色主色坐标x,bit[11:0]有效. 实际值=SUM of bit[N]*2^-(12-N) */
|
|
|
td_u16 blue_y; /* blue primary chromaticity coordinate y, bit[11:0] valid. Real value = SUM OF bit[N]*2^-(12-N) */
|
|
|
/* CNcomment: 蓝色主色坐标y,bit[11:0]有效. 实际值=SUM of bit[N]*2^-(12-N) */
|
|
|
} uapi_hdmitx_dolby_v1;
|
|
|
|
|
|
/*
|
|
|
* EDID dolby vision capability ,for version 2
|
|
|
* CNcomment: Sink dolby vision能力结构体(版本2)
|
|
|
*/
|
|
|
typedef struct {
|
|
|
td_bool ycbcr422_12bit; /* support(true) or not support(false) a YCbCr422-12Bit dolby singal */
|
|
|
/* CNcomment: 支持(true)或不支持(false) YCbCr422-12bit杜比信号 */
|
|
|
td_bool back_light_ctrl; /* supports Backlight Control */
|
|
|
/* CNcomment: 支持背光控制 */
|
|
|
td_bool global_dimming; /* support(true) or not support(false) global dimming. */
|
|
|
/* CNcomment: 支持(true)或不支持(false)全局调光功能 */
|
|
|
td_u8 dm_version; /* 0:based on display management v2.x;
|
|
|
* 1:based on the video and blending pipeline v3.x;
|
|
|
* 2-7: reserved. only support when u8VSVDBVersion = 1. */
|
|
|
/* CNcomment: 0:基于显示管理v2.x;
|
|
|
* 1:基于视频,混合管道 v3.x;
|
|
|
* 2-7:保留。仅当u8VSVDBVersion=1时支持。 */
|
|
|
td_u8 back_lt_min_lum; /* minimum luminance level 0:25cd/m2 1:50cd/m2 2:75cd/m2 3:100cd/m2 */
|
|
|
/* CNcomment: 最小亮度等级0:25cd/m2 1:50cd/m2 2:75cd/m2 3:100cd/m2 */
|
|
|
td_u8 interface; /* 0:support only "low latency with YCbCr422"
|
|
|
* 1:support both "low latency with YCbCr422" and YCbCr444/RGB_10/12bit*
|
|
|
* 2:support both "standard DolbyVision" and "low latency with YCbCr422"
|
|
|
* 3:support "standard DolbyVision" "low latency YCbCr422 YCbCr444/RGB_10/12bit" */
|
|
|
/* CNcomment: 0:只支持“低延时YCbCr422”
|
|
|
* 1:同时支持YCbCr422的低时延和YCbCr444/RGB_10/12bit*
|
|
|
* 2:同时支持“标准DolbyVision”和“YCbCr422低延时”
|
|
|
* 3:支持“标准杜比视觉”“低延时YCbCr422 YCbCr444/RGB_10/12bit” */
|
|
|
td_u8 y444_rgb_10b12b; /* 0:not support 1:Support YCbCr444/RGB444_10bit 2:YCbCr444/RGB444_12bit 3:reserved */
|
|
|
/* CNcomment: 0:不支持; 1:支持YCbCr444/RGB444_10bit; 2:支持YCbCr444/RGB444_12bit;
|
|
|
* 3:保留 */
|
|
|
td_u16 target_min_pq_v2; /* maximum display luminance, in the PQ-encoded value= 2055+target_max_pq_v2*65. */
|
|
|
/* CNcomment: 最大显示亮度,PQ编码值=2055+target_max_pq_v2*65. */
|
|
|
td_u16 target_max_pq_v2; /* minimum display luminance, in the PQ-encoded value= 2055+target_max_pq_v2*65. */
|
|
|
/* CNcomment: 最小显示亮度,PQ编码值=2055+target_max_pq_v2*65. */
|
|
|
td_u16 red_x; /* red primary chromaticity coordinate x, bit[11:0] valid. Real value =SUM OF bit[N]*2^-(12-N) */
|
|
|
/* CNcomment: 红色主色坐标x,bit[11:0]有效. 实际值=SUM of bit[N]*2^-(12-N) */
|
|
|
td_u16 red_y; /* red primary chromaticity coordinate y, bit[11:0] valid. Real value =SUM OF bit[N]*2^-(12-N) */
|
|
|
/* CNcomment: 红色主色坐标y,bit[11:0]有效. 实际值=SUM of bit[N]*2^-(12-N) */
|
|
|
td_u16 green_x; /* green primary chromaticity coordinate x, bit[11:0] valid. Real value =SUM OF bit[N]*2^-(12-N) */
|
|
|
/* CNcomment: 绿色主色坐标x,bit[11:0]有效. 实际值=SUM of bit[N]*2^-(12-N) */
|
|
|
td_u16 green_y; /* green primary chromaticity coordinate y, bit[11:0] valid. Real value =SUM OF bit[N]*2^-(12-N) */
|
|
|
/* CNcomment: 绿色主色坐标y,bit[11:0]有效. 实际值=SUM of bit[N]*2^-(12-N) */
|
|
|
td_u16 blue_x; /* blue primary chromaticity coordinate x, bit[11:0] valid. Real value =SUM OF bit[N]*2^-(12-N) */
|
|
|
/* CNcomment: 蓝色主色坐标x,bit[11:0]有效. 实际值=SUM of bit[N]*2^-(12-N) */
|
|
|
td_u16 blue_y; /* blue primary chromaticity coordinate y, bit[11:0] valid. Real value =SUM OF bit[N]*2^-(12-N) */
|
|
|
/* CNcomment: 蓝色主色坐标y,bit[11:0]有效 */
|
|
|
} uapi_hdmitx_dolby_v2;
|
|
|
|
|
|
/*
|
|
|
* EDID dolby vision capability
|
|
|
* CNcomment: Sink dolby vision能力结构体
|
|
|
*/
|
|
|
typedef struct {
|
|
|
td_bool support_v0; /* V0 support */ /* CNcomment: V0支持 */
|
|
|
td_bool support_v1; /* V1 support */ /* CNcomment: V1支持 */
|
|
|
td_bool support_v2; /* V2 support */ /* CNcomment: V2支持 */
|
|
|
uapi_hdmitx_dolby_v0 v0; /* V0 detail */ /* CNcomment: V0详细能力 */
|
|
|
uapi_hdmitx_dolby_v1 v1; /* V1 detail */ /* CNcomment: V1详细能力 */
|
|
|
uapi_hdmitx_dolby_v2 v2; /* V2 detail */ /* CNcomment: V2详细能力 */
|
|
|
} uapi_hdmitx_dolby_info;
|
|
|
|
|
|
/*
|
|
|
* Sink VRR capability, see Spec HDMITX2.1 Table 10-6
|
|
|
* CNcomment: Sink VRR能力结构体,见协议HDMITX2.1 Table 10-6
|
|
|
*/
|
|
|
typedef struct {
|
|
|
td_bool fva;
|
|
|
td_bool cnm_vrr;
|
|
|
td_bool cinema_vrr;
|
|
|
td_bool m_delta;
|
|
|
td_bool fapa_start_locat;
|
|
|
td_bool allm;
|
|
|
td_u16 vrr_min;
|
|
|
td_u16 vrr_max;
|
|
|
} uapi_hdmitx_vrr_info;
|
|
|
|
|
|
/*
|
|
|
* Sink cuva capability.
|
|
|
* CNcomment: Sink CUVA能力结构体
|
|
|
*/
|
|
|
typedef struct {
|
|
|
td_u8 system_start_code; /* support version code. */ /* CNcomment: 支持的CUVA版本号 */
|
|
|
td_u8 version_code; /* support HDMI version code. */ /* CNcomment: 支持HDMI系统版本号 */
|
|
|
td_u32 display_max_lum; /* display maximum luminance. max display is display_max_lum/10000. */
|
|
|
/* CNcomment: 支持的最大显示亮度. max display最终值是display_max_lum/10000. */
|
|
|
td_u32 display_min_lum; /* display minimum luminance. min display is display_min_lum/10000. */
|
|
|
/* CNcomment: 支持的最小显示亮度. min display最终值是display_min_lum/10000. */
|
|
|
td_bool monitor_mode_support; /* monitor mode support. */ /* CNcomment: 显示终端对监视器适配模式的支持能力 */
|
|
|
td_bool rx_mode_support; /* rx mode support. */ /* CNcomment: 显示终端对接收端适配模式的支持能力 */
|
|
|
} uapi_hdmitx_cuva_info;
|
|
|
|
|
|
/*
|
|
|
* Sink speaker capability,see CTA-861-G Page 104
|
|
|
* CNcomment: Sink 扬声器能力结构体,参考CTA-861-G 104页
|
|
|
*/
|
|
|
typedef struct {
|
|
|
td_bool fl_fr; /* Front Left and Front Right(FL/FR) */ /* CNcomment: 左前、右前(FL/FR) */
|
|
|
td_bool lfe; /* Low Frequency Effect(LFE) */ /* CNcomment: 低频效应(LFE) */
|
|
|
td_bool fc; /* Front Center(FC) */ /* CNcomment: 前部中心(FC) */
|
|
|
td_bool rl_rr; /* Rear Left and Rear Right(RL/RR) */ /* CNcomment: 左后右后(RL/RR) */
|
|
|
td_bool rc; /* Rear Center(RC) */ /* CNcomment: 后部中心(FC) */
|
|
|
td_bool flc_frc; /* Front Left Center and Front Right Center(FLC/FRC) */ /* CNcomment: 前左中和前右中(FLC/FRC) */
|
|
|
td_bool rlc_rrc; /* Front Left Center and Rear Right Center(FLC/RRC) */ /* CNcomment: 前左中 后右中(FLC/RRC) */
|
|
|
td_bool flw_frw; /* Front Left Wide and Front Right Wide(FLW/FRW) */ /* CNcomment: 左前宽右前宽(FLW/FRW) */
|
|
|
td_bool flh_frh; /* Front Left High and Front Right High(FLH/FRH) */ /* CNcomment: 左前高右前高(FLH/FRH) */
|
|
|
td_bool tc; /* Top Center(TC) */ /* CNcomment: 顶部中心(TC) */
|
|
|
td_bool fch; /* Front Center High(FCH) */ /* CNcomment: 前部中心高配(FCH) */
|
|
|
} uapi_hdmitx_audio_speaker;
|
|
|
|
|
|
/*
|
|
|
* Short Audio Descriptors. see CTA-861-G 7.5.2 Audio Data Block
|
|
|
* CNcomment: 简式音频描述符.见 CTA-861-G 7.5.2 Audio Data Block
|
|
|
*/
|
|
|
typedef struct {
|
|
|
td_u32 fmt_code; /* Audio Format Code */ /* CNcomment: 音频格式编码 */
|
|
|
td_u32 ext_code; /* Audio Coding Extension Type Code */ /* CNcomment: 音频编码扩展类型编码 */
|
|
|
td_u32 max_channel; /* Max Number of channels. Audio Format Code 1 to 14; Audio Coding Extension Type Codes 4 to 6,
|
|
|
* 8 to 10; Audio Coding Extension Type 0x0D (L-PCM 3D Audio), bits MC4:MC0 */
|
|
|
/* CNcomment: 最大通道数。音频格式编码1~14;音频编码扩展类型编码4~6,8~10;
|
|
|
* 音频编码扩展类型0x0D(L-PCM 3D音频),bits MC4:MC0 */
|
|
|
td_bool samp_32k;
|
|
|
td_bool samp_44p1k;
|
|
|
td_bool samp_48k;
|
|
|
td_bool samp_88p2k;
|
|
|
td_bool samp_96k;
|
|
|
td_bool samp_176p4k;
|
|
|
td_bool samp_192k;
|
|
|
td_bool width_16; /* 16bit.Only to Audio Format Code = 1 (L-PCM) & Audio Extension Type Code 13 (L-PCM 3D Audio) */
|
|
|
/* CNcomment: 16bit. 仅音频格式编码=1 (L-PCM) &音频扩展类型编码13 (L-PCM 3D音频) */
|
|
|
td_bool width_20; /* 20bit.Only to Audio Format Code = 1 (L-PCM) & Audio Extension Type Code 13 (L-PCM 3D Audio) */
|
|
|
/* CNcomment: 20bit. 仅音频格式编码=1 (L-PCM) &音频扩展类型编码13 (L-PCM 3D音频) */
|
|
|
td_bool width_24; /* 24bit.Only to Audio Format Code = 1 (L-PCM) & Audio Extension Type Code 13 (L-PCM 3D Audio) */
|
|
|
/* CNcomment: 24bit. 仅音频格式编码=1 (L-PCM) &音频扩展类型编码13 (L-PCM 3D音频) */
|
|
|
td_u32 max_bit_rate; /* Maximum bit rate in Hz.Only to Audio Format Codes 2 to 8 */
|
|
|
/* CNcomment: 最大比特率(hz). 仅限音频格式代码2到8 */
|
|
|
td_u32 dependent; /* Audio Format Code dependent value.Only to Audio Format Codes 9 to 13 */
|
|
|
/* CNcomment: 音频格式代码依赖值. 仅针对音频格式代码9到13 */
|
|
|
td_u32 profile; /* Profile. Only to Audio Format Codes 14 (WMA pro) */
|
|
|
/* CNcomment: 配置文件. 只对音频格式编码14(WMA pro) */
|
|
|
td_bool len_1024tl; /* 1024_TL. AAC audio frame lengths 1024_TL. Only to extension Type Codes 4 to 6 */
|
|
|
/* CNcomment: 1024_TL. AAC音频帧长1024_TL。只对扩展类型代码4-6 */
|
|
|
td_bool len_960tl; /* 960_TL. AAC audio frame lengths 960_TL. Only to extension Type Codes 4 to 6 */
|
|
|
/* CNcomment: 960_TL. AAC音频帧长为960_TL。仅适用于扩展类型代码4至6 */
|
|
|
td_bool mps_l; /* MPS_L. Only to Extension Type Codes 8 to 10 */
|
|
|
/* CNcomment: MPS_L. 只对扩展类型代码8~10 */
|
|
|
} uapi_hdmitx_audio_fmt_info;
|
|
|
|
|
|
/*
|
|
|
* Defines Audio capability information
|
|
|
* CNcomment: 音频能力信息定义
|
|
|
*/
|
|
|
typedef struct {
|
|
|
td_bool basic_support; /* basic audio support. Basic Audio-Uncompressed, two channel, digital audio. */
|
|
|
/* CNcomment: 基本音频支持。基本音频-非压缩,双通道,数字音频. */
|
|
|
td_u32 audio_fmt_cnt; /* Short Audio Descriptors audio format support total number.
|
|
|
* It must less than UAPI_HDMITX_MAX_AUDIO_CNT */
|
|
|
/* CNcomment: ShortAudioDescriptors音频格式支持总数。必须小于UAPI_HDMITX_MAX_AUDIO_CNT */
|
|
|
uapi_hdmitx_audio_fmt_info sad[UAPI_HDMITX_MAX_AUDIO_CNT]; /* Short Audio Descriptors audio format.
|
|
|
* see CTA-861-G 7.5.2 */
|
|
|
/* CNcomment: 短音频描述符音频格式。
|
|
|
* 见 CTA-861-G 7.5.2 */
|
|
|
} uapi_hdmitx_audio_info;
|
|
|
|
|
|
/*
|
|
|
* Defines EDID version
|
|
|
* CNcomment:定义EDID 版本参数
|
|
|
*/
|
|
|
typedef struct {
|
|
|
td_u8 version;
|
|
|
td_u8 revision;
|
|
|
} uapi_hdmitx_edid_version;
|
|
|
|
|
|
/*
|
|
|
* Sink capability information
|
|
|
* CNcomment: 对端能力信息
|
|
|
*/
|
|
|
typedef struct {
|
|
|
uapi_hdmitx_manufacture_info manufacture; /* Sink manufacture infomation struct */
|
|
|
/* CNcomment: sink端制造厂商信息结构 */
|
|
|
uapi_hdmitx_edid_version edid_version; /* EDID version */ /* CNcomment: EDID版本 */
|
|
|
uapi_hdmitx_colorimetry colorimetry; /* Sink colorimety capability infomation struct */
|
|
|
/* CNcomment: Sink色域能力信息结构体 */
|
|
|
uapi_hdmitx_latency latency; /* EDID latency capability */ /* CNcomment: EDID延时能力 */
|
|
|
uapi_hdmitx_disp_para disp_para; /* EDID max display parameters struct */
|
|
|
/* CNcomment: EDID最大显示参数结构体 */
|
|
|
uapi_hdmitx_audio_speaker speaker; /* Sink speaker capability */ /* CNcomment: sink端的扬声器能力 */
|
|
|
uapi_hdmitx_audio_info audio; /* Audio capability */ /* CNcomment: 音频能力 */
|
|
|
uapi_hdmitx_dolby_info dolby; /* EDID dolby vision capability */ /* CNcomment: EDID杜比版本能力 */
|
|
|
uapi_hdmitx_hdr_info hdr; /* Sink HDR capability struct */ /* CNcomment: sink端HDR能力结构体 */
|
|
|
uapi_hdmitx_vrr_info vrr; /* Sink VRR capability */ /* CNcomment: sink端VRR能力 */
|
|
|
uapi_hdmitx_cuva_info cuva; /* Sink CUVA capability */ /* CNcomment: sink端CUVA能力 */
|
|
|
td_u8 reserved;
|
|
|
} uapi_hdmitx_sink_info;
|
|
|
|
|
|
/*
|
|
|
* Defines HDCP KEY version enum
|
|
|
* CNcomment: 定义HDCP KEY版本枚举
|
|
|
*/
|
|
|
typedef enum {
|
|
|
UAPI_HDMITX_HDCP_KEY_VER_1X, /* HDCP1X KEY version */ /* CNcomment: HDCP1X版本KEY */
|
|
|
UAPI_HDMITX_HDCP_KEY_VER_MAX
|
|
|
} uapi_hdmitx_hdcp_key_ver;
|
|
|
|
|
|
/*
|
|
|
* Defines HDCP KEY struct
|
|
|
* CNcomment: 定义HDCP KEY结构体
|
|
|
*/
|
|
|
typedef struct {
|
|
|
uapi_hdmitx_hdcp_key_ver key_ver; /* KEY version */ /* CNcomment: KEY版本 */
|
|
|
td_u8 *data; /* Pointer of key data */ /* CNcomment: key数据指针 */
|
|
|
td_s32 length; /* Length of key data, in bytes */ /* CNcomment: key数据长度,单位为字节 */
|
|
|
} uapi_hdmitx_hdcp_key;
|
|
|
|
|
|
/*
|
|
|
* HDCP SRM struct
|
|
|
* CNcomment: HDCP SRM(失效列表)结构体
|
|
|
*/
|
|
|
typedef struct {
|
|
|
td_u8 *data; /* Pointer of SRM data */ /* CNcomment: SRM数据指针 */
|
|
|
td_s32 length; /* Length of SRM data, in bytes */ /* CNcomment: SRM数据长度,单位为字节 */
|
|
|
} uapi_hdmitx_hdcp_srm;
|
|
|
|
|
|
/*
|
|
|
* HDCP capability struct
|
|
|
* CNcomment: HDCP 能力结构体
|
|
|
*/
|
|
|
typedef struct {
|
|
|
td_bool support14; /* sink support HDCP1.4 version */ /* CNcomment: sink支持HDCP1.4版本 */
|
|
|
td_bool support2x; /* sink support HDCP2.X(2.2/2.3) version */ /* CNcomment: sink支持HDCP2.X(2.2/2.3)版本 */
|
|
|
} uapi_hdmitx_hdcp_cap;
|
|
|
|
|
|
/*
|
|
|
* Defines HDMITX HDCP mode enum
|
|
|
* CNcomment: 定义HDCP 模式枚举
|
|
|
*/
|
|
|
typedef enum {
|
|
|
UAPI_HDMITX_HDCP_MODE_AUTO, /* AUTO mode,preferred higher capable protocol version */
|
|
|
/* CNcomment: 自动模式,优选具备能力的高版本 */
|
|
|
UAPI_HDMITX_HDCP_MODE_14, /* HDCP1.4 mode */ /* CNcomment: HDCP1.4 认证模式 */
|
|
|
UAPI_HDMITX_HDCP_MODE_2X, /* HDCP2.X(2.2/2.3) mode */ /* CNcomment: HDCP2.X(2.2/2.3) 认证模式 */
|
|
|
UAPI_HDMITX_HDCP_MODE_MAX
|
|
|
} uapi_hdmitx_hdcp_mode;
|
|
|
|
|
|
/*
|
|
|
* Defines HDCP version enum
|
|
|
* CNcomment: 定义HDCP 版本枚举
|
|
|
*/
|
|
|
typedef enum {
|
|
|
UAPI_HDMITX_HDCP_VER_NONE, /* no authentication */ /* CNcomment: 未启动HDCP认证 */
|
|
|
UAPI_HDMITX_HDCP_VER_14, /* HDCP1.4 version */ /* CNcomment: HDCP1.4版本 */
|
|
|
UAPI_HDMITX_HDCP_VER_2X, /* HDCP2.X(2.2/2.3) version */ /* CNcomment: HDCP2.X(2.2/2.3)版本 */
|
|
|
UAPI_HDMITX_HDCP_VER_MAX
|
|
|
} uapi_hdmitx_hdcp_ver;
|
|
|
|
|
|
/*
|
|
|
* HDCP error code
|
|
|
* CNcomment: HDMITX HDCP错误码
|
|
|
*/
|
|
|
typedef enum {
|
|
|
UAPI_HDMITX_HDCP_ERR_UNDO = 0x00, /* do not start hdcp. */ /* CNcomment: 未启动HDCP认证 */
|
|
|
UAPI_HDMITX_HDCP_ERR_NONE, /* no authentication error. */ /* CNcomment: 无认证错误 */
|
|
|
UAPI_HDMITX_HDCP_ERR_PLUG_OUT, /* cable plug out. */ /* CNcomment: 线缆拔出 */
|
|
|
UAPI_HDMITX_HDCP_ERR_NO_SIGNAL, /* signal output disable. */ /* CNcomment: 未输出信号 */
|
|
|
UAPI_HDMITX_HDCP_ERR_NO_KEY, /* do not load key. */ /* CNcomment: 未加载key */
|
|
|
UAPI_HDMITX_HDCP_ERR_INVALID_KEY, /* key is invalid. */ /* CNcomment: 加载了无效key */
|
|
|
UAPI_HDMITX_HDCP_ERR_DDC, /* DDC link error. */ /* CNcomment: DDC通道错误 */
|
|
|
UAPI_HDMITX_HDCP_ERR_ON_SRM, /* on revocation list. */ /* CNcomment: 在失效列表中 */
|
|
|
UAPI_HDMITX_HDCP_ERR_NO_CAP, /* no hdcp capability. */ /* CNcomment: 设备不支持hdcp */
|
|
|
UAPI_HDMITX_HDCP_ERR_TYPE1_NO_2X_CAP, /* no hdcp2x capability on stream type 1. */
|
|
|
/* CNcomment: 流类型1上没有hdcp2x功能 */
|
|
|
UAPI_HDMITX_HDCP_ERR_TYPE1_ON_1X_MODE, /* set only hdcp1x mode on stream type 1. */
|
|
|
/* CNcomment: 在流类型1上仅支持hdcp1x模式 */
|
|
|
UAPI_HDMITX_HDCP_1X_NO_CAP = 0x10, /* no hdcp1.4 capability. */ /* CNcomment: 当前制式或设备不支持hdcp1.x */
|
|
|
UAPI_HDMITX_HDCP_1X_BCAP_FAIL, /* read BCAP failed. */ /* CNcomment: 读取BCAP失败 */
|
|
|
UAPI_HDMITX_HDCP_1X_BSKV_FAIL, /* read BKSV failed. */ /* CNcomment: 读取BKSV失败 */
|
|
|
UAPI_HDMITX_HDCP_1X_INTEGRITY_FAIL_R0, /* R0(R0') integrety failure. */ /* CNcomment: R0(R0')校验失败 */
|
|
|
UAPI_HDMITX_HDCP_1X_WATCHDOG_TIMEOUT, /* Repeater watch dog timeout. */ /* CNcomment: 看门狗超时 */
|
|
|
UAPI_HDMITX_HDCP_1X_VI_CHCECK_FAIL, /* Vi(Vi') check failed. */ /* CNcomment: Vi(Vi')校验失败 */
|
|
|
UAPI_HDMITX_HDCP_1X_EXCEEDED_TOPOLOGY, /* Exceeded toplogy. */ /* CNcomment: 超出设备个数或topology层限制 */
|
|
|
UAPI_HDMITX_HDCP_1X_INTEGRITY_FAIL_RI, /* Ri(Ri') integrety failure. */ /* CNcomment: Ri(Ri')校验失败 */
|
|
|
UAPI_HDMITX_HDCP_2X_NO_CAP = 0x20, /* no hdcp2x capability. */ /* CNcomment: 设备不支持hdcp2x */
|
|
|
UAPI_HDMITX_HDCP_2X_SIGNATURE_FAIL, /* signature error. */ /* CNcomment: 签名错误 */
|
|
|
UAPI_HDMITX_HDCP_2X_MISMATCH_H, /* mismatch H(H'). */ /* CNcomment: H(H')不匹配 */
|
|
|
UAPI_HDMITX_HDCP_2X_AKE_TIMEOUT, /* AKE timeout. */ /* CNcomment: AKE超时 */
|
|
|
UAPI_HDMITX_HDCP_2X_LOCALITY_FAIL, /* locality check failed. */ /* CNcomment: 本地校验失败 */
|
|
|
UAPI_HDMITX_HDCP_2X_REAUTH_REQ, /* REAUTH_REQ request. */ /* CNcomment: 重认证请求 */
|
|
|
UAPI_HDMITX_HDCP_2X_WATCHDOG_TIMEOUT, /* watchdog timeout. */ /* CNcomment: 看门狗超时 */
|
|
|
UAPI_HDMITX_HDCP_2X_V_MISMATCH, /* mismatch V(V'). */ /* CNcomment: V(V')不匹配 */
|
|
|
UAPI_HDMITX_HDCP_2X_ROLL_OVER, /* no roll-over of seq_num_V. */ /* CNcomment: 未检测到seq_num_V */
|
|
|
UAPI_HDMITX_HDCP_2X_EXCEEDED_TOPOLOGY /* Exceeded toplogy. */ /* CNcomment: 超出设备个数或topology层限制 */
|
|
|
} uapi_hdmitx_hdcp_err;
|
|
|
|
|
|
/*
|
|
|
* Defines HDCP status struct
|
|
|
* CNcomment: 定义HDCP 状态结构体
|
|
|
*/
|
|
|
typedef struct {
|
|
|
td_bool auth_start; /* HDCP authentication start. */ /* CNcomment: HDCP认证启动 */
|
|
|
td_bool auth_success; /* HDCP authentication success. */ /* CNcomment: HDCP认证成功 */
|
|
|
td_u32 cur_reauth_times; /* HDCP current re-authen times. */ /* CNcomment: HDCP当前重认证次数 */
|
|
|
uapi_hdmitx_hdcp_ver version; /* HDCP authentication version. */ /* CNcomment: HDCP认证版本 */
|
|
|
uapi_hdmitx_hdcp_err err_code; /* HDCP authentication error code. */ /* CNcomment: HDCP认证错误码 */
|
|
|
} uapi_hdmitx_hdcp_status;
|
|
|
|
|
|
/*
|
|
|
* Defines the status of logical address enum
|
|
|
* CNcomment: 定义CEC 逻辑地址状态枚举
|
|
|
*/
|
|
|
typedef enum {
|
|
|
UAPI_HDMITX_CEC_ADDR_STATUS_VALID, /* The logical address is valid */ /* CNcomment: 当前逻辑地址有效 */
|
|
|
UAPI_HDMITX_CEC_ADDR_STATUS_INVALID, /* The logical address is invalid */ /* CNcomment: 当前逻辑地址无效 */
|
|
|
UAPI_HDMITX_CEC_ADDR_STATUS_NOT_CONFIG, /* The logical address is not set */ /* CNcomment: 未设置过逻辑地址 */
|
|
|
UAPI_HDMITX_CEC_ADDR_STATUS_CONFIGURING, /* The driver is querying the available logical address now */
|
|
|
/* CNcomment: 驱动正在查询可用的逻辑地址 */
|
|
|
} uapi_hdmitx_cec_logic_addr_status;
|
|
|
|
|
|
/*
|
|
|
* The event type of CEC
|
|
|
* CNcomment: CEC事件类型
|
|
|
*/
|
|
|
typedef enum {
|
|
|
UAPI_HDMITX_CEC_EVENT_STATUS_CHANGE, /* CEC status was changed, e.g the logical or physical address was changed */
|
|
|
/* CNcomment: 表示CEC状态发生了变化,比如逻辑地址或者物理地址发生了变化 */
|
|
|
UAPI_HDMITX_CEC_EVENT_RECEIVED, /* Receive a CEC message */ /* CNcomment: 接收到CEC消息 */
|
|
|
} uapi_hdmitx_cec_event_type;
|
|
|
|
|
|
/*
|
|
|
* The status of CEC
|
|
|
* CNcomment: CEC的状态
|
|
|
*/
|
|
|
typedef struct {
|
|
|
td_u16 logic_addr; /* Current logical address */ /* CNcomment: 当前的逻辑地址 */
|
|
|
td_u16 physic_addr; /* Current physical address */ /* CNcomment: 当前物理地址 */
|
|
|
uapi_hdmitx_cec_logic_addr_status addr_status; /* the status of logical address */
|
|
|
/* CNcomment: 逻辑地址配置状态 */
|
|
|
} uapi_hdmitx_cec_status;
|
|
|
|
|
|
/*
|
|
|
* The data of CEC event
|
|
|
* CNcomment: CEC事件数据
|
|
|
*/
|
|
|
typedef union {
|
|
|
uapi_hdmitx_cec_status cec_status; /* The current status of CEC */ /* CNcomment: 当前CEC的状态 */
|
|
|
uapi_cec_msg rx_msg; /* The message that received */ /* CNcomment: 接收到的CEC消息 */
|
|
|
} uapi_hdmitx_cec_event_data;
|
|
|
|
|
|
/*
|
|
|
* The callback function type of CEC
|
|
|
* CNcomment: CEC回调函数类型定义
|
|
|
*/
|
|
|
typedef td_void (*uapi_hdmitx_callback_pfn)(uapi_hdmitx_id id, uapi_hdmitx_cec_event_type type,
|
|
|
const uapi_hdmitx_cec_event_data *data, td_void *private_data);
|
|
|
|
|
|
/*
|
|
|
* The callback struct of CEC
|
|
|
* CNcomment: CEC回调结构体定义
|
|
|
*/
|
|
|
typedef struct {
|
|
|
uapi_hdmitx_callback_pfn func; /* The callback function type of CEC */ /* CNcomment: CEC回调函数类型定义 */
|
|
|
td_void *private_data; /* Private callback paramters */ /* CNcomment: 用户私有回调参数 */
|
|
|
} uapi_hdmitx_cec_callback;
|
|
|
|
|
|
|
|
|
/*
|
|
|
* brief init function. CNcomment: 初始化 CNend
|
|
|
* attention User needs to call this function before call other hdmitx function
|
|
|
* CNcomment: 用户需在调用其他HDMI TX接口前调用这个接口 CNend
|
|
|
* param CNcomment: 无 CNend
|
|
|
* retval ::TD_SUCCESS Success. CNcomment: 成功 CNend
|
|
|
* retval ::please refer to the err code definition of mpi. CNcomment: 请参考MPI错误码 CNend
|
|
|
* see \n
|
|
|
* N/A CNcomment: 无 CNend
|
|
|
*/
|
|
|
td_s32 uapi_hdmitx_init(td_void);
|
|
|
|
|
|
/*
|
|
|
* brief deinit function. CNcomment: 去初始化 CNend
|
|
|
* attention User needs to call this function before the application exits.
|
|
|
* CNcomment: 用户需在应用对退出前调用这个接口 CNend
|
|
|
* param CNcomment:无 CNend
|
|
|
* retval ::TD_SUCCESS Success. CNcomment: 成功 CNend
|
|
|
* retval ::please refer to the err code definition of mpi. CNcomment: 请参考MPI错误码 CNend
|
|
|
* see \n
|
|
|
* N/A CNcomment: 无 CNend
|
|
|
*/
|
|
|
td_s32 uapi_hdmitx_deinit(td_void);
|
|
|
|
|
|
/*
|
|
|
* brief register callback function. CNcomment: 注册回调函数 CNend
|
|
|
* attention User needs to register a callback function to handle events defined in uapi_hdmitx_event_type.
|
|
|
* CNcomment: 用户需注册一个回调函数,用于处理uapi_hdmitx_event_type定义的事件. CNend
|
|
|
* param[in] hdmitx_id hdmi device id. CNcomment: HDMITX设备ID CNend
|
|
|
* param[in] callback_func callback function CNcomment: 回调函数 CNend
|
|
|
* retval ::TD_SUCCESS Success. CNcomment: 成功 CNend
|
|
|
* retval ::please refer to the err code definition of mpi. CNcomment: 请参考MPI错误码 CNend
|
|
|
* see uapi_hdmitx_callback and uapi_hdmitx_event_type
|
|
|
*/
|
|
|
td_s32 uapi_hdmitx_register_callback(uapi_hdmitx_id hdmitx_id, const uapi_hdmitx_callback *callback_func);
|
|
|
|
|
|
|
|
|
/*
|
|
|
* brief unregister callback function. CNcomment: 注销回调函数 CNend
|
|
|
* attention This function must be called when exiting the callback service registered by
|
|
|
* uapi_hdmitx_register_callback.
|
|
|
* CNcomment: 退出由uapi_hdmitx_register_callback注册的回调服务时,该函数必须调用. CNend
|
|
|
* param[in] hdmitx_id hdmi device id.CNcomment: HDMITX设备ID CNend
|
|
|
* param[in] callback_func callback function CNcomment: 回调函数 CNend
|
|
|
* retval ::TD_SUCCESS Success. CNcomment: 成功 CNend
|
|
|
* retval ::please refer to the err code definition of mpi. CNcomment: 请参考MPI错误码 CNend
|
|
|
* see uapi_hdmitx_callback
|
|
|
*/
|
|
|
td_s32 uapi_hdmitx_unregister_callback(uapi_hdmitx_id hdmitx_id, const uapi_hdmitx_callback *callback_func);
|
|
|
|
|
|
/*
|
|
|
* brief get current hdmi status. CNcomment: 获取hdmi当前的状态 CNend
|
|
|
* attention \n
|
|
|
* N/A CNcomment: 无 CNend
|
|
|
* param[in] hdmitx_id hdmi device id. CNcomment: HDMITX设备ID CNend
|
|
|
* param[out] hdmi_status hdmi cuttent status. CNcomment: HDMITX当前状态 CNend
|
|
|
* retval ::TD_SUCCESS Success. CNcomment: 成功 CNend
|
|
|
* retval ::please refer to the err code definition of mpi. CNcomment: 请参考MPI错误码 CNend
|
|
|
* see uapi_hdmitx_status
|
|
|
*/
|
|
|
td_s32 uapi_hdmitx_get_status(uapi_hdmitx_id hdmitx_id, uapi_hdmitx_status *hdmi_status);
|
|
|
|
|
|
|
|
|
/*
|
|
|
* brief read sink's edid raw data. CNcomment: 读取EDID裸数据 CNend
|
|
|
* attention \n
|
|
|
* N/A CNcomment: 无 CNend
|
|
|
* param[in] hdmitx_id hdmi device id. CNcomment: HDMITX设备ID CNend
|
|
|
* param[in/out] edid_buf pointer to the buffer allocated externally.
|
|
|
* CNcomment: 获取EDID裸数据的buffer指针,用户需自己分配好buffer。 CNend
|
|
|
* param[in] buf_size size of the edid raw data buffer,the recommended buffer size is 512.
|
|
|
* CNcomment: EDID裸数据buffer大小,建议定义为512。不排除将来有设备的EDID裸数据长度超过512。 CNend
|
|
|
* param[out] edid_len the real lenth of edid raw data. CNcomment: 获取EDID裸数据实际长度 CNend
|
|
|
* param[in] force when true, force to re-read EDID from sink, or read EDID from current copy.
|
|
|
* CNcomment: 当设置为true,强制从sink重新读取EDID;否则,从当前内存备份中获取。 CNend
|
|
|
* retval ::TD_SUCCESS Success. CNcomment: 成功 CNend
|
|
|
* retval ::please refer to the err code definition of mpi. CNcomment: 请参考MPI错误码 CNend
|
|
|
* see \n
|
|
|
* N/A CNcomment: 无 CNend
|
|
|
*/
|
|
|
td_s32 uapi_hdmitx_read_edid(uapi_hdmitx_id hdmitx_id, td_u8 *edid_buf,
|
|
|
td_u32 buf_size, td_u32 *edid_len, td_bool force);
|
|
|
|
|
|
/*
|
|
|
* brief get sink's capability information. CNcomment: 获取对端能力信息。 CNend
|
|
|
* attention \n
|
|
|
* N/A CNcomment: 无 CNend
|
|
|
* param[in] hdmitx_id hdmi device id. CNcomment: HDMITX设备ID CNend
|
|
|
* param[in] sink_info pointer to the memory of the sink's capability information structure.
|
|
|
* CNcomment: 对端能力信息指针 CNend
|
|
|
* retval ::TD_SUCCESS Success. CNcomment: 成功 CNend
|
|
|
* retval ::please refer to the err code definition of mpi. CNcomment: 请参考MPI错误码 CNend
|
|
|
* see uapi_hdmitx_sink_info
|
|
|
*/
|
|
|
td_s32 uapi_hdmitx_get_sink_info(uapi_hdmitx_id hdmitx_id, uapi_hdmitx_sink_info *sink_info);
|
|
|
|
|
|
/*
|
|
|
* brief get available capability. CNcomment: 获取有效能力信息。 CNend
|
|
|
* attention \n
|
|
|
* N/A CNcomment: 无 CNend
|
|
|
* param[in] hdmitx_id hdmi device id. CNcomment: HDMITX设备ID CNend
|
|
|
* param[in] avail_cap pointer to the memory of the available capability structure. CNcomment: 有效能力信息指针 CNend
|
|
|
* retval ::TD_SUCCESS Success. CNcomment: 成功 CNend
|
|
|
* retval ::please refer to the err code definition of mpi. CNcomment: 请参考MPI错误码 CNend
|
|
|
* see uapi_hdmitx_avail_cap
|
|
|
*/
|
|
|
td_s32 uapi_hdmitx_get_avail_capability(uapi_hdmitx_id hdmitx_id, uapi_hdmitx_avail_cap *avail_cap);
|
|
|
|
|
|
/*
|
|
|
* brief get available modes. CNcomment: 获取有效制式集。 CNend
|
|
|
* attention The user needs to allocate a memory buffer. The recommended number is set to @mode_cnt
|
|
|
* in uapi_hdmitx_avail_cap. CNcomment: 用户需分配存储缓冲区,建议个数设置为uapi_hdmitx_avail_cap中的@mode_cnt CNend
|
|
|
* param[in] hdmitx_id hdmi device id. CNcomment: HDMITX设备ID CNend
|
|
|
* param[in] avail_modes pointer to the memory buffer of the available modes.
|
|
|
* CNcomment: 有效制式集存储缓冲区指针。 CNend
|
|
|
* param[in] mode_cnt available modes count assigned by user. CNcomment: 用户分配的有效制式单元个数 CNend
|
|
|
* param[out] avail_mode_cnt pointer to the memory of the real available modes count.
|
|
|
* CNcomment: 真实返回的有效制式个数 CNend
|
|
|
* retval ::TD_SUCCESS Success. CNcomment: 成功 CNend
|
|
|
* retval ::please refer to the err code definition of mpi. CNcomment: 请参考MPI错误码 CNend
|
|
|
* see uapi_hdmitx_avail_mode
|
|
|
*/
|
|
|
td_s32 uapi_hdmitx_get_avail_modes(uapi_hdmitx_id hdmitx_id,
|
|
|
uapi_hdmitx_avail_mode *avail_modes, td_u32 mode_cnt, td_u32 *avail_mode_cnt);
|
|
|
|
|
|
/*
|
|
|
* brief load HDCP KEY. CNcomment: 加载HDCP KEY CNend
|
|
|
* attention The HDCP1X version KEY is purchased and loaded by the user from the HDCP organization.
|
|
|
* CNcomment: HDCP1X版本KEY由用户从HDCP组织购买并加载。 CNend
|
|
|
* param[in] hdmitx_id hdmi device id. CNcomment: HDMITX设备ID CNend
|
|
|
* param[in] key key struct pointer CNcomment: key结构指针 CNend
|
|
|
* retval ::TD_SUCCESS Success. CNcomment: 成功 CNend
|
|
|
* retval ::please refer to the err code definition of mpi. CNcomment: 请参考MPI错误码 CNend
|
|
|
* see uapi_hdmitx_hdcp_key
|
|
|
*/
|
|
|
td_s32 uapi_hdmitx_hdcp_load_key(uapi_hdmitx_id hdmitx_id, const uapi_hdmitx_hdcp_key *key);
|
|
|
|
|
|
/*
|
|
|
* brief set SRM. CNcomment: 设置SRM数据 CNend
|
|
|
* attention
|
|
|
* 1.Setting SRM multiple times is subject to the last succesful one.
|
|
|
* 2.The SRM will be updated from time to time and will be obtained from the official HDCP website by users.
|
|
|
* 3.The kernel does not set SRM by default.
|
|
|
* CNcomment:
|
|
|
* 1.多次设置SRM则以最后一次成功的为准
|
|
|
* 2.失效名单会不定期更新,由用户从HDCP官方网站获取
|
|
|
* 3.内核默认不设置失效名单
|
|
|
* CNend
|
|
|
* param[in] hdmitx_id hdmi channel id. CNcomment: HDMITX设备ID CNend
|
|
|
* param[in] srm pointer to SRM raw data CNcomment: SRM结构指针 CNend
|
|
|
* retval ::TD_SUCCESS Success. CNcomment: 成功 CNend
|
|
|
* retval ::please refer to the err code definition of mpi. CNcomment: 请参考MPI错误码 CNend
|
|
|
* see uapi_hdmitx_hdcp_srm
|
|
|
*/
|
|
|
td_s32 uapi_hdmitx_hdcp_set_srm(uapi_hdmitx_id hdmitx_id, const uapi_hdmitx_hdcp_srm *srm);
|
|
|
|
|
|
/*
|
|
|
* brief get sink's HDCP capability. CNcomment: 获取Sink设备的HDCP能力 CNend
|
|
|
* attention It is suggested that user gets more times until retval is TD_SUCCESS.
|
|
|
* CNcomment: 建议用户调用多次获取HDCP能力直到返回值为TD_SUCCESS。 CNend
|
|
|
* param[in] hdmitx_id hdmi device id. CNcomment: HDMITX设备ID CNend
|
|
|
* param[out] hdcp_cap the HDCP capability of the sink. CNcomment: SINK的HDCP能力 CNend
|
|
|
* retval ::TD_SUCCESS Success. CNcomment: 成功 CNend
|
|
|
* retval ::please refer to the err code definition of mpi. CNcomment: 请参考MPI错误码 CNend
|
|
|
* see uapi_hdmitx_hdcp_cap
|
|
|
*/
|
|
|
td_s32 uapi_hdmitx_hdcp_get_cap(uapi_hdmitx_id hdmitx_id, uapi_hdmitx_hdcp_cap *hdcp_cap);
|
|
|
|
|
|
/*
|
|
|
* brief set HDCP re-authen times. CNcomment: 设置HDCP失败重认证次数 CNend
|
|
|
* attention
|
|
|
* 1. It can be set in the HDCP start or stop status.
|
|
|
* 2. Kernel will re-authen until fail-times reached the setting times.
|
|
|
* 3. The default setting times is UAPI_HDMITX_HDCP_REAUTH_DEFAULT,kernel will re-authentication every fail-time.
|
|
|
* 4. The re-authen times do not work if it is not ready to authentication.Such as cable plug out,
|
|
|
* no signal,invalid key,id is on SRM,HDMI connector physical damage,etc.
|
|
|
* CNcomment:
|
|
|
* 1.HDCP启动/停止状态下均可设置重认证次数
|
|
|
* 2.设置成功后,从下一次与sink进行HDCP认证起,连续重认证失败达到设置的次数后,上报HDCP握手失败事件并停止认证
|
|
|
* 3.设置为UAPI_HDMITX_HDCP_REAUTH_DEFAULT(默认值),表示内核在每次认证失败时都在协议规定时间内重认证
|
|
|
* 4.因未达到准备状态导致的失败不进行重认证,设定次数无效。如:线缆拔出、未输出信号、KEY无效、ID失效、HDMI端口物理损坏等
|
|
|
* CNend
|
|
|
* param[in] hdmitx_id hdmi device id. CNcomment: HDMITX设备ID CNend
|
|
|
* param[in] reauth_times re-authen times CNcomment: 重认证次数 CNend
|
|
|
* retval ::TD_SUCCESS Success. CNcomment: 成功 CNend
|
|
|
* retval ::please refer to the err code definition of mpi. CNcomment: 请参考MPI错误码 CNend
|
|
|
* see \n
|
|
|
* N/A CNcomment: 无 CNend
|
|
|
*/
|
|
|
td_s32 uapi_hdmitx_hdcp_set_auth_times(uapi_hdmitx_id hdmitx_id, td_u32 reauth_times);
|
|
|
|
|
|
/*
|
|
|
* brief start HDCP authentication. CNcomment: 启动HDCP认证 CNend
|
|
|
* attention Users should not choose HDCP mode that is not supported by sink capability.
|
|
|
* CNcomment: 用户不应选择sink能力不支持的HDCP模式。 CNend
|
|
|
* param[in] hdmitx_id hdmi device id. CNcomment: HDMITX设备ID CNend
|
|
|
* param[in] hdcp_mode hdcp mode. CNcomment: HDCP认证模式 CNend
|
|
|
* retval ::TD_SUCCESS Success. CNcomment: 成功 CNend
|
|
|
* retval ::please refer to the err code definition of mpi. CNcomment: 请参考MPI错误码 CNend
|
|
|
* see uapi_hdmitx_hdcp_mode
|
|
|
*/
|
|
|
td_s32 uapi_hdmitx_hdcp_start_auth(uapi_hdmitx_id hdmitx_id, uapi_hdmitx_hdcp_mode hdcp_mode);
|
|
|
|
|
|
/*
|
|
|
* brief stop HDCP authentication. CNcomment: 停止HDCP认证 CNend
|
|
|
* param[in] hdmitx_id hdmi device id. CNcomment: HDMITX设备ID CNend
|
|
|
* retval ::TD_SUCCESS Success. CNcomment: 成功 CNend
|
|
|
* retval ::please refer to the err code definition of mpi. CNcomment: 请参考MPI错误码 CNend
|
|
|
* see \n
|
|
|
* N/A CNcomment: 无 CNend
|
|
|
*/
|
|
|
td_s32 uapi_hdmitx_hdcp_stop_auth(uapi_hdmitx_id hdmitx_id);
|
|
|
|
|
|
/*
|
|
|
* brief get HDCP status. CNcomment: 获取HDCP状态 CNend
|
|
|
* attention It is recommended that the user call the interface after capturing the HDCP event,
|
|
|
* and handle it according to different status.
|
|
|
* CNcomment: 建议用户在获取HDCP事件后调用该接口,并根据不同的状态做相应处理 CNend
|
|
|
* param[in] hdmitx_id hdmi device id. CNcomment: HDMITX设备ID CNend
|
|
|
* param[in] hdcp_status hdcp status. CNcomment: HDCP认证状态 CNend
|
|
|
* retval ::TD_SUCCESS Success. CNcomment: 成功 CNend
|
|
|
* retval ::please refer to the err code definition of mpi. CNcomment: 请参考MPI错误码 CNend
|
|
|
* see uapi_hdmitx_hdcp_status
|
|
|
*/
|
|
|
td_s32 uapi_hdmitx_hdcp_get_status(uapi_hdmitx_id hdmitx_id, uapi_hdmitx_hdcp_status *hdcp_status);
|
|
|
|
|
|
/*
|
|
|
* brief Enable or disable the CEC interface. CNcomment: 打开/关闭CEC接口 CNend
|
|
|
* attention Multiple processes are not supported. CNcomment: 不支持多进程 CNend
|
|
|
* param[in] id The HDMI interface. CNcomment: HDMI端口 CNend
|
|
|
* param[in] enable True-enbale CEC, false-disable CEC. CNcomment: true-打开CEC,false-关闭CEC CNend
|
|
|
* retval ::TD_SUCCESS Success. CNcomment: 成功 CNend
|
|
|
* retval ::SOC_ERR_HDMITX_BUS_BUSY CEC already open by other process. CNcomment: CEC已经被其他进程占用 CNend
|
|
|
* retval ::SOC_ERR_HDMITX_INVALID_PARA The input parameter was invalid. CNcomment: 非法输入参数 CNend
|
|
|
* retval ::TD_FAILURE Others error. CNcomment: 其他错误 CNend
|
|
|
* see \n
|
|
|
* N/A CNcomment: 无 CNend
|
|
|
*/
|
|
|
td_s32 uapi_hdmitx_cec_enable(uapi_hdmitx_id id, td_bool enable);
|
|
|
|
|
|
/*
|
|
|
* brief Register the Callback function of CEC. CNcomment: 注册CEC回调函数 CNend
|
|
|
* attention Can only register one callback function by a process. You shall call this function
|
|
|
* before uapi_hdmitx_cec_set_device_type and after uapi_hdmitx_cec_enable.
|
|
|
* CNcomment: 一个进程仅能注册一个回调函数. 必须在uapi_hdmitx_cec_enable之后和uapi_hdmitx_cec_set_device_type之前调
|
|
|
* 用此接口. CNend
|
|
|
* param[in] id The HDMI interface. CNcomment: HDMI端口 CNend
|
|
|
* param[in] callback The pointer of the callback funtion that you want to register.
|
|
|
* CNcomment: 需要注册的回调函数指针 CNend
|
|
|
* retval ::TD_SUCCESS Success. CNcomment: 成功 CNend
|
|
|
* retval ::SOC_ERR_HDMITX_DEV_NOT_OPEN CEC not open. CNcomment:CEC没有打开 CNend
|
|
|
* retval ::SOC_ERR_HDMITX_CALLBACK_ALREADY Callback function already register. CNcomment: 已经注册了CEC回调函数 CNend
|
|
|
* retval ::SOC_ERR_HDMITX_INVALID_PARA The input parameter was invalid. CNcomment: 非法输入参数 CNend
|
|
|
* retval ::TD_FAILURE Others error. CNcomment: 其他错误 CNend
|
|
|
* see uapi_hdmitx_cec_callback \n
|
|
|
*/
|
|
|
td_s32 uapi_hdmitx_cec_register_callback(uapi_hdmitx_id id, const uapi_hdmitx_cec_callback *callback);
|
|
|
|
|
|
/*
|
|
|
* brief Unregister the Callback function of CEC. CNcomment: 注销CEC回调函数 CNend
|
|
|
* attention You shall call this function before disable CEC. CNcomment: 必须在关闭CEC之前调用此接口. CNend
|
|
|
* param[in] id The HDMI interface CNcomment: HDMI端口 CNend
|
|
|
* retval ::TD_SUCCESS Success. CNcomment: 成功 CNend
|
|
|
* retval ::SOC_ERR_HDMITX_DEV_NOT_OPEN CEC not open. CNcomment: CEC没有打开 CNend
|
|
|
* retval ::SOC_ERR_HDMITX_INVALID_PARA The input parameter was invalid. CNcomment: 非法输入参数 CNend
|
|
|
* retval ::TD_FAILURE Others error. CNcomment: 其他错误 CNend
|
|
|
* see \n
|
|
|
* N/A CNcomment: 无 CNend
|
|
|
*/
|
|
|
td_s32 uapi_hdmitx_cec_unregister_callback(uapi_hdmitx_id id);
|
|
|
|
|
|
/*
|
|
|
* brief Get the current status of CEC. CNcomment: 获取当前CEC的状态 CNend
|
|
|
* attention
|
|
|
* param[in] id The HDMI interface. CNcomment: HDMI端口 CNend
|
|
|
* param[in] status A return value of the current status of CEC. CNcomment: 返回当前CEC状态 CNend
|
|
|
* retval ::TD_SUCCESS Success. CNcomment: 成功 CNend
|
|
|
* retval ::SOC_ERR_HDMITX_DEV_NOT_OPEN CEC not open. CNcomment: CEC没有打开 CNend
|
|
|
* retval ::SOC_ERR_HDMITX_INVALID_PARA The input parameter was invalid. CNcomment: 非法输入参数 CNend
|
|
|
* retval ::TD_FAILURE Others error. CNcomment: 其他错误 CNend
|
|
|
* see uapi_hdmitx_cec_status \n
|
|
|
*/
|
|
|
td_s32 uapi_hdmitx_cec_get_status(uapi_hdmitx_id id, uapi_hdmitx_cec_status *status);
|
|
|
|
|
|
/*
|
|
|
* brief Config the device type of CEC. CNcomment: 设置CEC设备类型 CNend
|
|
|
* attention The device type must be set before send or receive any messages. Be carefull, all messages in
|
|
|
* transmit queue as well as in receive queue will lost when change the device type.
|
|
|
* CNcomment: 必须在发送或者接收CEC消息之前设置设备类型。注意,中途改变设备,发送队列和接收队列中所有的消息都会丢失。
|
|
|
* CNend
|
|
|
* param[in] id The HDMI interface. CNcomment: HDMI端口 CNend
|
|
|
* param[in] device_type The device type want to set. CNcomment: 希望设置的设备类型 CNend
|
|
|
* retval ::TD_SUCCESS Success. CNcomment: 成功 CNend
|
|
|
* retval ::SOC_ERR_HDMITX_DEV_NOT_OPEN CEC not open. CNcomment: CEC没有打开 CNend
|
|
|
* retval ::SOC_ERR_HDMITX_FEATURE_NO_SUPPORT An unsupported logical address is set.
|
|
|
* CNcomment: 设置了一个不支持设备类型 CNend
|
|
|
* retval ::SOC_ERR_HDMITX_INVALID_PARA The input parameter was invalid. CNcomment: 非法输入参数 CNend
|
|
|
* retval ::SOC_ERR_HDMITX_NO_CALLBACK Callback funtion was not registered, you must register the callback funtion
|
|
|
* before set logical address. CNcomment: 回调函数没有注册,请先注册回调函数 CNend
|
|
|
* retval ::TD_FAILURE Others error. CNcomment: 其他错误 CNend
|
|
|
* see uapi_cec_device_type \n
|
|
|
*/
|
|
|
td_s32 uapi_hdmitx_cec_set_device_type(uapi_hdmitx_id id, td_u8 device_type);
|
|
|
|
|
|
/*
|
|
|
* brief Transmit a CEC message. CNcomment: 发送一个CEC消息 CNend
|
|
|
* attention This call will block utill the transmit was completed, and the transmit status was returned.
|
|
|
* CNcomment: 调用会阻塞直到发送完成,并返回发送状态 CNend
|
|
|
* param[in] id The HDMI interface CNcomment: HDMI端口 CNend
|
|
|
* param msg The message need to transmit. CNcomment: 待发送的消息 CNend
|
|
|
* retval ::TD_SUCCESS Indicate that the message is successfully sent and acknowledged.
|
|
|
* CNcomment: 表示消息发送成功,并且收到应答 CNend
|
|
|
* retval ::SOC_ERR_HDMITX_DEV_NOT_OPEN CEC not open. CNcomment: CEC没有打开 CNend
|
|
|
* retval ::SOC_ERR_HDMITX_NO_LOGIC_ADDR The logical address is not set, or the logical address is querying now.
|
|
|
* CNcomment: 未设置逻辑地址,或者驱动正在查询可用的逻辑地址 CNend
|
|
|
* retval ::SOC_ERR_HDMITX_MSG_NACK Indicate that the message is successfully sent and is not acknowledged.
|
|
|
* CNcomment: 表示发送的CEC消息没有应答 CNend
|
|
|
* retval ::SOC_ERR_HDMITX_MSG_FAILED Indicate that the message sent is failed.
|
|
|
* CNcomment: 表示CEC消息发送成功,但没有收到应答 CNend
|
|
|
* retval ::SOC_ERR_HDMITX_INVALID_PARA The input parameter was invalid. CNcomment: 非法输入参数 CNend
|
|
|
* retval ::TD_FAILURE Others error. CNcomment: 其他错误 CNend
|
|
|
* see uapi_cec_msg \n
|
|
|
*/
|
|
|
td_s32 uapi_hdmitx_cec_send_msg(uapi_hdmitx_id id, const uapi_cec_msg *msg);
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
#if __cplusplus
|
|
|
}
|
|
|
#endif
|
|
|
#endif
|
|
|
|
|
|
#endif /* UAPI_HDMITX_H */
|