diff options
author | Boyuan Zhang <boyuan.zhang@amd.com> | 2020-10-02 15:00:28 -0400 |
---|---|---|
committer | Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> | 2020-11-04 09:21:40 +0100 |
commit | 024be710a72a3b20ae3c6bbe90c6bac790d81a02 (patch) | |
tree | ba8f0f1b47d462cd61011f1ccb238b5334e9428a | |
parent | b9753fdc581ac48f00b12fbc41e98853cd3d728a (diff) |
radeon/vcn: add defines for drm message buffer
Add defines and structure for drm message buffer.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7006>
-rw-r--r-- | src/gallium/drivers/radeon/radeon_vcn_dec.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeon/radeon_vcn_dec.h b/src/gallium/drivers/radeon/radeon_vcn_dec.h index 839dc25fb15..26a3b990833 100644 --- a/src/gallium/drivers/radeon/radeon_vcn_dec.h +++ b/src/gallium/drivers/radeon/radeon_vcn_dec.h @@ -107,6 +107,7 @@ #define RDECODE_MESSAGE_NOT_SUPPORTED 0x00000000 #define RDECODE_MESSAGE_CREATE 0x00000001 #define RDECODE_MESSAGE_DECODE 0x00000002 +#define RDECODE_MESSAGE_DRM 0x00000003 #define RDECODE_MESSAGE_AVC 0x00000006 #define RDECODE_MESSAGE_VC1 0x00000007 #define RDECODE_MESSAGE_MPEG2_VLD 0x0000000A @@ -249,6 +250,49 @@ #define RDECODE_FRAME_HDR_INFO_VP9_FRAME_TYPE_MASK (0x00000002) #define RDECODE_FRAME_HDR_INFO_VP9_SHOW_EXISTING_FRAME_MASK (0x00000001) +/* Drm definitions */ +#define DRM_CMD_KEY_SHIFT 0 +#define DRM_CMD_CNT_KEY_SHIFT 1 +#define DRM_CMD_CNT_DATA_SHIFT 2 +#define DRM_CMD_OFFSET_SHIFT 3 +#define DRM_CMD_SESSION_SEL_SHIFT 4 +#define DRM_CMD_UNWRAP_KEY_SHIFT 8 +#define DRM_CMD_GEN_MASK_SHIFT 9 +#define DRM_CMD_ALGORITHM_SHIFT 10 +#define DRM_CMD_BYTE_MASK_SHIFT 16 +#define DRM_CMD_DRM_BYPASS_SHIFT 31 + +#define DRM_CMD_KEY_MASK (0x00000001) +#define DRM_CMD_CNT_KEY_MASK (0x00000002) +#define DRM_CMD_CNT_DATA_MASK (0x00000004) +#define DRM_CMD_OFFSET_MASK (0x00000008) +#define DRM_CMD_SESSION_SEL_MASK (0x000000F0) +#define DRM_CMD_UNWRAP_KEY_MASK (0x00000100) +#define DRM_CMD_GEN_MASK_MASK (0x00000200) +#define DRM_CMD_ALGORITHM_MASK (0x00000C00) +#define DRM_CMD_BYTE_MASK_MASK (0x00FF0000) +#define DRM_CMD_DRM_BYPASS_MASK (0x80000000) + +/* Drm_cntl definitions */ +#define DRM_CNTL_ENC_BYTECNT_SHIFT (6) +#define DRM_CNTL_CLR_BYTECNT_SHIFT (16) +#define DRM_CNTL_BYPASS_SHIFT (24) +#define DRM_CNTL_PARTIAL_MODE_SHIFT (25) +#define DRM_CNTL_OFFSET_MODE_SHIFT (26) +#define DRM_CNTL_HEADER_MODE_SHIFT (27) +#define DRM_CNTL_HEADER_BYTECNT_SHIFT (28) + +#define DRM_CNTL_ENC_BYTECNT_MASK (0x00000FC0) +#define DRM_CNTL_CLR_BYTECNT_MASK (0x003F0000) +#define DRM_CNTL_BYPASS_MASK (0x01000000) +#define DRM_CNTL_PARTIAL_MODE_MASK (0x02000000) +#define DRM_CNTL_OFFSET_MODE_MASK (0x04000000) +#define DRM_CNTL_HEADER_MODE_MASK (0x08000000) +#define DRM_CNTL_HEADER_BYTECNT_MASK (0xF0000000) + +#define SAMU_DRM_DISABLE 0x00000000 +#define SAMU_DRM_ENABLE 0x00000001 + typedef struct rvcn_dec_message_index_s { unsigned int message_id; unsigned int offset; @@ -321,6 +365,16 @@ typedef struct rvcn_dec_message_decode_s { unsigned char dpbReserved[3]; } rvcn_dec_message_decode_t; +typedef struct rvcn_dec_message_drm_s { + unsigned int drm_key[4]; + unsigned int drm_counter[4]; + unsigned int drm_wrapped_key[4]; + unsigned int drm_offset; + unsigned int drm_cmd; + unsigned int drm_cntl; + unsigned int drm_reserved; +} rvcn_dec_message_drm_t; + typedef struct { unsigned short viewOrderIndex; unsigned short viewId; |