lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250930040348.3702923-5-h.dewangan@samsung.com>
Date: Tue, 30 Sep 2025 09:33:23 +0530
From: Himanshu Dewangan <h.dewangan@...sung.com>
To: mchehab@...nel.org, robh@...nel.org, krzk+dt@...nel.org,
	conor+dt@...nel.org, sumit.semwal@...aro.org, christian.koenig@....com,
	alim.akhtar@...sung.com, manjun@...sung.com, nagaraju.s@...sung.com,
	ih0206.lee@...sung.com, jehyung.lee@...sung.com
Cc: linux-arm-kernel@...ts.infradead.org, linux-media@...r.kernel.org,
	devicetree@...r.kernel.org, linux-samsung-soc@...r.kernel.org,
	linux-kernel@...r.kernel.org, dri-devel@...ts.freedesktop.org,
	linaro-mm-sig@...ts.linaro.org, Himanshu Dewangan <h.dewangan@...sung.com>
Subject: [PATCH 04/29] media: mfc: Add full register map and bit definitions
 for MFC hardware

From: Nagaraju Siddineni <nagaraju.s@...sung.com>

Introduce mfc_regs_mfc.h header
Define all MFC register addresses, including common, decoder,
encoder, and NAL queue registers.

Provide bit‑field masks and shifts for command/status registers,
codec types, error codes, and feature flags.

Add detailed comments for each register group and macro to
improve readability and maintainability.

Signed-off-by: Nagaraju Siddineni <nagaraju.s@...sung.com>
Signed-off-by: Himanshu Dewangan <h.dewangan@...sung.com>
---
 .../samsung/exynos-mfc/base/mfc_regs_mfc.h    | 1002 +++++++++++++++++
 1 file changed, 1002 insertions(+)
 create mode 100644 drivers/media/platform/samsung/exynos-mfc/base/mfc_regs_mfc.h

