From: Nagaraju Siddineni <[email protected]>

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 <[email protected]>
Signed-off-by: Himanshu Dewangan <[email protected]>
---
 .../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, <[email protected]>
+ * Himanshu Dewangan, <[email protected]>
+ */
+
+#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

Reply via email to