hv_comm_Define.h 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443
  1. /**
  2. * @file hv_comm_Define.h
  3. * @brief Header file of mute module.
  4. *
  5. * @verbatim
  6. * ==============================================================================
  7. * ##### How to use #####
  8. * ==============================================================================
  9. *
  10. * @endverbatim
  11. *
  12. * @author HiView SoC Software Team
  13. * @version 1.0.0
  14. * @date 2022-08-23
  15. */
  16. #ifndef __SDK_COMMON_COMMON_H__
  17. #define __SDK_COMMON_COMMON_H__
  18. #define HV_ENABLE 1
  19. #define HV_DISABLE 0
  20. #define HV_FALSE 0
  21. #define HV_TRUE 1
  22. #define HV_SUCCESS 0
  23. #define HV_FAILURE 1
  24. #define HV_CONTINUE 2
  25. #define HV_FINISH 3
  26. #define HV_TIMEOUT 4
  27. #define HV_BUSY 5
  28. #define HV_INVALID 6
  29. #define HV_NOREADY 7
  30. #define HV_ON 1
  31. #define HV_OFF 0
  32. #define HV_SET 1
  33. #define HV_RESET 0
  34. #ifdef _cplusplus
  35. #define NULL 0
  36. #else
  37. #define NULL ((void *)0)
  38. #endif
  39. #define HV_VENDOR_NAME_LEN 8
  40. #define HV_VENDOR_DESCRIP_LEN 16
  41. #define HV_EDID_BLOCK_DATA_SIZE 128
  42. #define HV_EDID_SEGMENT_DATA_SIZE 256
  43. #define HV_EDID_CTA_BLOCK_TAG 0x2
  44. #define HV_HDCP_1X_SIZE_BKSV 0x05 /**< Bksv Size */
  45. #define HV_HDCP_1X_SIZE_DKS_BYTE 280 /**< Device Key Set Size */
  46. #define HV_HDCP_2X_RX_LC128_SIZE 16 /** Lc128 global constant size in bytes */
  47. #define HV_HDCP_2X_RX_CERT_SIZE 522 /** DCP certificate size in bytes */
  48. #define HV_HDCP_2X_RX_PRIVATEKEY_SIZE 320 /** RSA private key size (64*5) in bytes */
  49. #define HV_ATTR_ISR_SECTION
  50. #define HV_PANEL_NAME_BYTE_MAX (40)
  51. #define CM_SET_HUE (0)
  52. #define CM_SET_SAT (1)
  53. #define CM_SET_LUM (2)
  54. #define HV_DP_VER14 0x14 /* DPCD version 1.4 */
  55. #define HV_DP_VER13 0x13 /* DPCD/SDP version 1.3 */
  56. #define HV_DP_VER12 0x12 /* DPCD/SDP version 1.2 */
  57. #define HV_DP_VER11 0x11 /* DPCD/SDP version 1.1 */
  58. typedef enum _ChannelFlashConfigIndex
  59. {
  60. CHANNEL_FLASH_PORT_INDEX,
  61. CHANNEL_FLASH_MAGNIFY_SW,
  62. CHANNEL_FLASH_PXP_MODE,
  63. }ChannelFlashConfigIndex;
  64. typedef enum _LinkPortIndex
  65. {
  66. LINK_PORT_INDEX_HDMI_RX0,
  67. LINK_PORT_INDEX_HDMI_RX1,
  68. LINK_PORT_INDEX_DP_RX0,
  69. LINK_PORT_INDEX_DP_RX1,
  70. LINK_PORT_INDEX_INVALID,
  71. }LinkPortIndex;
  72. typedef enum _EdpTxPortIndex
  73. {
  74. EDP_TX_PROT_INDEX0 = 0,
  75. EDP_TX_PROT_INDEX1 = 1,
  76. }EdpTxPortIndex;
  77. typedef enum _EdpAuxPortIndex
  78. {
  79. EDP_AUX_PROT_INDEX0 = 0,
  80. EDP_AUX_PROT_INDEX1 = 1,
  81. }EdpAuxPortIndex;
  82. typedef enum _EdpHpdPortIndex
  83. {
  84. EDP_HPD_PROT_INDEX0 = 0,
  85. EDP_HPD_PROT_INDEX1 = 1,
  86. }EdpHpdPortIndex;
  87. typedef enum _MprtType
  88. {
  89. MPRT_PWM_CLOSE = 0,
  90. MPRT_PWM_ENABLE,
  91. MPRT_PWM_VRR_ENABLE,
  92. }MprtType;
  93. typedef enum _VendorType
  94. {
  95. VendorType_UnKnown,
  96. VendorType_HDMI_14b,
  97. VendorType_HDMI_FORUM, /* VRR */
  98. VendorType_AMD, /* FreeSync */
  99. VendorType_AMD_AdaptSync, /* AdaptSync */
  100. VendorType_NVIDIA, /* G-Sync */
  101. VendorType_Num
  102. }VendorType;
  103. /* 顺序跟数字是按照协议排序,如果需要修改需要Re-View HDMI & DP VideoColorParam */
  104. typedef enum _ColorFormatType
  105. {
  106. ColorFormatType_RGB = 0x00,
  107. ColorFormatType_YCbCr422 = 0x01,
  108. ColorFormatType_YCbCr444 = 0x02,
  109. ColorFormatType_YCbCr420 = 0x03,
  110. ColorFormatType_IDODefined,
  111. ColorFormatType_Reserved
  112. }ColorFormatType;
  113. typedef enum _PicAspRatioType
  114. {
  115. PicAspRatioType_Nodata = 0x00,
  116. PicAspRatioType_4_3 = 0x01,
  117. PicAspRatioType_16_9 = 0x02,
  118. PicAspRatioType_Reserved
  119. }PicAspRatioType;
  120. /* 顺序跟数字是按照协议排序,如果需要修改需要Re-View HDMI & DP VideoColorParam */
  121. typedef enum _ColorSpaceType
  122. {
  123. ColorSpaceType_SRGB = 0,
  124. ColorSpaceType_BT601 = 1,
  125. ColorSpaceType_BT709 = 2,
  126. ColorSpaceType_XV_YCC_601 = 0x18,
  127. ColorSpaceType_XV_YCC_709 = 0x19,
  128. ColorSpaceType_S_YCC_601 = 0x1A,
  129. ColorSpaceType_OP_YCC_601 = 0x1B,
  130. ColorSpaceType_OP_RGB = 0x1C,
  131. ColorSpaceType_BT2020_cYCC = 0x1D,
  132. ColorSpaceType_BT2020_RGB = 0x1E,
  133. ColorSpaceType_BT2020_YCC = 0x1F,
  134. ColorSpaceType_ST2113_P3D65 = 0x7C,
  135. ColorSpaceType_ST2113_P3DCI = 0x7D,
  136. ColorSpaceType_BT2100_ICTCP = 0x7E
  137. }ColorSpaceType;
  138. /* 顺序跟数字是按照协议排序,如果需要修改需要Re-View HDMI & DP VideoColorParam */
  139. typedef enum _ColorDepthType
  140. {
  141. ColorDepthType_6Bit = 3,
  142. ColorDepthType_8Bit = 4,
  143. ColorDepthType_10Bit,
  144. ColorDepthType_12Bit,
  145. ColorDepthType_16Bit,
  146. ColorDepthType_NUM,
  147. ColorDepthType_Invalid
  148. }ColorDepthType;
  149. /* RGB 跟 YCC 对应的Limited 跟 FUll 正好错位,处理需要注意:
  150. * 下面是YCC的协议定义
  151. typedef enum _YccColorRangeType
  152. {
  153. YccColorRangeType_Limited_Range = 0,
  154. YccColorRangeType_Full_Range,
  155. YccColorRangeType_Range_Reserved
  156. }YccColorRangeType;
  157. */
  158. typedef enum _ColorRangeType
  159. {
  160. ColorRangeType_Default = 0,
  161. ColorRangeType_Limited_Range,
  162. ColorRangeType_Full_Range,
  163. ColorRangeType_Range_Reserved
  164. }ColorRangeType;
  165. /* 顺序跟数字是按照协议排序,如果需要修改需要Re-View HDMI & DP VideoColorParam */
  166. typedef enum _CorlorContentType
  167. {
  168. CorlorContentType_NoDef,
  169. CorlorContentType_Graphics,
  170. CorlorContentType_Photo,
  171. CorlorContentType_Cinema,
  172. CorlorContentType_Game
  173. }CorlorContentType;
  174. typedef enum _HDRSwitch
  175. {
  176. HDR_Switch_AutoOff = 0,
  177. HDR_Switch_AutoOn,
  178. HDR_Switch_ForceOff,
  179. HDR_Switch_Num
  180. }HDRSwitch;
  181. typedef enum _HDREOTF
  182. {
  183. SDR_TYPE,
  184. HDR_TYPE,
  185. HDR10_TYPE,
  186. HLG_TYPE,
  187. HDR_TYPE_NUM
  188. }HDREOTF;
  189. typedef enum _GCMODE
  190. {
  191. GC_DEFAULT,
  192. GC_DYNAMICCONTRAST,
  193. GC_DARKSTABLIZER,
  194. }GCMODE;
  195. typedef enum _GamutType
  196. {
  197. PQ_GAMUT_SRGB,
  198. PQ_GAMUT_709,
  199. PQ_GAMUT_P3,
  200. PQ_GAMUT_NATIVE,
  201. PQ_GAMUT_ADOBE,
  202. PQ_GAMUT_DISPLAY_P3,
  203. PQ_GAMUT_2020,
  204. PQ_GAMUT_NUM,
  205. }PQGamutType;
  206. typedef enum _UserColorSpace
  207. {
  208. PQ_COLOR_SPACE_RGB,
  209. PQ_COLOR_SPACE_YUV,
  210. PQ_COLOR_SPACE_AUTO,
  211. PQ_COLOR_SPACE_NUM,
  212. }PQColorSpace;
  213. typedef enum _UserBrightRange
  214. {
  215. PQ_BRIGHT_RANGE_AUTO,
  216. PQ_BRIGHT_RANGE_FULL,
  217. PQ_BRIGHT_RANGE_LIMIT,
  218. PQ_BRIGHT_RANGE_NUM,
  219. }PQBrightRange;
  220. typedef enum _PQGammaType{
  221. PQ_GAMMA1_6,
  222. PQ_GAMMA1_8,
  223. PQ_GAMMA2_0,
  224. PQ_GAMMA2_2,
  225. PQ_GAMMA2_4,
  226. PQ_GAMMA2_6,
  227. PQ_GAMMA2_8,
  228. PQ_GAMMA_SRGB,
  229. PQ_GAMMA_1886,
  230. PQ_GAMMA_NUM,
  231. }PQGammaType;
  232. typedef enum _PQOdLevel{
  233. PQ_OD_OFF,
  234. PQ_OD_FAST,
  235. PQ_OD_FASTER,
  236. PQ_OD_FASTEST,
  237. PQ_OD_ULTRAFAST,
  238. PQ_OD_NUM,
  239. }PQOdLevel;
  240. typedef enum _PQHdrSwitch{
  241. PQ_HDR_OFF,
  242. PQ_HDR_ON,
  243. PQ_HDR_MAX,
  244. }PQHdrSwitch;
  245. typedef enum _PQColorTemp{
  246. PQ_COLOR_TEMP_COOL,
  247. PQ_COLOR_TEMP_STANDARD,
  248. PQ_COLOR_TEMP_WARM,
  249. PQ_COLOR_TEMP_CUSTOM,
  250. PQ_COLOR_TEMP_LOWBLUE,
  251. PQ_COLOR_TEMP_SRGB,
  252. PQ_COLOR_TEMP_BLUSH,
  253. PQ_COLOR_TEMP_MAX,
  254. }PQColorTemp;
  255. typedef enum _PQCALLBACKMODE
  256. {
  257. PQCALLBACK_VSYNC,
  258. PQCALLBACK_TIMECHANGED,
  259. PQCALLBACK_RATIOMAPPING,
  260. PQCALLBACK_VSYNC_DPU,
  261. PQCALLBACK_HSYNC1,
  262. PQCALLBACK_HSYNC2,
  263. PQCALLBACK_HSYNC3,
  264. PQCALLBACK_HSYNC4,
  265. PQCALLBACK_HSYNC5,
  266. PQCALLBACK_HSYNC6,
  267. PQCALLBACK_HSYNC7,
  268. PQCALLBACK_HSYNC8,
  269. }PQCALLBACKMODE;
  270. typedef enum _PQ_LDCMODE
  271. {
  272. PQ_LDCMODE_OFF,
  273. PQ_LDCMODE_LOW,
  274. PQ_LDCMODE_MEDIUM,
  275. PQ_LDCMODE_HIGH,
  276. }PQ_LDCMODE;
  277. typedef enum _CmColorType
  278. {
  279. PQ_CM_R = 0,
  280. PQ_CM_G = 1,
  281. PQ_CM_B = 2,
  282. PQ_CM_C = 3,
  283. PQ_CM_Y = 4,
  284. PQ_CM_M = 5,
  285. PQ_CM_SKIN = 6,
  286. PQ_CM_MAX
  287. }CmColorType;
  288. typedef enum _VideoRatio
  289. {
  290. OUTPUTRATIO_AUTO,
  291. OUTPUTRATIO_16TO9,
  292. OUTPUTRATIO_4TO3,
  293. OUTPUTRATIO_21TO9,
  294. OUTPUTRATIO_5TO3,
  295. OUTPUTRATIO_1TO1,
  296. OUTPUTRATIO_16TO10,
  297. OUTPUTRATIO_5TO4,
  298. OUTPUTRATIO_FULL,
  299. /* 如果图像比例和屏幕大小无关在OUTPUTRATIO_17INCH_4TO3前面添加枚举
  300. 否则在后面添加枚举 */
  301. OUTPUTRATIO_17INCH_4TO3,
  302. OUTPUTRATIO_19INCH_4TO3,
  303. OUTPUTRATIO_19INCH_5TO4,
  304. OUTPUTRATIO_19INCH_16TO10,
  305. OUTPUTRATIO_21P5INCH_16TO9,
  306. OUTPUTRATIO_22INCH_16TO10,
  307. OUTPUTRATIO_23INCH_16TO9,
  308. OUTPUTRATIO_23P6INCH_16TO9,
  309. OUTPUTRATIO_24INCH_16TO9,
  310. OUTPUTRATIO_MAX
  311. }VideoRatio;
  312. typedef struct _PanelInchParam{
  313. USHORT16 usPanelInchW;
  314. USHORT16 usPanelInchH;
  315. }PanelInchParam;
  316. typedef struct _RatioParam{
  317. USHORT16 usRatioW;
  318. USHORT16 usRatioH;
  319. }RatioParam;
  320. typedef struct _VideoColorParam
  321. {
  322. ColorFormatType eClrFormat;
  323. ColorSpaceType eClrSpace;
  324. ColorDepthType eClrDepth;
  325. ColorRangeType eClrRange;
  326. CorlorContentType eContent;
  327. UCHAR8 ucPixelRepe;
  328. }VideoColorParam;
  329. typedef enum _DisplayDataMode
  330. {
  331. DIS_TIMING_MODE_FRAMESYNC,
  332. DIS_TIMING_MODE_FREE_RUN,
  333. DIS_TIMING_MODE_TCON,
  334. DIS_TIMING_MODE_FREE_RUN_MODE1,
  335. }DisplayTimingMode;
  336. typedef enum _DisplayDataPathMode
  337. {
  338. DATA_PATH_MODE_FRAMESYNC,
  339. DATA_PATH_MODE_THROUGH_COLORFORMAT_RX,
  340. DATA_PATH_MODE_COMPRESS_COLORFORMAT1_6_RX,
  341. DATA_PATH_MODE_COMPRESS_COLORFORMAT_RX,
  342. DATA_PATH_MODE_THROUGH_COLORFORMAT_YUV444,
  343. DATA_PATH_MODE_THROUGH_COLORFORMAT_YUV422,
  344. /*直通的YUV420占用的带宽内存 一定比压缩的YUV422多,且显示效果更差,仅辅通道才选择这种方式*/
  345. DATA_PATH_MODE_THROUGH_COLORFORMAT_YUV420,
  346. DATA_PATH_MODE_COMPRESS_COLORFORMAT_YUV444,
  347. DATA_PATH_MODE_COMPRESS_COLORFORMAT_YUV422,
  348. DATA_PATH_MODE_COMPRESS_RATIO_3_COLORFORMAT_YUV444,
  349. DATA_PATH_MODE_COMPRESS_RATIO_3_COLORFORMAT_YUV422,
  350. }DisplayDataPathMode;
  351. typedef enum _ChanelSignalState
  352. {
  353. ChanelSignalState_Invalid,
  354. ChanelSignalState_SearchState,
  355. ChanelSignalState_NoSignal,
  356. ChanelSignalState_SignalSync,
  357. }ChanelSignalState;
  358. typedef enum _ChannelType
  359. {
  360. CHANNEL_TYPE_MAIN = 0,
  361. CHANNEL_TYPE_SUB = 1,
  362. }ChannelType;
  363. typedef enum _PxpMode
  364. {
  365. PXP_MODE_CLOSE = 0,
  366. PXP_MODE_PIP_ENABLE = 1,
  367. PXP_MODE_PBP_ENABLE = 2,
  368. PXP_MODE_MAGNIFY_GLASS_ENABLE = 3,
  369. }PxpMode;
  370. typedef enum _PipSize
  371. {
  372. PIP_SIZE_SMALL = 0,
  373. PIP_SIZE_MIDDLE = 1,
  374. PIP_SIZE_BIG = 2,
  375. }PipSize;
  376. typedef enum _PbpSize
  377. {
  378. PBP_SIZE_SMALL = 0,
  379. PBP_SIZE_MIDDLE = 1,
  380. PBP_SIZE_BIG = 2,
  381. }PbpSize;
  382. typedef enum _PipPos
  383. {
  384. PIP_POS_LEFT_TOP = 0,
  385. PIP_POS_LEFT_BOTTOM = 1,
  386. PIP_POS_RIGHT_TOP = 2,
  387. PIP_POS_RIGHT_BOTTOM = 3,
  388. }PipPos;
  389. /*为了不使用浮点数,并且方便计算将压缩比枚举直接放大十倍*/
  390. typedef enum _CompressRatio
  391. {
  392. COMPRESS_RATIO_1 = 10, /*非压缩模式,压缩比可以当成1*/
  393. COMPRESS_RATIO_ONE_POINT_SIX = 16,
  394. COMPRESS_RATIO_TWO_POINT_FIVE = 25,
  395. COMPRESS_RATIO_THREE = 30,
  396. COMPRESS_RATIO_FOUR = 40,
  397. }CompressRatio;
  398. typedef struct _FrameBufferConfig
  399. {
  400. BOOL bUseFrameBuffer; /*false-frame sync use water buffer dont use FrameBuffer, true: other case*/
  401. UCHAR8 ucFrameBufferNumber; /*framebuffer中缓存的帧数*/
  402. ColorFormatType enFBColorFormat; /*frame buffer缓存的帧中使用的颜色格式*/
  403. ColorDepthType enFBColorDepth; /*frame buffer存储的色深*/
  404. BOOL bUseCompress; /*frameBuffer 中的数据是否使用压缩模式*/
  405. CompressRatio enCompressRatio; /*压缩模式配置的压缩比*/
  406. }FrameBufferConfig;
  407. typedef enum _SouceInfoType
  408. {
  409. SouceInfoType_UnKnown,
  410. SouceInfoType_DigitalSTB,
  411. SouceInfoType_DVDPlayer,
  412. SouceInfoType_DVHS,
  413. SouceInfoType_HDD_VideoRecorder,
  414. SouceInfoType_DVC,
  415. SouceInfoType_DSC,
  416. SouceInfoType_VideoCD,
  417. SouceInfoType_Game,
  418. SouceInfoType_PCGeneral,
  419. SouceInfoType_BluRayDisc,
  420. SouceInfoType_SuperAudioCD,
  421. SouceInfoType_HD_DVD,
  422. SouceInfoType_PMP,
  423. SouceInfoType_Reserved
  424. }SouceInfoType;
  425. typedef enum _HDMIFormat
  426. {
  427. HDMI_FORMAT_STANDARD,
  428. HDMI_FORMAT_ENHANCE,
  429. HDMI_FORMAT_FRL_ENHANCE,
  430. HDMI_FORMAT_NUM
  431. }HDMIFormat;
  432. typedef enum _EDIDType
  433. {
  434. EDID_TYPE_DEFAULT = 0,
  435. EDID_TYPE_DEFAULT_NOHDR,
  436. EDID_TYPE_TMDS,
  437. EDID_TYPE_TMDS_VRR,
  438. EDID_TYPE_FRL,
  439. EDID_TYPE_FRL_VRR,
  440. EDID_TYPE_FRL_ENHANCED,
  441. EDID_TYPE_FRL_ENHANCED_VRR,
  442. EDID_TYPE_PBP,
  443. EDID_TYPE_PIP,
  444. EDID_TYPE_TMDS_1_4,
  445. EDID_TYPE_ADAPTIVESYNC,
  446. EDID_TYPE_ADAPTIVESYNC_NOHDR,
  447. EDID_TYPE_USR_DEF,
  448. EDID_TYPE_PRO_ESPORT,
  449. EDID_TYPE_END,
  450. EDID_TYPE_CLOSE_HDR = BIT_5, /* Only Used for HDMI */
  451. EDID_TYPE_INVALID = 0xFF,
  452. }EDIDType;
  453. //DTC特殊处理原因
  454. typedef enum _SpecResType
  455. {
  456. SPECIAL_RESOLUTION_NORMAL,
  457. SPECIAL_RESOLUTION_UNSUPPORT,
  458. SPECIAL_RESOLUTION_FRAME_SYNC,
  459. SPECIAL_RESOLUTION_FRC,
  460. SPECIAL_RESOLUTION_FRC_444,
  461. SPECIAL_RESOLUTION_FRC_422,
  462. SPECIAL_RESOLUTION_FRC_420,
  463. SPECIAL_RESOLUTION_DTC_LINE_RATE,
  464. }SpecResType;
  465. typedef struct _VideoTimingParam
  466. {
  467. USHORT16 usHTotal;
  468. USHORT16 usHFProch;
  469. USHORT16 usHSyncW;
  470. USHORT16 usHBProch;
  471. USHORT16 usHActive;
  472. USHORT16 usHPol;
  473. USHORT16 usVTotal;
  474. USHORT16 usVFProch;
  475. USHORT16 usVSyncW;
  476. USHORT16 usVBProch;
  477. USHORT16 usVActive;
  478. USHORT16 usVPol;
  479. USHORT16 usFrameRate;
  480. BOOL bInterlacedMode; /* Interlace mode or not */
  481. BOOL bIsEnterALLM; /* ALLM Mode Open or Closed */
  482. BOOL bIsNoSignal; /* Ture:表示HDMI未解析出信号,无法SyncOK ,提示"No Signal";
  483. False:表示HDMI可以正确识别信号,但是无法解析出Timing 及关键参数 AVI etc,提示"Not Support".
  484. Only 返回 HV_FAILURE 时候该字段有意义 */
  485. UINT32 uiFreqKHz; /* RX Received Pixel Clock KHz */
  486. UINT32 uiHFreqHz; /*horizontal frequency*/
  487. UINT32 uiRxDpllSetFreqKHz; /* RX dpll set Pixel Clock KHz: 0表示未配置,非0表示已经配置 */
  488. FLOAT32 fFrameRate; /* Detail of the Frame rate Detected */
  489. }VideoTimingParam;
  490. typedef enum _DynamicColorWin
  491. {
  492. MAIN_COLOR_WIN = 0,
  493. DYNAMIC_COLOR_WIN = 1,
  494. }DynamicColorWin;
  495. typedef struct _AudioTimingParam
  496. {
  497. UINT32 uiCTS;
  498. UINT32 uiN;
  499. UINT32 uiMaud;
  500. UINT32 uiNaud;
  501. }AudioTimingParam;
  502. typedef struct _AmdSpdInfoParam
  503. {
  504. BOOL bFreeSyncSupported;
  505. BOOL bFreeSyncEnabled; /* Sync Should Prapared to Entered FreeSync */
  506. BOOL bFreeSyncActive; /* Entered the Frame changed status */
  507. BOOL bNativeColorSpaceActive;
  508. BOOL bLocalDimmingDisabled; /* 1: disabled Local Dimming. 0: enable the Local Dimming */
  509. BOOL bGamma26EOTFActive;
  510. BOOL bGamma22EOTFActive;
  511. BOOL bBT709EOTFActive;
  512. BOOL bSRGBEOTFActive;
  513. UCHAR8 ucVersion;
  514. UCHAR8 ucFreeSyncMinReFresh;
  515. UCHAR8 ucFreeSyncMaxReFresh;
  516. UCHAR8 ucBrightneesControl;
  517. }AmdSpdInfoParam;
  518. typedef struct _NvidiaVendSpecInfoParam
  519. {
  520. UCHAR8 ucModeName[HV_VENDOR_DESCRIP_LEN];
  521. SouceInfoType eSourceInfoCode;
  522. }NvidiaVendSpecInfoParam;
  523. typedef struct _SourceProductDesc
  524. {
  525. UCHAR8 uclVendorName[HV_VENDOR_NAME_LEN];
  526. UCHAR8 uclVendorDescript[HV_VENDOR_DESCRIP_LEN];
  527. SouceInfoType eSourceInfoCode;
  528. }SourceProductDesc;
  529. typedef enum _VfrVRRType
  530. {
  531. VfrVRRType_HDMIMDGaming,
  532. VfrVRRType_HDMIMDGamingFVA,
  533. VfrVRRType_HDMIMDQMS,
  534. VfrVRRType_HDMIMDNotSupport
  535. }VfrVRRType;
  536. typedef struct _VRRMDContent
  537. {
  538. VfrVRRType eVfrVrrType;
  539. BOOL bVRREnable; /* Including All VfrVRRType: bVRRGamingEnable and bVRRQMSEnable */
  540. UCHAR8 ucFVAFactorM1; /* VfrVRRType_HDMIMDGamingFVA Only */
  541. UCHAR8 ucBase_Vfront;
  542. UCHAR8 ucNextTFR; /* VfrVRRType_HDMIMDQMS Only */
  543. USHORT16 usBaseRefreshRate;
  544. }VRRMDContent;
  545. typedef struct _VRRInfoParam
  546. {
  547. BOOL bVRREnable; /* HV_TRUE:Source Entered VRR; HV_HV_FALSE:Source Out Of VRR */
  548. VendorType eVendor; /* Type == VendorType_UnKnown±íʾ·ÇVRR±¨ÎÄ */
  549. union
  550. {
  551. AmdSpdInfoParam stAmdSpdInfPara;
  552. NvidiaVendSpecInfoParam stNvidiaVSIPara;
  553. VRRMDContent stCommVRRinMD; /* HF-VRR with EMP */
  554. } uvsi;
  555. }VRRInfoParam;
  556. typedef struct _HDRParam
  557. {
  558. HDREOTF xType;
  559. UCHAR8 ucMetaID;
  560. USHORT16 usPrimX0;
  561. USHORT16 usPrimY0;
  562. USHORT16 usPrimX1;
  563. USHORT16 usPrimY1;
  564. USHORT16 usPrimX2;
  565. USHORT16 usPrimY2;
  566. USHORT16 usWhtX;
  567. USHORT16 usWhtY;
  568. USHORT16 usMaxLum;
  569. USHORT16 usMinLum;
  570. USHORT16 usMaxCntn;
  571. USHORT16 usMaxFrmAvg;
  572. }HDRParam;
  573. typedef struct _FreesyncInfo
  574. {
  575. UCHAR8 ucType; /*0: none 1: DRR 2:DRR+HDR*/
  576. UCHAR8 ucSupported;
  577. UCHAR8 ucEnabled;
  578. UCHAR8 ucActive;
  579. UCHAR8 ucMinRate;
  580. UCHAR8 ucMaxRate;
  581. UCHAR8 ucNative;
  582. UCHAR8 ucLDDisable;
  583. UCHAR8 ucGamma2p2EOTF;
  584. }FreesyncInfo;
  585. typedef enum _AudioSampleRate
  586. {
  587. E_RATE_REFERENCE_STREAM_HEADER = 0,
  588. E_32K = 1,
  589. E_44P1K = 2,
  590. E_48K = 3,
  591. E_88P2K = 4,
  592. E_96K = 5,
  593. E_176P4K = 6,
  594. E_192K = 7,
  595. E_768K = 8
  596. }AudioSampleRate;
  597. typedef enum _AudioSampleDepth
  598. {
  599. E_DEPTH_REF_STREAM_HEADER = 0,
  600. E_AUD_16BIT = 1,
  601. E_AUD_20BIT = 2,
  602. E_AUD_24BIT = 3
  603. }AudioSampleDepth;
  604. typedef enum _AudioCodingType
  605. {
  606. E_AUD_TYPE_REF_STREAM_HEAD = 0,
  607. E_AUD_TYPE_L_PCM = 1,
  608. E_AUD_TYPE_AC_3 = 2,
  609. E_AUD_TYPE_MPEG_1 = 3,
  610. E_AUD_TYPE_MP3 = 4,
  611. E_AUD_TYPE_MPEG_2 = 5,
  612. E_AUD_TYPE_AAC_LC = 6,
  613. E_AUD_TYPE_DTS_TS_102 = 7,
  614. E_AUD_TYPE_ATRAC = 8,
  615. E_AUD_TYPE_ONE_BIT_AUD = 9,
  616. E_AUD_TYPE_ENHENCE_AC_3 = 10,
  617. E_AUD_TYPE_DTS_HD_UHD = 11,
  618. E_AUD_TYPE_MAT = 12,
  619. E_AUD_TYPE_DTS_IEC = 13,
  620. E_AUD_TYPE_WMA_PRO = 14,
  621. E_AUD_TYPE_REF_ACET = 15
  622. }AudioCodingType;
  623. typedef struct _AudioPara
  624. {
  625. AudioSampleRate enSampleRate;
  626. AudioSampleDepth enSampleDepth;
  627. AudioCodingType enCodingType;
  628. BOOL bAudClkStable;
  629. UCHAR8 ucChnlCnt;
  630. UINT32 uiCtsValue;
  631. UINT32 uiNValue;
  632. }AudioPara;
  633. typedef struct _DpuInterruptDefine
  634. {
  635. /*ldg_int*/
  636. UINT32 uiKspiVs :1;
  637. UINT32 uiKspiTconVsL :1;
  638. UINT32 uiKspiTconVsH :1;
  639. UINT32 uiLdgTblGo :1;
  640. UINT32 uiKspiIntRdma :1;
  641. UINT32 uiKspiIntWbuf :1;
  642. /*cap_int*/
  643. UINT32 uiMainVdmTblCaGo :1;
  644. UINT32 uiMainSpchVendIrq :1;
  645. UINT32 uiSubVdmTblCaGo :1;
  646. UINT32 uiSubSpchVendIrq :1;
  647. /*srp_int*/
  648. UINT32 uiSrTblGo :1;
  649. UINT32 uiSrCtMhiHibEndIrq :1;
  650. UINT32 uiSrCtMhiHiaEndIrq :1;
  651. }DpuInterruptDefine;
  652. typedef struct _DtcInterruptDefine
  653. {
  654. UINT32 uiMainFrcAbnormConflict :1;
  655. UINT32 uiSubFrcAbnormConflict :1;
  656. UINT32 uiBufferOverflow :1;
  657. UINT32 uiBufferUnderflow :1;
  658. UINT32 uiBufferHigh :15;
  659. UINT32 uiBufferLow :15;
  660. }DtcInterruptDefine;
  661. typedef enum _DisplayInterruptType
  662. {
  663. DisplayInterruptType_HsIp0,
  664. DisplayInterruptType_HsIp1,
  665. DisplayInterruptType_HsDisplay,
  666. DisplayInterruptType_Dpu,
  667. DisplayInterruptType_Dtc,
  668. DisplayInterruptType_Kspi,
  669. DisplayInterruptType_Mute0,
  670. DisplayInterruptType_Mute1,
  671. }DisplayInterruptType;
  672. typedef struct _HsIpInterruptDefine
  673. {
  674. UINT32 uiHsIntSource0 :1;
  675. UINT32 uiHsIntSource1 :1;
  676. UINT32 uiHsIntSource2 :1;
  677. UINT32 uiHsIntSource3 :1;
  678. UINT32 uiHsIntSource4 :1;
  679. UINT32 uiHsIntSource5 :1;
  680. UINT32 uiHsIntSource6 :1;
  681. UINT32 uiHsIntSource7 :1;
  682. UINT32 uiHsIntSource8 :1;
  683. UINT32 uiHsIntSource9 :1;
  684. UINT32 uiHsIntSource10 :1;
  685. UINT32 uiHsIntSource11 :1;
  686. UINT32 uiHsIntSource12 :1;
  687. UINT32 uiHsIntSource13 :1;
  688. UINT32 uiHsIntSource14 :1;
  689. UINT32 uiHsIntSource15 :1;
  690. UINT32 uiHsIntSource16 :1;
  691. UINT32 uiHsIntSource17 :1;
  692. UINT32 uiHsIntSource18 :1;
  693. UINT32 uiHsIntSource19 :1;
  694. UINT32 uiHsIntSource20 :1;
  695. UINT32 uiHsIntSource21 :1;
  696. UINT32 uiHsIntSource22 :1;
  697. UINT32 uiHsIntSource23 :1;
  698. }HsIpInterruptDefine;
  699. typedef struct _DisplayInterrupt
  700. {
  701. HsIpInterruptDefine stHsIp0;
  702. HsIpInterruptDefine stHsIp1;
  703. HsIpInterruptDefine stHsDisplay;
  704. DpuInterruptDefine stDpuInterrupt;
  705. DtcInterruptDefine stDtcInterrupt;
  706. UINT32 uiInterruptCount;
  707. DisplayInterruptType enInterruptType;
  708. }DisplayInterrupt;
  709. typedef struct _EDPTXInterruptDefine
  710. {
  711. UINT32 uiHpdEvt;
  712. UINT32 uiHpdIrq;
  713. UINT32 uiAuxTransDone;
  714. UINT32 uiRegEdptxSwIrq;
  715. UINT32 uiHpdPlug;
  716. }EdpTxInterruptDefine;
  717. typedef void (*HV_MW_VSYNC_CALLBACK)(VOID);
  718. typedef struct _VideoConfigParams
  719. {
  720. UINT32 uiInputVideoWidth; /*当前通道输入Hactive*/
  721. UINT32 uiInputVideoHight; /*当前通道输入Vactive*/
  722. UINT32 uiInputVideoHtotal; /*当前通道输入H total*/
  723. UINT32 uiInputVideoVtotal; /*当前通道输入V total*/
  724. UINT32 uiInputFrameRate; /*当前通道输入帧率*/
  725. USHORT16 usInputCutHsize; /*cap in cut h size*/
  726. USHORT16 usInputCutVsize; /*cap in cut v size*/
  727. //SpecResType enSpecResType; /*特殊处理timing类型*/
  728. UINT32 uiDdrOrWtrVideoWidth; /*当前通道Hactive size in frame buffer or waterbuffer*/
  729. UINT32 uiDdrOrWtrVideoHight; /*当前通道Vactive size in frame buffer or waterbuffer*/
  730. UINT32 uiOutputVideoWidth; /*当前通道输出Hactive*/
  731. UINT32 uiOutputVideoHight; /*当前通道输出Vactive*/
  732. UINT32 uiOutputVideoHtotal; /*当前通道输出H total*/
  733. UINT32 uiOutputVideoVtotal; /*当前通道输出V total*/
  734. UINT32 uiOutputFrameRate; /*当前通道输出帧率*/
  735. UINT32 uiDtcTxHtotal; /*framesync模式下设定的DTC TX htotal*/
  736. USHORT16 usVideoPanelHactive; /*panel 参数*/
  737. USHORT16 usVideoPanelVactive; /*panel 参数*/
  738. USHORT16 usVideoPanelHtotalType; /*panel 参数*/
  739. USHORT16 usVideoPanelVtotalType; /*panel 参数*/
  740. USHORT16 usPanelInchWidth; /*panel尺寸大小(mm)*/
  741. USHORT16 usPanelInchHeight; /*panel尺寸大小(mm)*/
  742. UINT32 uiRxDpllFreq; /*当前配置的RXD时钟频率,kHZ*/
  743. UINT32 uiDisplayPllFreq; /*当前配置的Display时钟频率,kHZ*/
  744. UINT32 uiDestDisplayPllFreq; /*Display目标时钟频率,kHZ*/
  745. UINT32 uiPtcdPreDiv; /*当前配置的PTCD PLL pre divider*/
  746. UINT32 uiPtcdPostDiv; /*当前配置的PTCD PLL post divider*/
  747. UINT32 uiPtcdFBDivInt; /*当前配置的PTCD PLL fb int divider*/
  748. UINT32 uiPtcdFBDivFrac; /*当前配置的PTCD PLL fb frac divider*/
  749. PxpMode enPxpMode; /* 0-close 1-PIP 2-PBP*/
  750. UINT32 uiSubChannelUsedMemory; /*主通道计算 内存和带宽时,预估的辅通道最大使用的内存*/
  751. BOOL bOsdVrrEnable; /*OSD当前是否配置了VRR模式*/
  752. FrameBufferConfig stFrameBufferCfg; /*frame buffer config*/
  753. DisplayTimingMode enTimingMode; /*当前通路选择的DTC tming类型*/
  754. DisplayDataPathMode enDataPathMode; /*当前通路配置模式*/
  755. BOOL bHorizontalNeedScaler; /*cap vgsf模块水平方向需要进行scaler down*/
  756. BOOL bVerticalNeedScaler; /*cap vgsf模块垂直方向是否需要进行scaler down*/
  757. ChannelType enChannelType; /*通道类型*/
  758. BOOL bHflipEnable; /*水平方向翻转功能开关 0-disable 1-enable*/
  759. BOOL bVflipEnable; /*垂直方向翻转功能开关 0-disable 1-enable*/
  760. VideoColorParam stColor; /*从RX获取到的color配置*/
  761. HDRParam stHdrParam; /*HDR meta data got from HDMI/DP*/
  762. BOOL bHdrSwitch; /*Driver HDR On/Off*/
  763. VRRInfoParam stVRRInfoParam; /*VRR info got from HDMI/DP*/
  764. BOOL bInterlacedMode; /*RX timing是否是interlaced模式*/
  765. VideoRatio enAspectRatio; /*画面比例*/
  766. BOOL bConfigValid; /*表示当前此结构体变量数据是否有效;除开机及老化时,其它时间均有效*/
  767. BOOL bMainFakeSwitch; /*Dcw功能开关*/
  768. FLOAT32 fMainFakeRatio; /*Dcw功能放大倍数*/
  769. USHORT16 usMainFakeHsize; /*Dcw功能放大resolution Hactive*/
  770. USHORT16 usMainFakeVsize; /*Dcw功能放大resolution Vactive*/
  771. USHORT16 usMainFakePosH; /*Dcw H position*/
  772. USHORT16 usMainFakePosV; /*Dcw V position*/
  773. UINT32 uiEdpTuDataSize; /*edp软件计算的tu*/
  774. UINT32 uiMvid; /*edp软件计算的mvid*/
  775. BOOL bForceFrc; /*强制FRC模式,用于比例缩放*/
  776. HV_MW_VSYNC_CALLBACK pfCallBack;
  777. UCHAR8 (*pfPQCallback)(PQCALLBACKMODE enMode, const VOID *pvVideoConfigParams);
  778. }VideoConfigParams;
  779. typedef struct _DpuDpcCapSrpParam
  780. {
  781. UCHAR8 ucCaDataMode; /*0:444 1:422 2:420*/
  782. UCHAR8 ucCaDataBitwidth; /*rx input data width,6、8、10、12*/
  783. UCHAR8 ucCaEncPackWork; /*0:enc,pack work;1:enc work only;2:pack work only*/
  784. UCHAR8 ucDecUnpackSel; /*0:dec; 1: unpack*/
  785. UCHAR8 ucDataMode; /*0:444; 1:422; 2:420*/
  786. UCHAR8 ucDataWidth; /*0:6bit; 1:8bit; 2:10bit; 3:12bit*/
  787. }DpuDpcCapSrpParam;
  788. typedef struct _DpucScalerParam
  789. {
  790. USHORT16 usHsfInize;
  791. USHORT16 usVsfInize;
  792. USHORT16 usHsfOutsize;
  793. USHORT16 usVsfOutsize;
  794. UINT32 uiHfilbase;
  795. UINT32 uiVfilbase;
  796. }DpucScalerParam;
  797. typedef struct _DpuWindowParam
  798. {
  799. USHORT16 usDtcChHsta;
  800. USHORT16 usDtcChHend;
  801. USHORT16 usDtcChVsta;
  802. USHORT16 usDtcChVend;
  803. USHORT16 usBorderHstart;
  804. USHORT16 usBorderVstart;
  805. USHORT16 usBorderLength;
  806. USHORT16 usBorderHeight;
  807. BOOL bBorderEn;
  808. UCHAR8 ucBorderWidth;
  809. UINT32 ucBborderColor;
  810. }DpuWindowParam;
  811. typedef struct DpuVdmConfigSettings
  812. {
  813. UINT32 uiDmColStep;
  814. USHORT16 usDmTotalColNum;
  815. UCHAR8 ucDmBurstLen;
  816. UINT32 uiDmBurstNum;
  817. UCHAR8 ucDmBurstRmd;
  818. UINT32 uiDmLineStep;
  819. USHORT16 usDmTotalLineNum;
  820. UCHAR8 ucDmOutstanding;
  821. UINT32 uiDmWrStartAdr;
  822. UINT32 uiDmWrStartAdr0;
  823. UINT32 uiDmWrStartAdr1;
  824. UINT32 uiDmWrStartAdr2;
  825. UCHAR8 ucDmRdColStepDir;
  826. USHORT16 usDmRdColDatNum;
  827. UCHAR8 ucDmRdLineStepDir;
  828. UINT32 uiDmRdStartAdr;
  829. UINT32 uiDmRdStartAdr0;
  830. UINT32 uiDmRdStartAdr1;
  831. UINT32 uiDmRdStartAdr2;
  832. }DpuVdmConfigSettings;
  833. typedef struct _DpuDtcTopTimingParam
  834. {
  835. CHAR8 ucDtcRbufClkSel;
  836. UINT32 uiCycleRefclkDelay;
  837. UINT32 uiCycleRefclkFramesyncRangeMin;
  838. UINT32 uiCycleRefclkFramesyncRangeMax;
  839. UINT32 uiCycleRefclkFramesyncRestartTh;
  840. USHORT16 usRxVact;
  841. UCHAR8 ucFrcMainBufNum;
  842. USHORT16 usFrcMainRdDoneTh;
  843. USHORT16 usFrcMainWrDoneTh;
  844. }DpuDtcTopTimingParam;
  845. typedef struct _DpuCapCutParam
  846. {
  847. USHORT16 usCutHstart;
  848. USHORT16 usCutHend;
  849. USHORT16 usCutVstart;
  850. USHORT16 usCutVend;
  851. }DpuCapCutParam;
  852. typedef struct _MainRxFakeVideoParam
  853. {
  854. FLOAT32 fMainFakeRatio;
  855. USHORT16 usMainFakeHsize;
  856. USHORT16 usMainFakeVsize;
  857. USHORT16 usMainFakePosH;
  858. USHORT16 usMainFakePosV;
  859. }MainRxFakeVideoParam;
  860. typedef struct _HvFactoryEdidInfo
  861. {
  862. USHORT16 usHActive;
  863. USHORT16 usVActive;
  864. USHORT16 usProductCode;
  865. UINT32 uiSerialNum;
  866. USHORT16 usYear;
  867. UCHAR8 ucWeek;
  868. UCHAR8 ucFactNameLen;
  869. CHAR8 acFactName[3];
  870. UCHAR8 ucDescSnCount;
  871. CHAR8 acDescSn[13];
  872. CHAR8 acMonitorName[13];
  873. UCHAR8 ucVersion;
  874. UCHAR8 ucRevision;
  875. UCHAR8 ucExtFlag;
  876. UCHAR8 ucStorageType; /* 0, None 1, EEPROM 2, FlashROM */
  877. UCHAR8 ucCheckSumCount;
  878. UCHAR8 aucCheckSumValue[4];
  879. BOOL bCheckSumStatus;
  880. FLOAT32 fSreenSize;
  881. }HvFactoryEdidInfo;
  882. typedef struct _HvEdidInfoToOsd
  883. {
  884. USHORT16 usProductCode;
  885. UINT32 uiSerialNum;
  886. USHORT16 usYear;
  887. UCHAR8 ucWeek;
  888. CHAR8 acFactName[4];
  889. CHAR8 acDescSn[14];
  890. CHAR8 acMonitorName[14];
  891. UCHAR8 ucVersion;
  892. UCHAR8 ucRevision;
  893. UCHAR8 ucExtFlag;
  894. UCHAR8 ucCheckSumCount;
  895. UCHAR8 aucCheckSumValue[4];
  896. BOOL bCheckSumStatus;
  897. }HvEdidInfoToOsd;
  898. /* HDCP Define */
  899. /************ HDCP Begin *************/
  900. typedef enum _HdcpPortType
  901. {
  902. HdcpPortType_Hdmi =0,
  903. HdcpPortType_DisplayPort,
  904. HdcpPortType_Invalid
  905. } HdcpPortType;
  906. typedef enum _HdmiVersion
  907. {
  908. HdmiVesion_HD14, //TMDS 1.4
  909. HdmiVesion_HD20, //TMDS 2.1 & TMDS 2.0
  910. HdmiVesion_HD21, //FRL 2.1
  911. HdmiVesion_End //
  912. }HdmiVersion;
  913. typedef enum _HdcpVersion
  914. {
  915. HdcpVesion_None = 0x0, //HDCP Not Used
  916. HdcpVesion_Hdcp1X = 0x1, //HDCP 1.X
  917. HdcpVesion_Hdcp2X = 0x2, //HDCP 2.X
  918. HdcpVesion_Invliad
  919. }HdcpVersion;
  920. /************HDCP Rx Role************ */
  921. typedef enum _HdcpRole
  922. {
  923. HV_HDCP_TRANSMITTER = 0x0,
  924. HV_HDCP_RECEIVER = 0x2,
  925. HV_HDCP_REPEATER = 0x3
  926. } HdcpRole;
  927. /************HDCP Rx Role************ */
  928. typedef enum _HdcpKeyCheckResult
  929. {
  930. HV_HDCP_KEY_VALID = 0x0,
  931. HV_HDCP_KEY_INVALID = 0x1,
  932. HV_HDCP_KEY_DEFAULT = 0x3,
  933. HV_HDCP_KEY_EMPTY = 0x4
  934. } HdcpKeyCheckResult;
  935. /* HDCP Key */
  936. typedef struct _Hdcp2xRxKey
  937. {
  938. /*
  939. * lc128 : 128 bit 私密全局常量
  940. * 所有HDCP设备共享相同的全局常量
  941. */
  942. UCHAR8 aucHdcp2xRxLc128[HV_HDCP_2X_RX_LC128_SIZE]; /* 16 Bytes */
  943. /* 公钥证书:
  944. * 0 - 3072 : 3072bit,加密签名,签名方案。
  945. * 3072 - 3083 :12bit,保留,全0
  946. * 3084 - 3087 :4bit,保留,0x0 或者 0x1
  947. * 3088 - 4135 :1048bit,kpub RSA公钥 rx(cert),
  948. 前1024位是模n的大端表示,后24位是公开指数e的大端表示
  949. * 4136 - 4175 :40bit,接收机标识符,它的格式与HDCP1.X相同,包含20个1和20个0
  950. */
  951. UCHAR8 aucHdcp2xRxCert[HV_HDCP_2X_RX_CERT_SIZE]; /* 522 Bytes */
  952. /*
  953. * RSA私钥:
  954. *
  955. */
  956. UCHAR8 aucHdcp2xRxPrivKey[HV_HDCP_2X_RX_PRIVATEKEY_SIZE]; /* 320 Bytes */
  957. }Hdcp2xRxKey;
  958. /*******HDCP 2.X***********************/
  959. typedef struct _Hdcp1xRxKey
  960. {
  961. /* KSV(BKsv) 一共40bit, 有20个1跟20个0组成 */
  962. UCHAR8 aucBksv[HV_HDCP_1X_SIZE_BKSV]; /* 5 Bytes */
  963. /*
  964. * 40个56bit的 secret device keys 组成的Device Private Key
  965. * 和相匹配的设备标识KSV, KSV是40bit的二进制数。
  966. */
  967. UCHAR8 aucDks[HV_HDCP_1X_SIZE_DKS_BYTE]; /* 280 Bytes */
  968. }Hdcp1xRxKey;
  969. /************ HDCP End *************/
  970. typedef enum
  971. {
  972. QUEUE_OK,
  973. QUEUE_FULL,
  974. QUEUE_EMPTY
  975. }QueueStatus;
  976. typedef enum _SscgType
  977. {
  978. SSCG_VBO,
  979. SSCG_EDP,
  980. SSCG_DDR,
  981. SSCG_MAX,
  982. }SscgType;
  983. typedef enum _SscgMode
  984. {
  985. SPREAD_CENTER,
  986. SPREAD_DOWN,
  987. SPREAD_UP,
  988. }SscgMode;
  989. typedef enum _FlashModel
  990. {
  991. FLASH_N25Q = 0,
  992. FLASH_MT25,
  993. FLASH_P25Q,
  994. FLASH_W25Q,
  995. FLASH_GD25,
  996. FLASH_MX25,
  997. }FlashModel;
  998. typedef enum _FlashModelID
  999. {
  1000. FLASH_MT25_ID = 0x20,
  1001. FLASH_MX25_ID = 0xC2,
  1002. }FlashModelID;
  1003. typedef struct _FlashAttribute
  1004. {
  1005. UCHAR8 FlashReadIdStandardCmd;
  1006. UCHAR8 FlashReadIdMultiIoCmd;
  1007. UCHAR8 FlashReadIdQuadCmd;
  1008. UCHAR8 FlashSectionEraseCmd;
  1009. UCHAR8 FlashSectionEraseCmd_4ByteAddr;
  1010. UCHAR8 FlashMultiSectionEraseCmd;
  1011. UCHAR8 FlashMultiSectionEraseCmd_4ByteAddr;
  1012. UCHAR8 FlashChipEraseCmd;
  1013. UCHAR8 FlashProgStandardCmd;
  1014. UCHAR8 FlashProgStandardCmd_4ByteAddr;
  1015. UCHAR8 FlashProgDualCmd;
  1016. UCHAR8 FlashProgQuadCmd;
  1017. UCHAR8 FlashProgQuadCmd_4ByteAddr;
  1018. UCHAR8 FlashProgQpiCmd;
  1019. UCHAR8 FlashProgQpiCmd_4ByteAddr;
  1020. UCHAR8 FlashProg4xIoCmd;
  1021. UCHAR8 FlashProg4xIoCmd_4ByteAddr;
  1022. UCHAR8 FlashReadStandardCmd;
  1023. UCHAR8 FlashReadStandardCmd_4ByteAddr;
  1024. UCHAR8 FlashReadDualCmd;
  1025. UCHAR8 FlashReadDualCmd_4ByteAddr;
  1026. UCHAR8 FlashReadQuadCmd;
  1027. UCHAR8 FlashReadQuadCmd_4ByteAddr;
  1028. UCHAR8 FlashReadQpiCmd;
  1029. UCHAR8 FlashReadQpiCmd_4ByteAddr;
  1030. UCHAR8 FlashRead4xIoCmd;
  1031. UCHAR8 FlashRead4xIoCmd_4ByteAddr;
  1032. UCHAR8 FlashReadStatusCmd;
  1033. UCHAR8 FlashWriteEnCmd;
  1034. UCHAR8 FlashInstruWidth;
  1035. UCHAR8 FlashCycleDual;
  1036. UCHAR8 FlashCycle4xIo;
  1037. UCHAR8 FlashCycleQpi;
  1038. UCHAR8 FlashCycleFastDual;
  1039. UCHAR8 FlashCycleFastQuad;
  1040. UCHAR8 FlashQuadEnable;
  1041. UCHAR8 FlashQuadDisable;
  1042. UCHAR8 FlashQpiEnable;
  1043. UCHAR8 FlashQpiDisable;
  1044. UINT32 FlashEraseCompltWait;
  1045. }FlashAttribute;
  1046. typedef enum _I2cBusID
  1047. {
  1048. I2CM0,
  1049. I2CS0,
  1050. MI2C,
  1051. SIMI2C0,
  1052. SIMI2C1,
  1053. SIMI2C2,
  1054. SIMI2CMAX,
  1055. }I2cBusID;
  1056. typedef enum _LedMode
  1057. {
  1058. LED_POWERON,
  1059. LED_POWERSTANDBY,
  1060. LED_POWEROFF,
  1061. LED_BURN_IN,
  1062. LED_BURN_OUT,
  1063. #if (HV_PROJECT_CONFIG_POWERON_AUTO_OTA == HV_CONFIG_ON)
  1064. LED_OTA_PROGRESSING,
  1065. LED_OTA_OK,
  1066. #endif
  1067. LED_MODEMAX
  1068. }LedMode;
  1069. typedef struct _PanelParam
  1070. {
  1071. UCHAR8 ucPanelName[HV_PANEL_NAME_BYTE_MAX]; /*最大40byte*/
  1072. USHORT16 usPanelHtotalType;
  1073. USHORT16 usPanelHtotalMax;
  1074. USHORT16 usPanelHtotalMin;
  1075. USHORT16 usPanelVtotalType;
  1076. USHORT16 usPanelVtotalMax;
  1077. USHORT16 usPanelVtotalMin;
  1078. USHORT16 usPanelHactive;
  1079. USHORT16 usPanelVactive;
  1080. USHORT16 usPanelFrameRateType;
  1081. USHORT16 usPanelFrameRateMax;
  1082. USHORT16 usPanelFrameRateMin;
  1083. UCHAR8 ucPanelHsyncWidth;
  1084. UCHAR8 ucPanelVsyncWidth;
  1085. UCHAR8 ucPanelHsyncBackPorch;
  1086. UCHAR8 ucPanelVsyncBackPorch;
  1087. UCHAR8 ucPanelColorDepth;
  1088. UCHAR8 ucPanelLaneNum;
  1089. UCHAR8 ucPanelPortNum;
  1090. UCHAR8 ucPanelLaneRate;
  1091. UINT32 uiPanelPixelClockType;
  1092. UINT32 uiPanelPixelClockMax;
  1093. UINT32 uiPanelPixelClockMin;
  1094. USHORT16 usPanelPowerOnTime;
  1095. USHORT16 usPanelDataOnTime;
  1096. USHORT16 usPanelBlkOnTime;
  1097. USHORT16 usPanelBlkOffTime;
  1098. USHORT16 usPanelDataOfTime;
  1099. USHORT16 usPanelPowerOffTime;
  1100. USHORT16 usPanelPllLockTime;
  1101. USHORT16 usPanelIdlePatternTime;
  1102. BOOL bPanelSscgEn;
  1103. USHORT16 usPanelSscgFreq; // 0-100(k)
  1104. UCHAR8 ucPanelSscgFrac; // 0-30(0%-3%)
  1105. UCHAR8 ucPanelEdpHpd0SoftMode;
  1106. UCHAR8 ucPanelEdpHpd1SoftMode;
  1107. BOOL bPanelEdpAux0PnSwapEn;
  1108. BOOL bPanelEdpAux1PnSwapEn;
  1109. BOOL bPanelPhy0MuxEn;
  1110. UCHAR8 ucPanelPhy0Lane0MuxSel;
  1111. UCHAR8 ucPanelPhy0Lane1MuxSel;
  1112. UCHAR8 ucPanelPhy0Lane2MuxSel;
  1113. UCHAR8 ucPanelPhy0Lane3MuxSel;
  1114. BOOL bPanelPhy0Lane0PnSwap;
  1115. BOOL bPanelPhy0Lane1PnSwap;
  1116. BOOL bPanelPhy0Lane2PnSwap;
  1117. BOOL bPanelPhy0Lane3PnSwap;
  1118. BOOL bPanelPhy1MuxEn;
  1119. UCHAR8 ucPanelPhy1Lane0MuxSel;
  1120. UCHAR8 ucPanelPhy1Lane1MuxSel;
  1121. UCHAR8 ucPanelPhy1Lane2MuxSel;
  1122. UCHAR8 ucPanelPhy1Lane3MuxSel;
  1123. BOOL bPanelPhy1Lane0PnSwap;
  1124. BOOL bPanelPhy1Lane1PnSwap;
  1125. BOOL bPanelPhy1Lane2PnSwap;
  1126. BOOL bPanelPhy1Lane3PnSwap;
  1127. BOOL bPanelPhy2MuxEn;
  1128. UCHAR8 ucPanelPhy2Lane0MuxSel;
  1129. UCHAR8 ucPanelPhy2Lane1MuxSel;
  1130. UCHAR8 ucPanelPhy2Lane2MuxSel;
  1131. UCHAR8 ucPanelPhy2Lane3MuxSel;
  1132. BOOL bPanelPhy2Lane0PnSwap;
  1133. BOOL bPanelPhy2Lane1PnSwap;
  1134. BOOL bPanelPhy2Lane2PnSwap;
  1135. BOOL bPanelPhy2Lane3PnSwap;
  1136. USHORT16 usPanelInchWidth;
  1137. USHORT16 usPanelInchHeight;
  1138. /* ldc 点屏参数 */
  1139. USHORT16 usPanelLdcVccOnTime;
  1140. USHORT16 usPanelLdcVinOnTime;
  1141. USHORT16 usPanelLdcPwmOnTime;
  1142. USHORT16 usPanelLdcLdEnTime;
  1143. USHORT16 usPanelLdcSpiOnTime;
  1144. USHORT16 usPanelLdcBlOnTime;
  1145. /* ldc 关屏参数 */
  1146. USHORT16 usPanelLdcBlOffTime;
  1147. USHORT16 usPanelLdcSpiOffTime;
  1148. USHORT16 usPanelLdcLdEnOffTime;
  1149. USHORT16 usPanelLdcPwmOffTime;
  1150. USHORT16 usPanelLdcVinOffTime;
  1151. USHORT16 usPanelLdcVccOffTime;
  1152. }PanelParam;
  1153. typedef struct _PanelControl
  1154. {
  1155. VOID (*pfPanelInit)(const PanelParam* pstPanelParam);
  1156. VOID (*pfPanelEnable)(BOOL bEn);
  1157. Status (*pfGetPanelStatus)(VOID);
  1158. VOID (*pfSetMNTuSize)(UINT32 uiEdpTuDataSize, UINT32 uiMvid);
  1159. VOID (*pfCalMNTuSize)(VideoConfigParams* pstVideoConfigParams, const PanelParam *pstPanelParam, UINT32 uiClock);
  1160. BOOL (*pfCheckPanelExist)(VOID);
  1161. VOID (*pfPanelIrqEnable)(EdpHpdPortIndex enHpdPort);
  1162. VOID (*pfPanelIrqDisable)(EdpHpdPortIndex enHpdPort);
  1163. }__attribute__((aligned(4)))PanelControl;
  1164. typedef struct _GamutSet
  1165. {
  1166. USHORT16 usCoef_R_r;
  1167. USHORT16 usCoef_G_r;
  1168. USHORT16 usCoef_B_r;
  1169. USHORT16 usCoef_R_g;
  1170. USHORT16 usCoef_G_g;
  1171. USHORT16 usCoef_B_g;
  1172. USHORT16 usCoef_R_b;
  1173. USHORT16 usCoef_G_b;
  1174. USHORT16 usCoef_B_b;
  1175. USHORT16 usOsdCoef_R_r;
  1176. USHORT16 usOsdCoef_G_r;
  1177. USHORT16 usOsdCoef_B_r;
  1178. USHORT16 usOsdCoef_R_g;
  1179. USHORT16 usOsdCoef_G_g;
  1180. USHORT16 usOsdCoef_B_g;
  1181. USHORT16 usOsdCoef_R_b;
  1182. USHORT16 usOsdCoef_G_b;
  1183. USHORT16 usOsdCoef_B_b;
  1184. }GamutSet;
  1185. typedef struct _GamutOffset
  1186. {
  1187. UINT32 uiOfsOutR;
  1188. UINT32 uiOfsOutG;
  1189. UINT32 uiOfsOutB;
  1190. }GamutOffset;
  1191. typedef struct _BrightnessOsdSet
  1192. {
  1193. UINT32 BrightOsdStart;
  1194. UINT32 BrightOsdMidl;
  1195. UINT32 BrightOsdEnd;
  1196. UINT32 BrightDrvforOsdStart;
  1197. UINT32 BrightDrvforOsdMidl;
  1198. UINT32 BrightDrvforOsdEnd;
  1199. USHORT16 BrightforHdrMax;
  1200. USHORT16 BrightforPart1;
  1201. USHORT16 BrightforPart2;
  1202. USHORT16 BrightforPart3;
  1203. }BrightnessOsdSet;
  1204. typedef enum _OsdRotationType
  1205. {
  1206. OSD_ROTATION_NONE,
  1207. OSD_ROTATION_90,
  1208. OSD_ROTATION_180,
  1209. OSD_ROTATION_270,
  1210. } OsdRotationType;
  1211. typedef enum _HotfixMainType
  1212. {
  1213. HOTFIX_MAIN_BOOT,
  1214. HOTFIX_MAIN_CHANNEL,
  1215. HOTFIX_MAIN_HDMI0,
  1216. HOTFIX_MAIN_HDMI1,
  1217. HOTFIX_MAIN_DP,
  1218. HOTFIX_MAIN_OSD,
  1219. HOTFIX_MAIN_PQ,
  1220. HOTFIX_MAIN_TX,
  1221. HOTFIX_MAIN_DPU,
  1222. HOTFIX_MAIN_VGA,
  1223. HOTFIX_MAIN_HDCP0,
  1224. HOTFIX_MAIN_HDCP1,
  1225. HOTFIX_MAIN_TYPEC,
  1226. HOTFIX_MAIN_USB,
  1227. }HotfixMainType;
  1228. typedef enum _HotfixBootType
  1229. {
  1230. HOTFIX_BOOT_CLK,
  1231. HOTFIX_BOOT_MAIN,
  1232. HOTFIX_BOOT_STANDBY
  1233. }HotfixBootType;
  1234. typedef enum _HotfixHDMIType
  1235. {
  1236. HOTFIX_HDMI_INIT,
  1237. HOTFIX_HDMI_IDLE,
  1238. HOTFIX_HDMI_WAIT_SYNC,
  1239. HOTFIX_HDMI_SYNC_OK,
  1240. HOTFIX_HDMI_DISPLAY_RDY,
  1241. HOTFIX_HDMI_WAIT_FAST_LOCK,
  1242. HOTFIX_HDMI_FAST_LOCKED,
  1243. HOTFIX_HDMI_WAIT_EQ_DONE,
  1244. HOTFIX_HDMI_TIMING_CHG,
  1245. HOTFIX_HDMI_TIMING_CHG_STILL,
  1246. HOTFIX_HDMI_TRAINING_DONE,
  1247. HOTFIX_HDMI_SIGNAL_LOSS,
  1248. HOTFIX_HDMI_VRR_ENTER,
  1249. HOTFIX_HDMI_VRR_EXIT,
  1250. HOTFIX_HDMI_HDR_CHG,
  1251. HOTFIX_HDMI_COLOR_CHG,
  1252. HOTFIX_HDMI_SET_HPD_HIGH,
  1253. HOTFIX_HDMI_SET_HPD_LOW,
  1254. HOTFIX_HDMI_RESET_AUDIO_FIFO,
  1255. HOTFIX_HDMI_WAITSYNC_TIMEOUT,
  1256. HOTFIX_HDMI_SYNCOK_TIMEOUT,
  1257. HOTFIX_HDMI_DVI_MODE,
  1258. HOTFIX_HDMI_INTERLACE_MODE,
  1259. HOTFIX_HDMI_PKT_ERR,
  1260. HOTFIX_HDMI_HDCP_SYNC,
  1261. HOTFIX_HDMI_HDCP_1X_AUTH_START,
  1262. HOTFIX_HDMI_HDCP_1X_AUTH_DONE,
  1263. HOTFIX_HDMI_HDCP_2X_AUTH_START,
  1264. HOTFIX_HDMI_HDCP_2X_AUTH_DONE,
  1265. HOTFIX_HDMI_HDCP_EDID_UPDATE,
  1266. HOTFIX_HDMI_END
  1267. }HotfixHDMIType;
  1268. typedef enum _HotfixHDCPType
  1269. {
  1270. HOTFIX_HDCP_INIT,
  1271. HOTFIX_HDCP_1X_AUTH_START,
  1272. HOTFIX_HDCP_1X_AUTH_DONE,
  1273. HOTFIX_HDCP_2X_INIT,
  1274. HOTFIX_HDCP_2X_NO_STORE_KM,
  1275. HOTFIX_HDCP_2X_STORED_KM,
  1276. HOTFIX_HDCP_2X_RD_HPRIME,
  1277. HOTFIX_HDCP_2X_LC_INIT,
  1278. HOTFIX_HDCP_2X_SND_EKS,
  1279. HOTFIX_HDCP_END
  1280. }HotfixHDCPType;
  1281. typedef enum _HotfixDPType
  1282. {
  1283. HOTFIX_DP0_INIT,
  1284. HOTFIX_DP1_INIT,
  1285. HOTFIX_DP0_IDLESTART,
  1286. HOTFIX_DP1_IDLESTART,
  1287. HOTFIX_DP0_TRAININGDONE,
  1288. HOTFIX_DP1_TRAININGDONE,
  1289. HOTFIX_DP0_TRAININGFAIL,
  1290. HOTFIX_DP1_TRAININGFAIL,
  1291. HOTFIX_DP0_DISPLAYREADY,
  1292. HOTFIX_DP1_DISPLAYREADY,
  1293. HOTFIX_DP0_POWERON,
  1294. HOTFIX_DP1_POWERON,
  1295. HOTFIX_DP_END
  1296. }HotfixDPType;
  1297. #endif