diff --git a/drivers/media/platform/samsung/exynos-mfc/base/mfc_regs_mfc.h b/drivers/media/platform/samsung/exynos-mfc/base/mfc_regs_mfc.h
new file mode 100644
index 000000000000..d10d3fb478ef
--- /dev/null
+++ b/drivers/media/platform/samsung/exynos-mfc/base/mfc_regs_mfc.h
@@ -0,0 +1,1002 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later
+ *
+ * Copyright (c) 2025 Samsung Electronics Co., Ltd.
+ *              http://www.samsung.com
+ *
+ * mfc_batch.h file
+ *
+ * Nagaraju Siddineni, <nagaraju.s@...sung.com>
+ * Himanshu Dewangan, <h.dewangan@...sung.com>
+ */
+
+#ifndef __MFC_REGS_MFC_H
+#define __MFC_REGS_MFC_H __FILE__
+
+#define MFC_MMU_INTERRUPT_STATUS			0x0060
+#define MFC_MMU_FAULT_TRANS_INFO			0x0078
+#define MFC_MMU_FAULT_TRANS_INFO_RW_MASK		0x100000
+
+/* Codec Common Registers */
+#define MFC_REG_RISC_ON					0x0000
+#define MFC_REG_RISC2HOST_INT				0x003C
+#define MFC_REG_RISC_STATUS				0x0040
+#define MFC_REG_HOST2RISC_INT				0x0044
+#define MFC_REG_RISC_BASE_ADDRESS			0x0054
+#define MFC_REG_RISC_NONSECURE_BASE_ADDR		0x0068
+#define MFC_REG_FW1_BASE_ADDR				0x1000
+
+#define MFC_REG_MFC_FW_CLOCK				0x1060
+#define MFC_REG_MFC_RESET				0x1070
+
+#define MFC_REG_HOST2RISC_CMD				0x1100
+#define MFC_REG_RISC2HOST_CMD				0x1104
+
+#define MFC_REG_HWAPG_HOST_CTRL				0x11D8
+
+#define MFC_REG_MFC_BUS_STATUS				0x7018
+#define MFC_REG_MFC_RPEND				0x7028
+#define MFC_REG_MFC_WPEND				0x702C
+#define MFC_REG_MFC_BUS_RESET_CTRL			0x7110
+#define MFC_REG_MFC_OFF					0x7120
+#define MFC_REG_MFC_STATE				0x7124
+
+#define MFC_REG_FW_VERSION				0xF000
+#define MFC_REG_INSTANCE_ID				0xF008
+#define MFC_REG_CODEC_TYPE				0xF00C
+#define MFC_REG_CONTEXT_MEM_ADDR			0xF014
+#define MFC_REG_CONTEXT_MEM_SIZE			0xF018
+#define MFC_REG_SHARED_MEM_ADDR				0xF01C
+#define MFC_REG_PIXEL_FORMAT				0xF020
+
+#define MFC_REG_METADATA_ENABLE				0xF024
+#define MFC_REG_MFC_VERSION				0xF028
+#define MFC_REG_DBG_INFO_ENABLE				0xF02C
+#define MFC_REG_DBG_BUFFER_ADDR				0xF030
+#define MFC_REG_DBG_BUFFER_SIZE				0xF034
+
+#define MFC_REG_CODEC_CONTROL				0xF038
+#define MFC_REG_TIMEOUT_VALUE				0xF03C
+#define MFC_REG_HED_SHARED_MEM_ADDR			0xF040
+
+/* NAL QUEUE */
+#define MFC_REG_NAL_QUEUE_INPUT_ADDR			0xF044
+#define MFC_REG_NAL_QUEUE_INPUT_SIZE			0xF048
+#define MFC_REG_NAL_QUEUE_OUTPUT_ADDR			0xF04C
+#define MFC_REG_NAL_QUEUE_OUTPUT_SIZE			0xF050
+#define MFC_REG_NAL_QUEUE_INPUT_COUNT			0xF054
+
+#define MFC_REG_RET_INSTANCE_ID				0xF070
+#define MFC_REG_ERROR_CODE				0xF074
+#define MFC_REG_DBG_BUFFER_OUTPUT_SIZE			0xF078
+#define MFC_REG_METADATA_STATUS				0xF07C
+
+#define MFC_REG_DBG_INFO_STAGE_COUNTER			0xF088
+
+/* NAL QUEUE */
+#define MFC_REG_NAL_QUEUE_OUTPUT_COUNT			0xF08C
+#define MFC_REG_NAL_QUEUE_INPUT_EXE_COUNT		0xF090
+#define MFC_REG_NAL_QUEUE_INFO				0xF094
+#define MFC_REG_NAL_LL_IN_USE_BY_MFC			0xF098
+#define MFC_REG_NAL_LL_IN_USE_BY_DRV			0xF09C
+#define MFC_REG_NAL_LL_TURN				0xF0A0
+
+#define MFC_REG_FIRMWARE_STATUS_INFO			0xF0A4
+#define MFC_REG_PROCESSING_CYCLE			0xF0AC
+
+/* Decoder Registers */
+#define MFC_REG_D_CRC_CTRL				0xF0B0
+#define MFC_REG_D_DEC_OPTIONS				0xF0B4
+
+#define MFC_REG_D_DISPLAY_DELAY				0xF0B8
+
+#define MFC_REG_D_SET_FRAME_WIDTH			0xF0BC
+#define MFC_REG_D_SET_FRAME_HEIGHT			0xF0C0
+
+#define MFC_REG_D_SEI_ENABLE				0xF0C4
+
+#define MFC_REG_D_FORCE_PIXEL_VAL			0xF0C8
+
+/* Buffer setting registers */
+/* Session return */
+#define MFC_REG_D_MIN_NUM_DPB				0xF0F0
+#define MFC_REG_D_MIN_FIRST_PLANE_DPB_SIZE		0xF0F4
+#define MFC_REG_D_MIN_SECOND_PLANE_DPB_SIZE		0xF0F8
+#define MFC_REG_D_MIN_THIRD_PLANE_DPB_SIZE		0xF0FC
+#define MFC_REG_D_MIN_NUM_MV				0xF100
+#define MFC_REG_D_MVC_NUM_VIEWS				0xF104
+#define MFC_REG_D_MIN_SCRATCH_BUFFER_SIZE		0xF108
+#define MFC_REG_D_MIN_FIRST_PLANE_2BIT_DPB_SIZE		0xF10C
+#define MFC_REG_D_MIN_SECOND_PLANE_2BIT_DPB_SIZE	0xF110
+#define MFC_REG_D_POST_FILTER_LUMA_DPB0			0xF120
+#define MFC_REG_D_POST_FILTER_LUMA_DPB1			0xF124
+#define MFC_REG_D_POST_FILTER_CHROMA_DPB0		0xF128
+#define MFC_REG_D_POST_FILTER_CHROMA_DPB1		0xF12C
+
+/* Buffers */
+#define MFC_REG_D_NUM_DPB				0xF130
+#define MFC_REG_D_NUM_MV				0xF134
+#define MFC_REG_D_FIRST_PLANE_DPB_STRIDE_SIZE		0xF138
+#define MFC_REG_D_SECOND_PLANE_DPB_STRIDE_SIZE		0xF13C
+#define MFC_REG_D_THIRD_PLANE_DPB_STRIDE_SIZE		0xF140
+#define MFC_REG_D_FIRST_PLANE_DPB_SIZE			0xF144
+#define MFC_REG_D_SECOND_PLANE_DPB_SIZE			0xF148
+#define MFC_REG_D_THIRD_PLANE_DPB_SIZE			0xF14C
+#define MFC_REG_D_MV_BUFFER_SIZE			0xF150
+#define MFC_REG_D_INIT_BUFFER_OPTIONS			0xF154
+#define MFC_REG_D_FIRST_PLANE_DPB0			0xF160
+#define MFC_REG_D_SECOND_PLANE_DPB0			0xF260
+#define MFC_REG_D_THIRD_PLANE_DPB0			0xF360
+#define MFC_REG_D_MV_BUFFER0				0xF460
+#define MFC_REG_D_SCRATCH_BUFFER_ADDR			0xF560
+#define MFC_REG_D_SCRATCH_BUFFER_SIZE			0xF564
+#define MFC_REG_D_METADATA_BUFFER_ADDR			0xF568
+#define MFC_REG_D_METADATA_BUFFER_SIZE			0xF56C
+
+#define MFC_REG_D_STATIC_BUFFER_ADDR			0xF570
+#define MFC_REG_D_STATIC_BUFFER_SIZE			0xF574
+#define MFC_REG_D_FIRST_PLANE_2BIT_DPB_SIZE		0xF578
+#define MFC_REG_D_SECOND_PLANE_2BIT_DPB_SIZE		0xF57C
+#define MFC_REG_D_FIRST_PLANE_2BIT_DPB_STRIDE_SIZE	0xF580
+#define MFC_REG_D_SECOND_PLANE_2BIT_DPB_STRIDE_SIZE	0xF584
+
+#define MFC_REG_D_NAL_START_OPTIONS			0xF5AC
+
+/* Nal cmd */
+#define MFC_REG_D_CPB_BUFFER_ADDR			0xF5B0
+#define MFC_REG_D_CPB_BUFFER_SIZE			0xF5B4
+#define MFC_REG_D_AVAILABLE_DPB_FLAG_UPPER		0xF5B8
+#define MFC_REG_D_AVAILABLE_DPB_FLAG_LOWER		0xF5BC
+#define MFC_REG_D_CPB_BUFFER_OFFSET			0xF5C0
+#define MFC_REG_D_SLICE_IF_ENABLE			0xF5C4
+#define MFC_REG_D_PICTURE_TAG				0xF5C8
+#define MFC_REG_D_STREAM_DATA_SIZE			0xF5D0
+#define MFC_REG_D_DYNAMIC_DPB_FLAG_UPPER		0xF5D4
+#define MFC_REG_D_DYNAMIC_DPB_FLAG_LOWER		0xF5D8
+
+/* Nal return */
+#define MFC_REG_D_DISPLAY_FRAME_WIDTH			0xF600
+#define MFC_REG_D_DISPLAY_FRAME_HEIGHT			0xF604
+#define MFC_REG_D_DISPLAY_STATUS			0xF608
+#define MFC_REG_D_DISPLAY_FIRST_PLANE_ADDR		0xF60C
+#define MFC_REG_D_DISPLAY_SECOND_PLANE_ADDR		0xF610
+#define MFC_REG_D_DISPLAY_THIRD_PLANE_ADDR		0xF614
+#define MFC_REG_D_DISPLAY_FRAME_TYPE			0xF618
+#define MFC_REG_D_DISPLAY_CROP_INFO1			0xF61C
+#define MFC_REG_D_DISPLAY_CROP_INFO2			0xF620
+#define MFC_REG_D_DISPLAY_PICTURE_PROFILE		0xF624
+#define MFC_REG_D_DISPLAY_FIRST_PLANE_CRC		0xF628
+#define MFC_REG_D_DISPLAY_SECOND_PLANE_CRC		0xF62C
+#define MFC_REG_D_DISPLAY_THIRD_PLANE_CRC		0xF630
+#define MFC_REG_D_DISPLAY_ASPECT_RATIO			0xF634
+#define MFC_REG_D_DISPLAY_EXTENDED_AR			0xF638
+#define MFC_REG_D_DECODED_FRAME_WIDTH			0xF63C
+#define MFC_REG_D_DECODED_FRAME_HEIGHT			0xF640
+#define MFC_REG_D_DECODED_STATUS			0xF644
+#define MFC_REG_D_DECODED_FIRST_PLANE_ADDR		0xF648
+#define MFC_REG_D_DECODED_SECOND_PLANE_ADDR		0xF64C
+#define MFC_REG_D_DECODED_THIRD_PLANE_ADDR		0xF650
+#define MFC_REG_D_DECODED_FRAME_TYPE			0xF654
+#define MFC_REG_D_DECODED_CROP_INFO1			0xF658
+#define MFC_REG_D_DECODED_CROP_INFO2			0xF65C
+#define MFC_REG_D_DECODED_PICTURE_PROFILE		0xF660
+#define MFC_REG_D_DECODED_NAL_SIZE			0xF664
+#define MFC_REG_D_DECODED_FIRST_PLANE_CRC		0xF668
+#define MFC_REG_D_DECODED_SECOND_PLANE_CRC		0xF66C
+#define MFC_REG_D_DECODED_THIRD_PLANE_CRC		0xF670
+#define MFC_REG_D_RET_PICTURE_TAG_TOP			0xF674
+#define MFC_REG_D_RET_PICTURE_TAG_BOT			0xF678
+#define MFC_REG_D_RET_PICTURE_TIME_TOP			0xF67C
+#define MFC_REG_D_RET_PICTURE_TIME_BOT			0xF680
+#define MFC_REG_D_CHROMA_FORMAT				0xF684
+
+#define MFC_REG_D_VC1_INFO				0xF688
+#define MFC_REG_D_MPEG4_INFO				0xF68C
+#define MFC_REG_D_H264_INFO				0xF690
+#define MFC_REG_D_HEVC_INFO				0xF6A0
+#define MFC_REG_D_VP9_INFO				0xF6A4
+#define MFC_REG_D_AV1_INFO				0xF6AC
+
+#define MFC_REG_D_METADATA_ADDR_CONCEALED_MB		0xF6B0
+#define MFC_REG_D_METADATA_SIZE_CONCEALED_MB		0xF6B4
+#define MFC_REG_D_METADATA_ADDR_VC1_PARAM		0xF6B8
+#define MFC_REG_D_METADATA_SIZE_VC1_PARAM		0xF6BC
+#define MFC_REG_D_METADATA_ADDR_SEI_NAL			0xF6C0
+#define MFC_REG_D_METADATA_SIZE_SEI_NAL			0xF6C4
+#define MFC_REG_D_METADATA_ADDR_VUI			0xF6C8
+#define MFC_REG_D_METADATA_SIZE_VUI			0xF6CC
+#define MFC_REG_D_METADATA_ADDR_MVCVUI			0xF6D0
+#define MFC_REG_D_METADATA_SIZE_MVCVUI			0xF6D4
+
+#define MFC_REG_D_MVC_VIEW_ID				0xF6D8
+
+#define MFC_REG_D_SEI_AVAIL				0xF6DC
+#define MFC_REG_D_FRAME_PACK_ARRGMENT_ID		0xF6E0
+#define MFC_REG_D_FRAME_PACK_SEI_INFO			0xF6E4
+#define MFC_REG_D_FRAME_PACK_GRID_POS			0xF6E8
+
+#define MFC_REG_D_DISPLAY_RECOVERY_SEI_INFO		0xF6EC
+#define MFC_REG_D_DECODED_RECOVERY_SEI_INFO		0xF6F0
+
+#define MFC_REG_D_DISPLAY_FIRST_PLANE_2BIT_CRC		0xF6FC
+#define MFC_REG_D_DISPLAY_SECOND_PLANE_2BIT_CRC		0xF700
+#define MFC_REG_D_DECODED_FIRST_PLANE_2BIT_CRC		0xF704
+#define MFC_REG_D_DECODED_SECOND_PLANE_2BIT_CRC		0xF708
+
+#define MFC_REG_D_VIDEO_SIGNAL_TYPE			0xF70C
+#define MFC_REG_D_CONTENT_LIGHT_LEVEL_INFO_SEI		0xF710
+#define MFC_REG_D_MASTERING_DISPLAY_COLOUR_VOLUME_SEI_0	0xF714
+#define MFC_REG_D_MASTERING_DISPLAY_COLOUR_VOLUME_SEI_1	0xF718
+
+#define MFC_REG_D_USED_DPB_FLAG_UPPER			0xF720
+#define MFC_REG_D_USED_DPB_FLAG_LOWER			0xF724
+
+#define MFC_REG_D_MASTERING_DISPLAY_COLOUR_VOLUME_SEI_2	0xF728
+#define MFC_REG_D_MASTERING_DISPLAY_COLOUR_VOLUME_SEI_3	0xF72C
+#define MFC_REG_D_MASTERING_DISPLAY_COLOUR_VOLUME_SEI_4	0xF730
+#define MFC_REG_D_MASTERING_DISPLAY_COLOUR_VOLUME_SEI_5	0xF734
+
+#define MFC_REG_D_BLACK_BAR_START_POS			0xF738
+#define MFC_REG_D_BLACK_BAR_IMAGE_SIZE			0xF73C
+
+#define MFC_REG_D_DECODED_FRAME_COUNT			0xF740
+#define MFC_REG_D_DISPLAY_FRAME_COUNT			0xF744
+
+#define MFC_REG_D_DISPLAY_LUMA_ADDR			0xF60C
+#define MFC_REG_D_DISPLAY_CHROMA_ADDR			0xF610
+
+#define MFC_REG_D_DECODED_LUMA_ADDR			0xF648
+#define MFC_REG_D_DECODED_CHROMA_ADDR			0xF64C
+
+/* SEI NAL Metadata (reuse encoder register) */
+#define MFC_REG_D_PAYLOAD_TYPE				0xF770
+#define MFC_REG_D_PAYLOAD_SIZE				0xF774
+#define MFC_REG_D_PAYLOAD_DATA_0			0xF778
+
+/* Encoder Registers */
+#define MFC_REG_E_CROPPED_FRAME_WIDTH			0xF778
+#define MFC_REG_E_CROPPED_FRAME_HEIGHT			0xF77C
+#define MFC_REG_E_FRAME_CROP_OFFSET			0xF780
+#define MFC_REG_E_ENC_OPTIONS				0xF784
+#define MFC_REG_E_PICTURE_PROFILE			0xF788
+#define MFC_REG_E_VBV_BUFFER_SIZE			0xF78C
+#define MFC_REG_E_VBV_INIT_DELAY			0xF790
+#define MFC_REG_E_FIXED_PICTURE_QP			0xF794
+#define MFC_REG_E_RC_CONFIG				0xF798
+#define MFC_REG_E_RC_QP_BOUND				0xF79C
+#define MFC_REG_E_RC_QP_BOUND_PB			0xF7A0
+#define MFC_REG_E_RC_MODE				0xF7A4
+
+#define MFC_REG_E_RC_OPTIONS				0xF7A8
+#define MFC_REG_E_PADDING_CTRL				0xF7AC
+#define MFC_REG_E_AIR_THRESHOLD				0xF7B0
+
+#define MFC_REG_E_MV_HOR_RANGE				0xF7B4
+#define MFC_REG_E_MV_VER_RANGE				0xF7B8
+
+#define MFC_REG_E_HIGH_QUALITY_MODE			0xF7C0
+#define MFC_REG_E_VIDEO_SIGNAL_TYPE			0xF7C4
+
+#define MFC_REG_E_SAO_WEIGHT0				0xF7C8
+#define MFC_REG_E_SAO_WEIGHT1				0xF7CC
+
+#define MFC_REG_E_NUM_DPB				0xF890
+#define MFC_REG_E_MIN_SCRATCH_BUFFER_SIZE		0xF894
+#define MFC_REG_E_MIN_LUMA_DPB_SIZE			0xF898
+#define MFC_REG_E_MIN_CHROMA_DPB_SIZE			0xF89C
+
+#define MFC_REG_E_LUMA_DPB				0xF8C0
+#define MFC_REG_E_CHROMA_DPB				0xF904
+#define MFC_REG_E_ME_BUFFER				0xF948
+
+#define MFC_REG_E_SCRATCH_BUFFER_ADDR			0xF98C
+#define MFC_REG_E_SCRATCH_BUFFER_SIZE			0xF990
+#define MFC_REG_E_TMV_BUFFER0				0xF994
+#define MFC_REG_E_TMV_BUFFER1				0xF998
+#define MFC_REG_E_IR_BUFFER_ADDR			0xF99C
+#define MFC_REG_E_TILE1_STREAM_BUFFER_ADDR		0xF9A0
+#define MFC_REG_E_TILE1_STREAM_BUFFER_SIZE		0xF9A4
+#define MFC_REG_E_SOURCE_VOTF_BUF_INDEX			0xF9CC
+#define MFC_REG_E_SOURCE_FIRST_2BIT_ADDR		0xF9D0
+#define MFC_REG_E_SOURCE_SECOND_2BIT_ADDR		0xF9D4
+#define MFC_REG_E_SOURCE_FIRST_2BIT_STRIDE		0xF9D8
+#define MFC_REG_E_SOURCE_SECOND_2BIT_STRIDE		0xF9DC
+#define MFC_REG_E_SOURCE_FIRST_ADDR			0xF9E0
+#define MFC_REG_E_SOURCE_SECOND_ADDR			0xF9E4
+#define MFC_REG_E_SOURCE_THIRD_ADDR			0xF9E8
+#define MFC_REG_E_SOURCE_FIRST_STRIDE			0xF9EC
+#define MFC_REG_E_SOURCE_SECOND_STRIDE			0xF9F0
+#define MFC_REG_E_SOURCE_THIRD_STRIDE			0xF9F4
+#define MFC_REG_E_STREAM_BUFFER_ADDR			0xF9F8
+#define MFC_REG_E_STREAM_BUFFER_SIZE			0xF9FC
+#define MFC_REG_E_ROI_BUFFER_ADDR			0xFA00
+
+#define MFC_REG_E_PARAM_CHANGE				0xFA04
+#define MFC_REG_E_IR_SIZE				0xFA08
+#define MFC_REG_E_GOP_CONFIG				0xFA0C
+#define MFC_REG_E_MSLICE_MODE				0xFA10
+#define MFC_REG_E_MSLICE_SIZE_MB			0xFA14
+#define MFC_REG_E_MSLICE_SIZE_BITS			0xFA18
+#define MFC_REG_E_FRAME_INSERTION			0xFA1C
+
+#define MFC_REG_E_RC_FRAME_RATE				0xFA20
+#define MFC_REG_E_RC_BIT_RATE				0xFA24
+#define MFC_REG_E_RC_ROI_CTRL				0xFA2C
+#define MFC_REG_E_PICTURE_TAG				0xFA30
+#define MFC_REG_E_BIT_COUNT_ENABLE			0xFA34
+#define MFC_REG_E_MAX_BIT_COUNT				0xFA38
+#define MFC_REG_E_MIN_BIT_COUNT				0xFA3C
+
+#define MFC_REG_E_METADATA_BUFFER_ADDR			0xFA40
+#define MFC_REG_E_METADATA_BUFFER_SIZE			0xFA44
+
+#define MFC_REG_E_ENCODING_ORDER_TIME_INFO		0xFA50
+#define MFC_REG_E_ENCODING_ORDER_INFO			0xFA54
+#define MFC_REG_E_STREAM_BUFFER_OFFSET			0xFA58
+#define MFC_REG_E_GOP_CONFIG2				0xFA5C
+#define MFC_REG_E_WEIGHT_FOR_WEIGHTED_PREDICTION	0xFA60
+#define MFC_REG_E_TIME_STAMP_DELTA			0xFA68
+
+#define MFC_REG_E_ENCODED_SOURCE_FIRST_ADDR		0xFA70
+#define MFC_REG_E_ENCODED_SOURCE_SECOND_ADDR		0xFA74
+#define MFC_REG_E_ENCODED_SOURCE_THIRD_ADDR		0xFA78
+#define MFC_REG_E_SOURCE_STAT_ADDR			0xFA7C
+#define MFC_REG_E_STREAM_SIZE				0xFA80
+#define MFC_REG_E_SLICE_TYPE				0xFA84
+#define MFC_REG_E_PICTURE_COUNT				0xFA88
+#define MFC_REG_E_RET_PICTURE_TAG			0xFA8C
+#define MFC_REG_E_TILE0_STREAM_SIZE			0xFA94
+#define MFC_REG_E_TILE1_STREAM_SIZE			0xFA98
+
+#define MFC_REG_E_RECON_LUMA_DPB_ADDR			0xFA9C
+#define MFC_REG_E_RECON_CHROMA_DPB_ADDR			0xFAA0
+#define MFC_REG_E_METADATA_ADDR_ENC_SLICE		0xFAA4
+#define MFC_REG_E_METADATA_SIZE_ENC_SLICE		0xFAA8
+#define MFC_REG_E_SUM_SKIP_MB				0xFAAC
+#define MFC_REG_E_SUM_INTRA_MB				0xFAB0
+#define MFC_REG_E_SUM_ZERO_MV_MB			0xFAB4
+
+#define MFC_REG_E_HDR10_PLUS_INFO			0xFAE8
+#define MFC_REG_E_NAL_DONE_INFO				0xFAEC
+
+#define MFC_REG_E_MPEG4_OPTIONS				0xFB10
+#define MFC_REG_E_MPEG4_HEC_PERIOD			0xFB14
+
+#define MFC_REG_E_H264_HD_SVC_EXTENSION_0		0xFB44
+#define MFC_REG_E_H264_HD_SVC_EXTENSION_1		0xFB48
+#define MFC_REG_E_ASPECT_RATIO				0xFB4C
+#define MFC_REG_E_EXTENDED_SAR				0xFB50
+
+#define MFC_REG_E_H264_OPTIONS				0xFB54
+#define MFC_REG_E_H264_OPTIONS_2			0xFB58
+#define MFC_REG_E_H264_LF_ALPHA_OFFSET			0xFB5C
+#define MFC_REG_E_H264_LF_BETA_OFFSET			0xFB60
+#define MFC_REG_E_H264_REFRESH_PERIOD			0xFB64
+
+#define MFC_REG_E_H264_FMO_SLICE_GRP_MAP_TYPE		0xFB68
+#define MFC_REG_E_H264_FMO_NUM_SLICE_GRP_MINUS1		0xFB6C
+#define MFC_REG_E_H264_FMO_SLICE_GRP_CHANGE_DIR		0xFB70
+#define MFC_REG_E_H264_FMO_SLICE_GRP_CHANGE_RATE_MINUS1	0xFB74
+#define MFC_REG_E_H264_FMO_RUN_LENGTH_MINUS1_0		0xFB78
+#define MFC_REG_E_H264_FMO_RUN_LENGTH_MINUS1_1		0xFB7C
+#define MFC_REG_E_H264_FMO_RUN_LENGTH_MINUS1_2		0xFB80
+#define MFC_REG_E_H264_FMO_RUN_LENGTH_MINUS1_3		0xFB84
+
+#define MFC_REG_E_H264_ASO_SLICE_ORDER_0		0xFB88
+#define MFC_REG_E_H264_ASO_SLICE_ORDER_1		0xFB8C
+#define MFC_REG_E_H264_ASO_SLICE_ORDER_2		0xFB90
+#define MFC_REG_E_H264_ASO_SLICE_ORDER_3		0xFB94
+#define MFC_REG_E_H264_ASO_SLICE_ORDER_4		0xFB98
+#define MFC_REG_E_H264_ASO_SLICE_ORDER_5		0xFB9C
+#define MFC_REG_E_H264_ASO_SLICE_ORDER_6		0xFBA0
+#define MFC_REG_E_H264_ASO_SLICE_ORDER_7		0xFBA4
+#define MFC_REG_E_H264_CHROMA_QP_OFFSET			0xFBA8
+
+#define MFC_REG_E_NUM_T_LAYER				0xFBAC
+#define MFC_REG_E_HIERARCHICAL_QP_LAYER0		0xFBB0
+#define MFC_REG_E_HIERARCHICAL_QP_LAYER1		0xFBB4
+#define MFC_REG_E_HIERARCHICAL_QP_LAYER2		0xFBB8
+#define MFC_REG_E_HIERARCHICAL_QP_LAYER3		0xFBBC
+#define MFC_REG_E_HIERARCHICAL_QP_LAYER4		0xFBC0
+#define MFC_REG_E_HIERARCHICAL_QP_LAYER5		0xFBC4
+#define MFC_REG_E_HIERARCHICAL_QP_LAYER6		0xFBC8
+
+/* For backward compatibility */
+#define MFC_REG_E_H264_FRAME_PACKING_SEI_INFO		0xFC4C
+
+#define MFC_REG_E_H264_NAL_CONTROL			0xFD14
+#define MFC_REG_E_HIERARCHICAL_BIT_RATE_LAYER0		0xFD18
+#define MFC_REG_E_HIERARCHICAL_BIT_RATE_LAYER1		0xFD1C
+#define MFC_REG_E_HIERARCHICAL_BIT_RATE_LAYER2		0xFD20
+#define MFC_REG_E_HIERARCHICAL_BIT_RATE_LAYER3		0xFD24
+#define MFC_REG_E_HIERARCHICAL_BIT_RATE_LAYER4		0xFD28
+#define MFC_REG_E_HIERARCHICAL_BIT_RATE_LAYER5		0xFD2C
+#define MFC_REG_E_HIERARCHICAL_BIT_RATE_LAYER6		0xFD30
+
+#define MFC_REG_E_MVC_FRAME_QP_VIEW1			0xFD40
+#define MFC_REG_E_MVC_RC_FRAME_RATE_VIEW1		0xFD44
+#define MFC_REG_E_MVC_RC_BIT_RATE_VIEW1			0xFD48
+#define MFC_REG_E_MVC_RC_QBOUND_VIEW1			0xFD4C
+#define MFC_REG_E_MVC_RC_MODE_VIEW1			0xFD50
+#define MFC_REG_E_MVC_INTER_VIEW_PREDICTION_ON		0xFD80
+
+#define MFC_REG_E_VP9_OPTION				0xFD90
+#define MFC_REG_E_VP9_FILTER_OPTION			0xFD94
+#define MFC_REG_E_VP9_GOLDEN_FRAME_OPTION		0xFD98
+#define MFC_REG_E_VP8_OPTION				0xFDB0
+#define MFC_REG_E_VP8_FILTER_OPTION			0xFDB4
+#define MFC_REG_E_VP8_GOLDEN_FRAME_OPTION		0xFDB8
+
+#define MFC_REG_E_HEVC_OPTIONS_2			0xFDC4
+
+#define MFC_REG_E_HEVC_OPTIONS				0xFDD4
+#define MFC_REG_E_HEVC_REFRESH_PERIOD			0xFDD8
+#define MFC_REG_E_HEVC_CHROMA_QP_OFFSET			0xFDDC
+#define MFC_REG_E_HEVC_LF_BETA_OFFSET_DIV2		0xFDE0
+#define MFC_REG_E_HEVC_LF_TC_OFFSET_DIV2		0xFDE4
+#define MFC_REG_E_HEVC_NAL_CONTROL			0xFDE8
+
+#define MFC_REG_E_VP8_NAL_CONTROL			0xFDF0
+#define MFC_REG_E_VP9_NAL_CONTROL			0xFDF4
+#define MFC_REG_E_CONTENT_LIGHT_LEVEL_INFO_SEI		0xFDF8
+#define MFC_REG_E_MASTERING_DISPLAY_COLOUR_VOLUME_SEI_0	0xFDFC
+#define MFC_REG_E_MASTERING_DISPLAY_COLOUR_VOLUME_SEI_1	0xFE00
+#define MFC_REG_E_MASTERING_DISPLAY_COLOUR_VOLUME_SEI_2	0xFE04
+#define MFC_REG_E_MASTERING_DISPLAY_COLOUR_VOLUME_SEI_3	0xFE08
+#define MFC_REG_E_MASTERING_DISPLAY_COLOUR_VOLUME_SEI_4	0xFE0C
+#define MFC_REG_E_MASTERING_DISPLAY_COLOUR_VOLUME_SEI_5	0xFE10
+
+#define MFC_REG_E_ST_2094_40_SEI_0			0xFE14
+#define MFC_REG_E_ST_2094_40_SEI_1			0xFE18
+#define MFC_REG_E_ST_2094_40_SEI_2			0xFE1C
+#define MFC_REG_E_ST_2094_40_SEI_3			0xFE20
+#define MFC_REG_E_ST_2094_40_SEI_4			0xFE24
+#define MFC_REG_E_ST_2094_40_SEI_5			0xFE28
+#define MFC_REG_E_ST_2094_40_SEI_6			0xFE2C
+#define MFC_REG_E_ST_2094_40_SEI_7			0xFE30
+#define MFC_REG_E_ST_2094_40_SEI_8			0xFE34
+#define MFC_REG_E_ST_2094_40_SEI_9			0xFE38
+#define MFC_REG_E_ST_2094_40_SEI_10			0xFE3C
+#define MFC_REG_E_ST_2094_40_SEI_11			0xFE40
+#define MFC_REG_E_ST_2094_40_SEI_12			0xFE44
+#define MFC_REG_E_ST_2094_40_SEI_13			0xFE48
+#define MFC_REG_E_ST_2094_40_SEI_14			0xFE4C
+#define MFC_REG_E_ST_2094_40_SEI_15			0xFE50
+#define MFC_REG_E_ST_2094_40_SEI_16			0xFE54
+#define MFC_REG_E_ST_2094_40_SEI_17			0xFE58
+#define MFC_REG_E_ST_2094_40_SEI_18			0xFE5C
+#define MFC_REG_E_ST_2094_40_SEI_19			0xFE60
+#define MFC_REG_E_ST_2094_40_SEI_20			0xFE64
+#define MFC_REG_E_ST_2094_40_SEI_21			0xFE68
+#define MFC_REG_E_ST_2094_40_SEI_22			0xFE6C
+#define MFC_REG_E_ST_2094_40_SEI_23			0xFE70
+#define MFC_REG_E_ST_2094_40_SEI_24			0xFE74
+#define MFC_REG_E_ST_2094_40_SEI_25			0xFE78
+#define MFC_REG_E_ST_2094_40_SEI_26			0xFE7C
+#define MFC_REG_E_ST_2094_40_SEI_27			0xFE80
+#define MFC_REG_E_ST_2094_40_SEI_28			0xFE84
+#define MFC_REG_E_ST_2094_40_SEI_29			0xFE88
+
+#define MFC_REG_D_ST_2094_40_SEI_0			0xFF00
+#define MFC_REG_D_ST_2094_40_SEI_1			0xFF04
+#define MFC_REG_D_ST_2094_40_SEI_2			0xFF08
+#define MFC_REG_D_ST_2094_40_SEI_3			0xFF0C
+#define MFC_REG_D_ST_2094_40_SEI_4			0xFF10
+#define MFC_REG_D_ST_2094_40_SEI_5			0xFF14
+#define MFC_REG_D_ST_2094_40_SEI_6			0xFF18
+#define MFC_REG_D_ST_2094_40_SEI_7			0xFF1C
+#define MFC_REG_D_ST_2094_40_SEI_8			0xFF20
+#define MFC_REG_D_ST_2094_40_SEI_9			0xFF24
+#define MFC_REG_D_ST_2094_40_SEI_10			0xFF28
+#define MFC_REG_D_ST_2094_40_SEI_11			0xFF2C
+#define MFC_REG_D_ST_2094_40_SEI_12			0xFF30
+#define MFC_REG_D_ST_2094_40_SEI_13			0xFF34
+#define MFC_REG_D_ST_2094_40_SEI_14			0xFF38
+#define MFC_REG_D_ST_2094_40_SEI_15			0xFF3C
+#define MFC_REG_D_ST_2094_40_SEI_16			0xFF40
+#define MFC_REG_D_ST_2094_40_SEI_17			0xFF44
+#define MFC_REG_D_ST_2094_40_SEI_18			0xFF48
+#define MFC_REG_D_ST_2094_40_SEI_19			0xFF4C
+#define MFC_REG_D_ST_2094_40_SEI_20			0xFF50
+#define MFC_REG_D_ST_2094_40_SEI_21			0xFF54
+#define MFC_REG_D_ST_2094_40_SEI_22			0xFF58
+#define MFC_REG_D_ST_2094_40_SEI_23			0xFF5C
+#define MFC_REG_D_ST_2094_40_SEI_24			0xFF60
+#define MFC_REG_D_ST_2094_40_SEI_25			0xFF64
+#define MFC_REG_D_ST_2094_40_SEI_26			0xFF68
+#define MFC_REG_D_ST_2094_40_SEI_27			0xFF6C
+#define MFC_REG_D_ST_2094_40_SEI_28			0xFF70
+#define MFC_REG_D_ST_2094_40_SEI_29			0xFF74
+
+/*
+ * Below It is valid only for AV1
+ * when FILM_GRAIN_AVAIL of D_SEI_AVAIL is enabled
+ */
+#define MFC_REG_D_FILM_GRAIN_0				0xFE00
+#define MFC_REG_D_FILM_GRAIN_1				0xFE04
+#define MFC_REG_D_FILM_GRAIN_2				0xFE08
+#define MFC_REG_D_FILM_GRAIN_3				0xFE0C
+#define MFC_REG_D_FILM_GRAIN_4				0xFE10
+#define MFC_REG_D_FILM_GRAIN_5				0xFE14
+#define MFC_REG_D_FILM_GRAIN_6				0xFE18
+#define MFC_REG_D_FILM_GRAIN_7				0xFE1C
+#define MFC_REG_D_FILM_GRAIN_8				0xFE20
+#define MFC_REG_D_FILM_GRAIN_9				0xFE24
+#define MFC_REG_D_FILM_GRAIN_10				0xFE28
+#define MFC_REG_D_FILM_GRAIN_11				0xFE2C
+#define MFC_REG_D_FILM_GRAIN_12				0xFE30
+#define MFC_REG_D_FILM_GRAIN_13				0xFE34
+#define MFC_REG_D_FILM_GRAIN_14				0xFE38
+#define MFC_REG_D_FILM_GRAIN_15				0xFE3C
+#define MFC_REG_D_FILM_GRAIN_16				0xFE40
+#define MFC_REG_D_FILM_GRAIN_17				0xFE44
+#define MFC_REG_D_FILM_GRAIN_18				0xFE48
+#define MFC_REG_D_FILM_GRAIN_19				0xFE4C
+#define MFC_REG_D_FILM_GRAIN_20				0xFE50
+#define MFC_REG_D_FILM_GRAIN_21				0xFE54
+#define MFC_REG_D_FILM_GRAIN_22				0xFE58
+#define MFC_REG_D_FILM_GRAIN_23				0xFE5C
+#define MFC_REG_D_FILM_GRAIN_24				0xFE60
+#define MFC_REG_D_FILM_GRAIN_25				0xFE64
+#define MFC_REG_D_FILM_GRAIN_26				0xFE68
+#define MFC_REG_D_FILM_GRAIN_27				0xFE6C
+#define MFC_REG_D_FILM_GRAIN_28				0xFE70
+#define MFC_REG_D_FILM_GRAIN_29				0xFE74
+#define MFC_REG_D_FILM_GRAIN_30				0xFE78
+#define MFC_REG_D_FILM_GRAIN_31				0xFE7C
+#define MFC_REG_D_FILM_GRAIN_32				0xFE80
+#define MFC_REG_D_FILM_GRAIN_33				0xFE84
+#define MFC_REG_D_FILM_GRAIN_34				0xFE88
+#define MFC_REG_D_FILM_GRAIN_35				0xFE8C
+#define MFC_REG_D_FILM_GRAIN_36				0xFE90
+#define MFC_REG_D_FILM_GRAIN_37				0xFE94
+#define MFC_REG_D_FILM_GRAIN_38				0xFE98
+#define MFC_REG_D_FILM_GRAIN_39				0xFE9C
+#define MFC_REG_D_FILM_GRAIN_40				0xFEA0
+#define MFC_REG_D_FILM_GRAIN_41				0xFEA4
+#define MFC_REG_D_FILM_GRAIN_42				0xFEA8
+#define MFC_REG_D_FILM_GRAIN_43				0xFEAC
+
+#define MFC0_REG_COMMON_CONTEXT_MEM_ADDR		0xFF90
+#define MFC0_REG_RISC_BASE_ADDR				0xFF98
+#define MFC1_REG_COMMON_CONTEXT_MEM_ADDR		0xFFDC
+
+#define MFC_REG_CLEAR_BEGIN				0xf000
+#define MFC_REG_CLEAR_COUNT				1024
+
+#define MFC0_REG_CONTEXT_FLUSH_DONE			0xFFA0
+
+/* Bit Definitions */
+/* 0x1100: MFC_REG_HOST2RISC_CMD */
+#define MFC_REG_H2R_CMD_EMPTY				0
+#define MFC_REG_H2R_CMD_SYS_INIT			1
+#define MFC_REG_H2R_CMD_OPEN_INSTANCE			2
+#define MFC_REG_H2R_CMD_SEQ_HEADER			3
+#define MFC_REG_H2R_CMD_INIT_BUFFERS			4
+#define MFC_REG_H2R_CMD_NAL_START			5
+#define MFC_REG_H2R_CMD_CLOSE_INSTANCE			6
+#define MFC_REG_H2R_CMD_SLEEP				7
+#define MFC_REG_H2R_CMD_WAKEUP				8
+#define MFC_REG_H2R_CMD_LAST_FRAME			9
+#define MFC_REG_H2R_CMD_DPB_FLUSH			10
+#define MFC_REG_H2R_CMD_NAL_ABORT			11
+#define MFC_REG_H2R_CMD_CACHE_FLUSH			12
+#define MFC_REG_H2R_CMD_NAL_QUEUE			13
+#define MFC_REG_H2R_CMD_STOP_QUEUE			14
+#define MFC_REG_H2R_CMD_NAL_LL				15
+#define MFC_REG_H2R_CMD_MOVE_INSTANCE			19
+
+#define MFC_REG_H2R_HWAPG_EN_FLAG           19
+#define MFC_REG_H2R_NAL_Q_OPT_FLAG			17
+#define MFC_REG_H2R_CACHE_FLUSH_FLAG			16
+
+/* 0x1104: MFC_REG_RISC2HOST_CMD */
+#define MFC_REG_RISC2HOST_CMD_MASK			0x1FFFF
+#define MFC_REG_R2H_CMD_EMPTY				0
+#define MFC_REG_R2H_CMD_SYS_INIT_RET			1
+#define MFC_REG_R2H_CMD_OPEN_INSTANCE_RET		2
+#define MFC_REG_R2H_CMD_SEQ_DONE_RET			3
+#define MFC_REG_R2H_CMD_INIT_BUFFERS_RET		4
+#define MFC_REG_R2H_CMD_CLOSE_INSTANCE_RET		6
+#define MFC_REG_R2H_CMD_SLEEP_RET			7
+#define MFC_REG_R2H_CMD_WAKEUP_RET			8
+#define MFC_REG_R2H_CMD_COMPLETE_SEQ_RET		9
+#define MFC_REG_R2H_CMD_DPB_FLUSH_RET			10
+#define MFC_REG_R2H_CMD_NAL_ABORT_RET			11
+#define MFC_REG_R2H_CMD_FW_STATUS_RET			12
+#define MFC_REG_R2H_CMD_FRAME_DONE_RET			13
+#define MFC_REG_R2H_CMD_FIELD_DONE_RET			14
+#define MFC_REG_R2H_CMD_SLICE_DONE_RET			15
+#define MFC_REG_R2H_CMD_ENC_BUFFER_FULL_RET		16
+#define MFC_REG_R2H_CMD_QUEUE_DONE_RET			17
+#define MFC_REG_R2H_CMD_COMPLETE_QUEUE_RET		18
+#define MFC_REG_R2H_CMD_MOVE_INSTANCE_RET		19
+#define MFC_REG_R2H_CMD_CACHE_FLUSH_RET			20
+#define MFC_REG_R2H_CMD_ERR_RET				32
+
+/* 0xF000: MFC_REG_FW_VERSION */
+#define MFC_REG_FW_VER_INFO_MASK			0xFF
+#define MFC_REG_FW_VER_INFO_SHFT			24
+#define MFC_REG_FW_VER_YEAR_MASK			0xFF
+#define MFC_REG_FW_VER_YEAR_SHFT			16
+#define MFC_REG_FW_VER_MONTH_MASK			0xFF
+#define MFC_REG_FW_VER_MONTH_SHFT			8
+#define MFC_REG_FW_VER_DATE_MASK			0xFF
+#define MFC_REG_FW_VER_DATE_SHFT			0
+#define MFC_REG_FW_VER_ALL_MASK				0xFFFFFF
+#define MFC_REG_FW_VER_ALL_SHFT				0
+
+/* 0xF00C: MFC_REG_CODEC_TYPE */
+#define MFC_FORMATS_NO_CODEC				-1
+/* Decoder */
+#define MFC_REG_CODEC_H264_DEC				0
+#define MFC_REG_CODEC_H264_MVC_DEC			1
+#define MFC_REG_CODEC_MPEG4_DEC				3
+#define MFC_REG_CODEC_FIMV1_DEC				4
+#define MFC_REG_CODEC_FIMV2_DEC				5
+#define MFC_REG_CODEC_FIMV3_DEC				6
+#define MFC_REG_CODEC_FIMV4_DEC				7
+#define MFC_REG_CODEC_H263_DEC				8
+#define MFC_REG_CODEC_VC1_RCV_DEC			9
+#define MFC_REG_CODEC_VC1_DEC				10
+#define MFC_REG_CODEC_MPEG2_DEC				13
+#define MFC_REG_CODEC_VP8_DEC				14
+#define MFC_REG_CODEC_HEVC_DEC				17
+#define MFC_REG_CODEC_VP9_DEC				18
+#define MFC_REG_CODEC_AV1_DEC				19
+/* Encoder */
+#define MFC_REG_CODEC_H264_ENC				20
+#define MFC_REG_CODEC_H264_MVC_ENC			21
+#define MFC_REG_CODEC_MPEG4_ENC				23
+#define MFC_REG_CODEC_H263_ENC				24
+#define MFC_REG_CODEC_VP8_ENC				25
+#define MFC_REG_CODEC_HEVC_ENC				26
+#define MFC_REG_CODEC_VP9_ENC				27
+
+#define MFC_REG_CODEC_BPG_DEC				32
+#define MFC_REG_CODEC_BPG_ENC				33
+
+/* 0xF00C: MFC_REG_CODEC_TYPE */
+#define MFC_REG_CLEAR_CTX_MEM_SHIFT			16
+#define MFC_REG_CODEC_TYPE_MASK				0xFFFF
+
+/* 0xF024: MFC_REG_METADATA_ENABLE */
+#define MFC_REG_SEI_NAL_ENABLE_SHIFT			3
+
+/* 0xF028: MFC_REG_MFC_VERSION */
+#define MFC_REG_MFC_VER_MASK				0xFFFFFFFF
+#define MFC_REG_MFC_VER_SHFT				0
+/* bits of [8:4] can be changed if there is minor change between EVT0 and EVT1. */
+#define MFC_REG_MFC_VER_MAJOR_MASK			0xFFFFFF0F
+#define MFC_REG_MFC_VER_MINOR_MASK			0x000000F0
+
+/* 0xF02C: MFC_REG_DBG_INFO_ENABLE */
+#define MFC_REG_DBG_INFO_ENABLE_SHIFT			0
+#define MFC_REG_DBG_INFO_DPB_CLEAR_SHIFT		1
+#define MFC_REG_DBG_INFO_TWO_MFC_FORCING_SHIFT		2
+
+/* 0xF070: MFC_REG_RET_INSTANCE_ID */
+#define MFC_REG_RET_INSTANCE_ID_OF_MFC1_MASK		0xFFFF
+#define MFC_REG_RET_INSTANCE_ID_OF_MFC1_SHIFT		16
+#define MFC_REG_RET_INSTANCE_ID_MASK			0xFFFF
+
+/* 0xF074: MFC_REG_ERROR_CODE */
+#define MFC_REG_ERR_STATUS_MASK			0xFFFF
+#define MFC_REG_ERR_STATUS_SHIFT			0
+#define MFC_REG_WARN_STATUS_MASK			0xFFFF
+#define MFC_REG_WARN_STATUS_SHIFT			16
+
+/* 0xF07C: MFC_METADATA_STATUS */
+#define MFC_REG_SEI_NAL_STATUS_MASK			0x1
+#define MFC_REG_SEI_NAL_STATUS_SHIFT			3
+
+/* Error number */
+#define MFC_REG_ERR_INVALID				9
+#define MFC_REG_ERR_BUFFER_FULL				18
+#define MFC_REG_ERR_WARNINGS_END			222
+/* Dump debug error */
+#define MFC_REG_ERR_NO_AVAILABLE_DPB			33
+#define MFC_REG_ERR_INSUFFICIENT_DPB_SIZE		57
+#define MFC_REG_ERR_INSUFFICIENT_NUM_DPB		58
+#define MFC_REG_ERR_INSUFFICIENT_MV_BUF_SIZE		60
+#define MFC_REG_ERR_INSUFFICIENT_SCRATCH_BUF_SIZE	62
+/* HEVC VPS header error */
+#define MFC_REG_ERR_VPS_ONLY_ERROR			42
+/* Input decoding error */
+#define MFC_REG_ERR_NO_KEY_FRAME                        34
+#define MFC_REG_ERR_NO_VALID_SEQ_HDR                    66
+#define MFC_REG_ERR_NO_VALID_PIC_HDR                    67
+#define MFC_REG_ERR_MISSING_NON_BASE_VIEW_DETECTED      69
+#define MFC_REG_ERR_MISSING_BASE_VIEW_DETECTED          70
+#define MFC_REG_ERR_NO_VALID_REF_FOR_SKIP               72
+#define MFC_REG_ERR_UNSUPPORTED_FEATURE                 100
+#define MFC_REG_ERR_UNSUPPORTED_RESOLUTION              101
+#define MFC_REG_ERR_HEADER_NOT_FOUND                    102
+#define MFC_REG_ERR_INVALID_NAL_TYPE                    103
+#define MFC_REG_ERR_SEQUENCE_HEADER_ERROR               104
+#define MFC_REG_ERR_PICTURE_HEADER_ERROR                105
+#define MFC_REG_ERR_SLICE_HEADER_ERROR                  106
+#define MFC_REG_ERR_MISSING_FIRST_FIELD                 108
+#define MFC_REG_ERR_SLICE_COUNT_IS_OVER_ASO		109
+#define MFC_REG_ERR_TILE_HEADER_ERROR			111
+#define MFC_REG_ERR_MAX_VIEW_NUM_OVER			112
+/* Timeout */
+#define MFC_REG_ERR_MFC_TIMEOUT				140
+#define MFC_REG_ERR_TS_MUX_TIMEOUT			141
+#define MFC_REG_ERR_G2D_TIMEOUT				142
+/* Exception */
+#define MFC_REG_ERR_UNDEFINED_EXCEPTION			145
+/* Frame concealment and warning */
+#define MFC_REG_ERR_FRAME_CONCEAL			150
+#define MFC_REG_ERR_BROKEN_LINK				161
+#define MFC_REG_ERR_SYNC_POINT_NOT_RECEIVED		190
+#define MFC_REG_ERR_NON_PAIRED_FIELD			191
+
+/* 0xF0B4: MFC_REG_D_DEC_OPTIONS */
+#define MFC_REG_D_DEC_OPT_DISPLAY_DELAY_EN_SHIFT	3
+#define MFC_REG_D_DEC_OPT_FMO_ASO_CTRL_MASK		0x1
+#define MFC_REG_D_DEC_OPT_FMO_ASO_CTRL_SHIFT		4
+#define MFC_REG_D_DEC_OPT_IDR_DECODING_MASK		0x1
+#define MFC_REG_D_DEC_OPT_IDR_DECODING_SHIFT		6
+#define MFC_REG_D_DEC_OPT_DISCARD_RCV_HEADER_SHIFT	7
+#define MFC_REG_D_DEC_OPT_CONCEAL_CONTROL_SHIFT		8
+#define MFC_REG_D_DEC_OPT_PARALLEL_DISABLE_SHIFT	11
+#define MFC_REG_D_DEC_OPT_REALLOC_CONTROL_SHIFT		13
+#define MFC_REG_D_DEC_OPT_SPECIAL_PARSING_SHIFT		15
+#define MFC_REG_D_DEC_OPT_THUMBNAIL_DECODING		16
+#define MFC_REG_D_DEC_OPT_DECODING_ORDER_ENABLE		17
+#define MFC_REG_D_DEC_OPT_AV1_ANNEX_B_FORMAT_SHIFT	18
+
+/* 0xF094: MFC_REG_NAL_QUEUE_INFO*/
+#define MFC_REG_NAL_QUEUE_EXE_NAL_LL_SHIFT		8
+#define MFC_REG_NAL_QUEUE_EXE_NAL_LL_MASK		0x7F
+#define MFC_REG_NAL_QUEUE_OUT_CMD_COUNT_SHIFT		0
+#define MFC_REG_NAL_QUEUE_OUT_CMD_COUNT_MASK		0xFF
+
+/* 0xF0C4: MFC_REG_D_SEI_ENABLE */
+#define MFC_REG_D_SEI_ENABLE_NEED_INIT_BUFFER_SHIFT	1
+#define MFC_REG_D_SEI_ENABLE_RECOVERY_PARSING_SHIFT	2
+#define MFC_REG_D_SEI_ENABLE_CONTENT_LIGHT_SHIFT	4
+#define MFC_REG_D_SEI_ENABLE_MASTERING_DISPLAY_SHIFT	5
+#define MFC_REG_D_SEI_ENABLE_ST_2094_40_SEI_SHIFT	6
+#define MFC_REG_D_SEI_ENABLE_FILM_GRAIN_SHIFT		7
+
+/* 0xF154: MFC_REG_D_INIT_BUFFER_OPTIONS */
+#define MFC_REG_D_INIT_BUF_OPT_LF_CTRL_MASK		0x3
+#define MFC_REG_D_INIT_BUF_OPT_LF_CTRL_SHIFT		1
+#define MFC_REG_D_INIT_BUF_OPT_DYNAMIC_DPB_SET_SHIFT	3
+#define MFC_REG_D_INIT_BUF_OPT_COPY_NOT_CODED_SHIFT	4
+#define MFC_REG_D_INIT_BUF_OPT_DITHERING_EN_SHIFT	6
+#define MFC_REG_D_INIT_BUF_OPT_STRIDE_SIZE_ALIGN	7
+#define MFC_REG_D_INIT_BUF_OPT_TWO_MODE_ENABLE_SHIFT	9
+#define MFC_REG_D_INIT_BUF_OPT_ENABLE_DECODE_VIEW1	10
+
+/* 0xF5AC: MFC_REG_D_NAL_START_OPTIONS */
+#define MFC_REG_D_NAL_START_OPT_DIS_COMPRESSOR_SHIFT	5
+#define MFC_REG_D_NAL_START_OPT_TWO_MFC_ENABLE_SHIFT	4
+#define MFC_REG_D_NAL_START_OPT_BLACK_BAR_SHIFT		3
+#define MFC_REG_D_NAL_START_OPT_NEW_SCRATCH_SHIFT	2
+#define MFC_REG_D_NAL_START_OPT_NEW_DPB_SHIFT		1
+
+/* 0xF608: MFC_REG_D_DISPLAY_STATUS */
+#define MFC_REG_DISP_STATUS_DISPLAY_STATUS_MASK		0x7
+#define MFC_REG_DISP_STATUS_INTERLACE_MASK		0x1
+#define MFC_REG_DISP_STATUS_INTERLACE_SHIFT		3
+#define MFC_REG_DISP_STATUS_RES_CHANGE_MASK		0x3
+#define MFC_REG_DISP_STATUS_RES_CHANGE_SHIFT		4
+#define MFC_REG_DISP_STATUS_NEED_DPB_CHANGE_MASK	0x1
+#define MFC_REG_DISP_STATUS_NEED_DPB_CHANGE_SHIFT	9
+#define MFC_REG_DISP_STATUS_NEED_SCRATCH_CHANGE_MASK	0x1
+#define MFC_REG_DISP_STATUS_NEED_SCRATCH_CHANGE_SHIFT	10
+#define MFC_REG_DISP_STATUS_LAST_DISPLAY_FRAME_MASK	0x1
+#define MFC_REG_DISP_STATUS_LAST_DISPLAY_FRAME_SHIFT	11
+#define MFC_REG_DISP_STATUS_NEED_EMPTY_DPB_MASK	0x1
+#define MFC_REG_DISP_STATUS_NEED_EMPTY_DPB_SHIFT	12
+#define MFC_REG_DISP_STATUS_BLACK_BAR_DETECT_MASK	0x3
+#define MFC_REG_DISP_STATUS_BLACK_BAR_DETECT_SHIFT	13
+#define MFC_REG_DISP_STATUS_NOT_DETECTED		0x0
+#define MFC_REG_DISP_STATUS_BLACK_BAR			0x1
+#define MFC_REG_DISP_STATUS_BLACK_SCREEN		0x2
+#define MFC_REG_DISP_STATUS_COMP_SHIFT			19
+#define MFC_REG_DISP_STATUS_COMP_MASK			0x1
+#define MFC_REG_DISP_STATUS_UNCOMP_SHIFT		21
+#define MFC_REG_DISP_STATUS_UNCOMP_MASK			0x1
+#define MFC_REG_DISP_STATUS_FIELD_SHIFT			22
+#define MFC_REG_DISP_STATUS_FIELD_MASK			0x1
+
+/* 0xF618: MFC_REG_D_DISPLAY_FRAME_TYPE */
+#define MFC_REG_DISPLAY_TEMP_INFO_MASK			0x1
+#define MFC_REG_DISPLAY_TEMP_INFO_SHIFT			7
+#define MFC_REG_DISPLAY_IDR_FLAG_MASK			0x1
+#define MFC_REG_DISPLAY_IDR_FLAG_SHIFT			6
+#define MFC_REG_DISPLAY_FRAME_MASK			0x7
+#define MFC_REG_DISPLAY_FRAME_NOT_CODED			0
+#define MFC_REG_DISPLAY_FRAME_I				1
+#define MFC_REG_DISPLAY_FRAME_P				2
+#define MFC_REG_DISPLAY_FRAME_B				3
+
+/* 0xF61C: MFC_REG_D_DISPLAY_CROP_INFO1 */
+#define MFC_REG_D_SHARED_CROP_LEFT_MASK			0xFFFF
+#define MFC_REG_D_SHARED_CROP_RIGHT_SHIFT		16
+
+/* 0xF620: MFC_REG_D_DISPLAY_CROP_INFO2 */
+#define MFC_REG_D_SHARED_CROP_TOP_MASK			0xFFFF
+#define MFC_REG_D_SHARED_CROP_BOTTOM_SHIFT		16
+
+/* 0xF644: MFC_REG_D_DECODED_STATUS */
+#define MFC_REG_DEC_STATUS_DECODED_STATUS_MASK		0x7
+#define MFC_REG_DEC_STATUS_DECODING_ONLY		0
+#define MFC_REG_DEC_STATUS_DECODING_DISPLAY		1
+#define MFC_REG_DEC_STATUS_DISPLAY_ONLY			2
+#define MFC_REG_DEC_STATUS_DECODING_EMPTY		3
+#define MFC_REG_DEC_STATUS_NUM_OF_TILE_MASK		0xF
+#define MFC_REG_DEC_STATUS_NUM_OF_TILE_SHIFT		15
+#define MFC_REG_DEC_STATUS_INTERLACE_MASK		0x1
+#define MFC_REG_DEC_STATUS_INTERLACE_SHIFT		3
+#define MFC_REG_DEC_STATUS_UNCOMP_SHIFT			21
+#define MFC_REG_DEC_STATUS_UNCOMP_MASK			0x1
+
+/* 0xF654: MFC_REG_D_DECODED_FRAME_TYPE */
+#define MFC_REG_DECODED_IDR_FLAG_MASK			0x1
+#define MFC_REG_DECODED_IDR_FLAG_SHIFT			3
+#define MFC_REG_DECODED_FRAME_MASK			0x7
+#define MFC_REG_DECODED_FRAME_NOT_CODED			0
+#define MFC_REG_DECODED_FRAME_I				1
+#define MFC_REG_DECODED_FRAME_P				2
+#define MFC_REG_DECODED_FRAME_B				3
+
+/* 0xF660: MFC_REG_D_DECODED_PICTURE_PROFILE */
+#define MFC_REG_D_TWO_MFC_MODE_MASK			0x3
+#define MFC_REG_D_TWO_MFC_MODE_SHIFT			28
+#define MFC_REG_D_DISPLAY_DELAY_MASK			0x1F
+#define MFC_REG_D_DISPLAY_DELAY_SHIFT			23
+#define MFC_REG_D_BIT_DEPTH_CHROMA_MINUS8_MASK		0x7
+#define MFC_REG_D_BIT_DEPTH_CHROMA_MINUS8_SHIFT		19
+#define MFC_REG_D_BIT_DEPTH_LUMA_MINUS8_MASK		0x7
+#define MFC_REG_D_BIT_DEPTH_LUMA_MINUS8_SHIFT		16
+#define MFC_REG_D_PIC_LEVEL_MASK			0xFF
+#define MFC_REG_D_PIC_LEVEL_SHIFT			8
+#define MFC_REG_D_DECODED_PIC_PROFILE_MASK		0x1F
+#define MFC_REG_D_PROFILE_HEVC_MAIN			1
+#define MFC_REG_D_PROFILE_HEVC_MAIN_10			2
+#define MFC_REG_D_PROFILE_MULTIVIEW_HEVC_MAIN		5
+#define MFC_REG_D_PROFILE_MULTIVIEW_HEVC_MAIN_10	6
+#define MFC_REG_D_PROFILE_HEVC_RANGE_EXT		4
+
+/* 0xF684: MFC_REG_D_CHROMA_FORMAT */
+#define MFC_REG_D_CHROMA_FORMAT_MASK			0x3
+#define MFC_REG_D_COLOR_RANGE_MASK			0x1
+#define MFC_REG_D_COLOR_RANGE_SHIFT			3
+#define MFC_REG_D_COLOR_SPACE_MASK			0xF
+#define MFC_REG_D_COLOR_SPACE_SHIFT			4
+#define MFC_REG_D_COLOR_UNKNOWN				0
+#define MFC_REG_D_CHROMA_400				0
+#define MFC_REG_D_CHROMA_420				1
+#define MFC_REG_D_CHROMA_422				2
+#define MFC_REG_D_CHROMA_444				3
+
+/* 0xF690: MFC_REG_D_H264_INFO */
+#define MFC_REG_D_H264_INFO_MBAFF_FRAME_FLAG_SHIFT	9
+#define MFC_REG_D_H264_INFO_MBAFF_FRAME_FLAG_MASK	0x1
+#define MFC_REG_D_H264_INFO_TEMPORAL_ID_SHIFT		6
+#define MFC_REG_D_H264_INFO_TEMPORAL_ID_MASK		0x7
+
+/* 0xF6A0: MFC_REG_D_HEVC_INFO */
+#define MFC_REG_D_HEVC_INFO_PIC_OUTPUT_FLAG_SHIFT	11
+#define MFC_REG_D_HEVC_INFO_PIC_OUTPUT_FLAG_MASK	0x1
+#define MFC_REG_D_HEVC_INFO_LCU_SIZE_MASK		0x3
+
+/* 0xF6A4: MFC_REG_D_VP9_INFO */
+#define MFC_REG_D_VP9_INFO_DISP_RES_SHIFT		14
+#define MFC_REG_D_VP9_INFO_DISP_RES_MASK		0x1
+
+/* 0xF6AC: MFC_REG_D_AV1_INFO */
+#define MFC_REG_D_AV1_INFO_FILMGRAIN_PRESENT_SHIFT	18
+#define MFC_REG_D_AV1_INFO_FILMGRAIN_PRESENT_MASK	0x1
+#define MFC_REG_D_AV1_INFO_MULTIPLE_SHOW_SHIFT		17
+#define MFC_REG_D_AV1_INFO_MULTIPLE_SHOW_MASK		0x1
+#define MFC_REG_D_AV1_INFO_DISP_RES_SHIFT		14
+#define MFC_REG_D_AV1_INFO_DISP_RES_MASK		0x1
+#define MFC_REG_D_AV1_INFO_SHOWABLE_FRAME_SHIFT		5
+#define MFC_REG_D_AV1_INFO_SHOWABLE_FRAME_MASK		0x1
+
+/* 0xF6D8: MFC_REG_D_MVC_VIEW_ID */
+#define MFC_REG_D_MVC_VIEW_ID_DEC_SHIFT			16
+#define MFC_REG_D_MVC_VIEW_ID_DEC_MASK			0xFFFF
+#define MFC_REG_D_MVC_VIEW_ID_DISP_MASK			0xFFFF
+#define MFC_REG_D_MVC_LEFT_VIEW_ID_SHIFT		28
+#define MFC_REG_D_MVC_LEFT_VIEW_ID_MASK			0x3
+#define MFC_REG_D_MVC_RIGHT_VIEW_ID_SHIFT		30
+#define MFC_REG_D_MVC_RIGHT_VIEW_ID_MASK		0x3
+
+/* 0xF6DC: MFC_REG_D_SEI_AVAIL */
+#define MFC_REG_D_SEI_AVAIL_FRAME_PACK_MASK		0x1
+#define MFC_REG_D_SEI_AVAIL_CONTENT_LIGHT_MASK		0x1
+#define MFC_REG_D_SEI_AVAIL_CONTENT_LIGHT_SHIFT		1
+#define MFC_REG_D_SEI_AVAIL_MASTERING_DISPLAY_MASK	0x1
+#define MFC_REG_D_SEI_AVAIL_MASTERING_DISPLAY_SHIFT	2
+#define MFC_REG_D_SEI_AVAIL_ST_2094_40_MASK		0x1
+#define MFC_REG_D_SEI_AVAIL_ST_2094_40_SHIFT		3
+#define MFC_REG_D_SEI_AVAIL_FILM_GRAIN_MASK		0x1
+#define MFC_REG_D_SEI_AVAIL_FILM_GRAIN_SHIFT		4
+
+/* 0xF70C: MFC_REG_D_VIDEO_SIGNAL_TYPE */
+#define MFC_REG_D_VIDEO_SIGNAL_TYPE_FLAG_MASK		0x1
+#define MFC_REG_D_VIDEO_SIGNAL_TYPE_FLAG_SHIFT		29
+#define MFC_REG_D_COLOUR_DESCRIPTION_FLAG_MASK		0x1
+#define MFC_REG_D_COLOUR_DESCRIPTION_FLAG_SHIFT		24
+#define MFC_REG_D_COLOUR_PRIMARIES_MASK			0xFF
+#define MFC_REG_D_COLOUR_PRIMARIES_SHIFT		16
+#define MFC_REG_D_TRANSFER_CHARACTERISTICS_MASK		0xFF
+#define MFC_REG_D_TRANSFER_CHARACTERISTICS_SHIFT	8
+#define MFC_REG_D_MATRIX_COEFFICIENTS_MASK		0xFF
+#define MFC_REG_D_MATRIX_COEFFICIENTS_SHIFT		0
+
+/* 0xF738: MFC_REG_D_BLACK_BAR_START_POS */
+#define MFC_REG_D_BLACK_BAR_START_X_SHIFT		0
+#define MFC_REG_D_BLACK_BAR_START_X_MASK		0xFFFF
+#define MFC_REG_D_BLACK_BAR_START_Y_SHIFT		16
+#define MFC_REG_D_BLACK_BAR_START_Y_MASK		0xFFFF
+
+/* 0xF73C: MFC_REG_D_BLACK_BAR_IMAGE_SIZE */
+#define MFC_REG_D_BLACK_BAR_IMAGE_W_SHIFT		0
+#define MFC_REG_D_BLACK_BAR_IMAGE_W_MASK		0xFFFF
+#define MFC_REG_D_BLACK_BAR_IMAGE_H_SHIFT		16
+#define MFC_REG_D_BLACK_BAR_IMAGE_H_MASK		0xFFFF
+
+/* 0xF780:  MFC_REG_E_FRAME_CROP_OFFSET */
+#define MFC_REG_E_FRAME_CROP_OFFSET_TOP			16
+#define MFC_REG_E_FRAME_CROP_OFFSET_LEFT		0
+#define MFC_REG_E_FRAME_CROP_OFFSET_MASK		0x3FFF
+
+/* 0xF788: MFC_REG_E_PICTURE_PROFILE */
+#define MFC_REG_E_PROFILE_H264_BASELINE			0
+#define MFC_REG_E_PROFILE_H264_MAIN			1
+#define MFC_REG_E_PROFILE_H264_HIGH			2
+#define MFC_REG_E_PROFILE_H264_CONSTRAINED_BASELINE	3
+#define MFC_REG_E_PROFILE_H264_CONSTRAINED_HIGH		5
+#define MFC_REG_E_PROFILE_MPEG4_SIMPLE			0
+#define MFC_REG_E_PROFILE_MPEG4_ADVANCED_SIMPLE		1
+#define MFC_REG_E_PROFILE_HEVC_MAIN			0
+#define MFC_REG_E_PROFILE_HEVC_MAIN_422_10_INTRA	2
+#define MFC_REG_E_PROFILE_HEVC_MAIN_10			3
+#define MFC_REG_E_PROFILE_HEVC_MAIN_422_10		4
+#define MFC_REG_E_PROFILE_VP9_PROFILE0			0
+#define MFC_REG_E_PROFILE_VP9_PROFILE1			1
+#define MFC_REG_E_PROFILE_VP9_PROFILE2			2
+#define MFC_REG_E_PROFILE_VP9_PROFILE3			3
+
+/* 0xF7A4: MFC_REG_E_RC_MODE */
+#define MFC_REG_E_RC_CBR_FIX				0
+#define MFC_REG_E_RC_CBR_VAR				1
+#define MFC_REG_E_RC_VBR				2
+#define MFC_REG_E_RC_CBR_I_LIMIT_VT			3
+#define MFC_REG_E_RC_VBR_BS				4
+#define MFC_REG_E_RC_CBR_I_LIMIT_WFD			5
+
+/* 0xFA84: MFC_REG_E_SLICE_TYPE */
+#define MFC_REG_E_SLICE_TYPE_NOT_CODED			0
+#define MFC_REG_E_SLICE_TYPE_MASK			0xF
+#define MFC_REG_E_SLICE_TYPE_I				1
+#define MFC_REG_E_SLICE_TYPE_P				2
+#define MFC_REG_E_SLICE_TYPE_B				3
+#define MFC_REG_E_SLICE_TYPE_SKIPPED			4
+
+/* 0xFAE8: MFC_REG_E_HDR10_PLUS_INFO */
+#define MFC_REG_E_HDR10_PLUS_INFO_STAT_DONE_MASK	1
+#define MFC_REG_E_HDR10_PLUS_INFO_STAT_DONE_SHIFT	31
+#define MFC_REG_E_HDR10_PLUS_INFO_SEI_SIZE_MASK		0x1FF
+#define MFC_REG_E_HDR10_PLUS_INFO_SEI_SIZE_SHIFT	8
+#define MFC_REG_E_HDR10_PLUS_INFO_OFFSET_MASK		0xFF
+#define MFC_REG_E_HDR10_PLUS_INFO_OFFSET_SHIFT		0
+
+/* 0xFAEC: MFC_REG_E_NAL_DONE_INFO */
+#define MFC_REG_E_NAL_DONE_INFO_COMP_ERR_MASK		0x3
+#define MFC_REG_E_NAL_DONE_INFO_COMP_ERR_SHIFT		7
+#define MFC_REG_E_NAL_DONE_INFO_IDR_MASK		0x1
+#define MFC_REG_E_NAL_DONE_INFO_IDR_SHIFT		20
+
+/* SEI Metadata format */
+#define MFC_META_SEI_NAL_SIZE_OFFSET			0x4
+#define MFC_META_SEI_NAL_PAYLOAD_OFFSET			0x8
+
+#endif /* __MFC_REGS_MFC_H */
-- 
2.34.1


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