mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-09 23:08:18 +02:00
amd/vpelib: support vpe 2.2
Update vpelib to support vpe 2.2. Signed-off-by: Peyton Lee <peytolee@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41876>
This commit is contained in:
parent
2b2dbcc13a
commit
99c4cd205e
13 changed files with 6717 additions and 2 deletions
|
|
@ -131,6 +131,7 @@ enum vpe_ip_level {
|
|||
VPE_IP_LEVEL_1_0, /**< vpe 1.0 */
|
||||
VPE_IP_LEVEL_1_1, /**< vpe 1.1 */
|
||||
VPE_IP_LEVEL_2_0, /**< vpe 2.0 */
|
||||
VPE_IP_LEVEL_2_2, /**< vpe 2.2 */
|
||||
};
|
||||
|
||||
enum vpe_mps_mode {
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ c_args_vpe += [
|
|||
'-DVPE_BUILD_1_X',
|
||||
'-DVPE_BUILD_1_1',
|
||||
'-DVPE_BUILD_2_0',
|
||||
'-DVPE_BUILD_2_2',
|
||||
]
|
||||
|
||||
vpe_files = files(
|
||||
|
|
@ -142,6 +143,8 @@ vpe_files = files(
|
|||
'src/chip/vpe20/vpe20_plane_desc_writer.c',
|
||||
'src/chip/vpe20/vpe20_resource.c',
|
||||
'src/chip/vpe20/vpe20_vpe_desc_writer.c',
|
||||
'src/chip/vpe22/inc/vpe22_resource.h',
|
||||
'src/chip/vpe22/vpe22_resource.c',
|
||||
'src/imported/SPL/dc_spl.c',
|
||||
'src/imported/SPL/dc_spl.h',
|
||||
'src/imported/SPL/dc_spl_filters.c',
|
||||
|
|
@ -161,6 +164,7 @@ inc_amd_vpe = include_directories(
|
|||
'src/chip/vpe10/inc',
|
||||
'src/chip/vpe11/inc',
|
||||
'src/chip/vpe20/inc',
|
||||
'src/chip/vpe22/inc',
|
||||
'src/imported/SPL',
|
||||
'src/imported',
|
||||
)
|
||||
|
|
|
|||
|
|
@ -107,7 +107,8 @@ void vpe20_cdc_program_crossbar_config(struct cdc_fe *cdc_fe, enum vpe_surface_p
|
|||
format == VPE_SURFACE_PIXEL_FORMAT_GRPH_ABGR16161616 ||
|
||||
format == VPE_SURFACE_PIXEL_FORMAT_GRPH_BGRA16161616_UNORM ||
|
||||
format == VPE_SURFACE_PIXEL_FORMAT_GRPH_BGRA16161616_SNORM ||
|
||||
format == VPE_SURFACE_PIXEL_FORMAT_VIDEO_AYCbCr8888) {
|
||||
format == VPE_SURFACE_PIXEL_FORMAT_VIDEO_AYCbCr8888 ||
|
||||
format == VPE_SURFACE_PIXEL_FORMAT_GRPH_RGBE) {
|
||||
red_bar = MUX_SEL_CB_B;
|
||||
blue_bar = MUX_SEL_CR_R;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -330,6 +330,10 @@ void vpe20_dpp_program_cnv(
|
|||
case VPE_SURFACE_PIXEL_FORMAT_VIDEO_CrYCbA1010102: /* Y410 */
|
||||
pixel_format = 115;
|
||||
break;
|
||||
case VPE_SURFACE_PIXEL_FORMAT_GRPH_RGBE:
|
||||
pixel_format = 116;
|
||||
alpha_en = 0;
|
||||
break;
|
||||
case VPE_SURFACE_PIXEL_FORMAT_GRPH_R8: // use crossbar
|
||||
pixel_format = 120;
|
||||
alpha_en = 0;
|
||||
|
|
@ -343,6 +347,7 @@ void vpe20_dpp_program_cnv(
|
|||
}
|
||||
|
||||
REG_SET(VPCNVC_SURFACE_PIXEL_FORMAT, 0, VPCNVC_SURFACE_PIXEL_FORMAT, pixel_format);
|
||||
// RGBE default set VPCNVC_FORMAT_CROSSBAR_R/G/B to 0x0/0x1/0x2
|
||||
REG_SET_7(VPCNVC_FORMAT_CONTROL, REG_DEFAULT(VPCNVC_FORMAT_CONTROL), FORMAT_EXPANSION_MODE,
|
||||
hw_expansion_mode, FORMAT_CNV16, 0, FORMAT_CONTROL__ALPHA_EN, alpha_en, VPCNVC_BYPASS,
|
||||
dpp->vpe_priv->init.debug.vpcnvc_bypass, VPCNVC_BYPASS_MSB_ALIGN, 0, CLAMP_POSITIVE, 0,
|
||||
|
|
|
|||
|
|
@ -2538,6 +2538,8 @@ uint32_t vpe20_get_hw_surface_format(enum vpe_surface_pixel_format format)
|
|||
surf_format = 298;
|
||||
break;
|
||||
case VPE_SURFACE_PIXEL_FORMAT_GRPH_RGBE:
|
||||
surf_format = 116;
|
||||
break;
|
||||
default:
|
||||
VPE_ASSERT("Invalid pixel format");
|
||||
break;
|
||||
|
|
|
|||
1464
src/amd/vpelib/src/chip/vpe22/inc/asic/chip_default.h
Normal file
1464
src/amd/vpelib/src/chip/vpe22/inc/asic/chip_default.h
Normal file
File diff suppressed because it is too large
Load diff
1892
src/amd/vpelib/src/chip/vpe22/inc/asic/chip_mask.h
Normal file
1892
src/amd/vpelib/src/chip/vpe22/inc/asic/chip_mask.h
Normal file
File diff suppressed because it is too large
Load diff
835
src/amd/vpelib/src/chip/vpe22/inc/asic/chip_offset.h
Normal file
835
src/amd/vpelib/src/chip/vpe22/inc/asic/chip_offset.h
Normal file
|
|
@ -0,0 +1,835 @@
|
|||
// Copyright (c) 1994 - 2025 Advanced Micro Devices, Inc. All rights reserved.
|
||||
|
||||
/*
|
||||
* chip_offset.h
|
||||
*
|
||||
* Register Spec Release: <unknown>
|
||||
*
|
||||
*
|
||||
* (c) 2021 Advanced Micro Devices, Inc. (unpublished)
|
||||
*
|
||||
* All rights reserved. This notice is intended as a precaution against
|
||||
* inadvertent publication and does not imply publication or any waiver
|
||||
* of confidentiality. The year included in the foregoing notice is the
|
||||
* year of creation of the work.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _vpe22_chip_OFFSET_HEADER
|
||||
#define _vpe22_chip_OFFSET_HEADER
|
||||
|
||||
|
||||
// Registers from CDC block
|
||||
|
||||
#define mmVPEP_MGCG_CNTL 0x11E00
|
||||
#define mmVPCDC_SOFT_RESET 0x11E01
|
||||
#define mmVPCDC_FE0_SURFACE_CONFIG 0x11E02
|
||||
#define mmVPCDC_FE0_CROSSBAR_CONFIG 0x11E03
|
||||
#define mmVPCDC_FE0_VIEWPORT_START_CONFIG 0x11E04
|
||||
#define mmVPCDC_FE0_VIEWPORT_DIMENSION_CONFIG 0x11E05
|
||||
#define mmVPCDC_FE0_VIEWPORT_START_C_CONFIG 0x11E06
|
||||
#define mmVPCDC_FE0_VIEWPORT_DIMENSION_C_CONFIG 0x11E07
|
||||
#define mmVPCDC_FE1_SURFACE_CONFIG 0x11E08
|
||||
#define mmVPCDC_FE1_CROSSBAR_CONFIG 0x11E09
|
||||
#define mmVPCDC_FE1_VIEWPORT_START_CONFIG 0x11E0A
|
||||
#define mmVPCDC_FE1_VIEWPORT_DIMENSION_CONFIG 0x11E0B
|
||||
#define mmVPCDC_FE1_VIEWPORT_START_C_CONFIG 0x11E0C
|
||||
#define mmVPCDC_FE1_VIEWPORT_DIMENSION_C_CONFIG 0x11E0D
|
||||
#define mmVPCDC_BE0_P2B_CONFIG 0x11E0E
|
||||
#define mmVPCDC_BE0_GLOBAL_SYNC_CONFIG 0x11E0F
|
||||
#define mmVPCDC_BE1_P2B_CONFIG 0x11E10
|
||||
#define mmVPCDC_BE1_GLOBAL_SYNC_CONFIG 0x11E11
|
||||
#define mmVPCDC_BE2_P2B_CONFIG 0x11E12
|
||||
#define mmVPCDC_BE2_GLOBAL_SYNC_CONFIG 0x11E13
|
||||
#define mmVPCDC_BE3_P2B_CONFIG 0x11E14
|
||||
#define mmVPCDC_BE3_GLOBAL_SYNC_CONFIG 0x11E15
|
||||
#define mmVPCDC_GLOBAL_SYNC_TRIGGER 0x11E16
|
||||
#define mmVPEP_MEM_GLOBAL_PWR_REQ_CNTL 0x11E18
|
||||
#define mmVPFE0_MEM_PWR_CNTL 0x11E19
|
||||
#define mmVPFE1_MEM_PWR_CNTL 0x11E1A
|
||||
#define mmVPBE0_MEM_PWR_CNTL 0x11E1B
|
||||
#define mmVPBE1_MEM_PWR_CNTL 0x11E1C
|
||||
#define mmVPBE2_MEM_PWR_CNTL 0x11E1D
|
||||
#define mmVPBE3_MEM_PWR_CNTL 0x11E1E
|
||||
#define mmVPCDC_3DLUT_FL_CONFIG 0x11E26
|
||||
#define mmVPCDC_CONTROL 0x11E27
|
||||
|
||||
|
||||
// Registers from VPCNVC_CFG block
|
||||
|
||||
#define mmVPCNVC_CFG0_VPCNVC_SURFACE_PIXEL_FORMAT 0x11F44
|
||||
#define mmVPCNVC_CFG1_VPCNVC_SURFACE_PIXEL_FORMAT 0x120E0
|
||||
#define mmVPCNVC_CFG0_VPCNVC_FORMAT_CONTROL 0x11F45
|
||||
#define mmVPCNVC_CFG1_VPCNVC_FORMAT_CONTROL 0x120E1
|
||||
#define mmVPCNVC_CFG0_VPCNVC_FCNV_FP_BIAS_R 0x11F46
|
||||
#define mmVPCNVC_CFG1_VPCNVC_FCNV_FP_BIAS_R 0x120E2
|
||||
#define mmVPCNVC_CFG0_VPCNVC_FCNV_FP_BIAS_G 0x11F47
|
||||
#define mmVPCNVC_CFG1_VPCNVC_FCNV_FP_BIAS_G 0x120E3
|
||||
#define mmVPCNVC_CFG0_VPCNVC_FCNV_FP_BIAS_B 0x11F48
|
||||
#define mmVPCNVC_CFG1_VPCNVC_FCNV_FP_BIAS_B 0x120E4
|
||||
#define mmVPCNVC_CFG0_VPCNVC_FCNV_FP_SCALE_R 0x11F49
|
||||
#define mmVPCNVC_CFG1_VPCNVC_FCNV_FP_SCALE_R 0x120E5
|
||||
#define mmVPCNVC_CFG0_VPCNVC_FCNV_FP_SCALE_G 0x11F4A
|
||||
#define mmVPCNVC_CFG1_VPCNVC_FCNV_FP_SCALE_G 0x120E6
|
||||
#define mmVPCNVC_CFG0_VPCNVC_FCNV_FP_SCALE_B 0x11F4B
|
||||
#define mmVPCNVC_CFG1_VPCNVC_FCNV_FP_SCALE_B 0x120E7
|
||||
#define mmVPCNVC_CFG0_VPCNVC_COLOR_KEYER_CONTROL 0x11F4C
|
||||
#define mmVPCNVC_CFG1_VPCNVC_COLOR_KEYER_CONTROL 0x120E8
|
||||
#define mmVPCNVC_CFG0_VPCNVC_COLOR_KEYER_ALPHA 0x11F4D
|
||||
#define mmVPCNVC_CFG1_VPCNVC_COLOR_KEYER_ALPHA 0x120E9
|
||||
#define mmVPCNVC_CFG0_VPCNVC_COLOR_KEYER_RED 0x11F4E
|
||||
#define mmVPCNVC_CFG1_VPCNVC_COLOR_KEYER_RED 0x120EA
|
||||
#define mmVPCNVC_CFG0_VPCNVC_COLOR_KEYER_GREEN 0x11F4F
|
||||
#define mmVPCNVC_CFG1_VPCNVC_COLOR_KEYER_GREEN 0x120EB
|
||||
#define mmVPCNVC_CFG0_VPCNVC_COLOR_KEYER_BLUE 0x11F50
|
||||
#define mmVPCNVC_CFG1_VPCNVC_COLOR_KEYER_BLUE 0x120EC
|
||||
#define mmVPCNVC_CFG0_VPCNVC_ALPHA_2BIT_LUT01 0x11F52
|
||||
#define mmVPCNVC_CFG1_VPCNVC_ALPHA_2BIT_LUT01 0x120EE
|
||||
#define mmVPCNVC_CFG0_VPCNVC_ALPHA_2BIT_LUT23 0x11F53
|
||||
#define mmVPCNVC_CFG1_VPCNVC_ALPHA_2BIT_LUT23 0x120EF
|
||||
#define mmVPCNVC_CFG0_VPCNVC_PRE_DEALPHA 0x11F54
|
||||
#define mmVPCNVC_CFG1_VPCNVC_PRE_DEALPHA 0x120F0
|
||||
#define mmVPCNVC_CFG0_VPCNVC_PRE_CSC_MODE 0x11F55
|
||||
#define mmVPCNVC_CFG1_VPCNVC_PRE_CSC_MODE 0x120F1
|
||||
#define mmVPCNVC_CFG0_VPCNVC_PRE_CSC_C11_C12 0x11F56
|
||||
#define mmVPCNVC_CFG1_VPCNVC_PRE_CSC_C11_C12 0x120F2
|
||||
#define mmVPCNVC_CFG0_VPCNVC_PRE_CSC_C13_C14 0x11F57
|
||||
#define mmVPCNVC_CFG1_VPCNVC_PRE_CSC_C13_C14 0x120F3
|
||||
#define mmVPCNVC_CFG0_VPCNVC_PRE_CSC_C21_C22 0x11F58
|
||||
#define mmVPCNVC_CFG1_VPCNVC_PRE_CSC_C21_C22 0x120F4
|
||||
#define mmVPCNVC_CFG0_VPCNVC_PRE_CSC_C23_C24 0x11F59
|
||||
#define mmVPCNVC_CFG1_VPCNVC_PRE_CSC_C23_C24 0x120F5
|
||||
#define mmVPCNVC_CFG0_VPCNVC_PRE_CSC_C31_C32 0x11F5A
|
||||
#define mmVPCNVC_CFG1_VPCNVC_PRE_CSC_C31_C32 0x120F6
|
||||
#define mmVPCNVC_CFG0_VPCNVC_PRE_CSC_C33_C34 0x11F5B
|
||||
#define mmVPCNVC_CFG1_VPCNVC_PRE_CSC_C33_C34 0x120F7
|
||||
#define mmVPCNVC_CFG0_VPCNVC_COEF_FORMAT 0x11F5C
|
||||
#define mmVPCNVC_CFG1_VPCNVC_COEF_FORMAT 0x120F8
|
||||
#define mmVPCNVC_CFG0_VPCNVC_PRE_DEGAM 0x11F5D
|
||||
#define mmVPCNVC_CFG1_VPCNVC_PRE_DEGAM 0x120F9
|
||||
#define mmVPCNVC_CFG0_VPCNVC_PRE_REALPHA 0x11F5E
|
||||
#define mmVPCNVC_CFG1_VPCNVC_PRE_REALPHA 0x120FA
|
||||
|
||||
|
||||
// Registers from VPDSCL block
|
||||
|
||||
#define mmVPDSCL0_VPDSCL_COEF_RAM_TAP_SELECT 0x11F68
|
||||
#define mmVPDSCL1_VPDSCL_COEF_RAM_TAP_SELECT 0x12104
|
||||
#define mmVPDSCL0_VPDSCL_COEF_RAM_TAP_DATA 0x11F69
|
||||
#define mmVPDSCL1_VPDSCL_COEF_RAM_TAP_DATA 0x12105
|
||||
#define mmVPDSCL0_VPDSCL_MODE 0x11F6A
|
||||
#define mmVPDSCL1_VPDSCL_MODE 0x12106
|
||||
#define mmVPDSCL0_VPDSCL_TAP_CONTROL 0x11F6B
|
||||
#define mmVPDSCL1_VPDSCL_TAP_CONTROL 0x12107
|
||||
#define mmVPDSCL0_VPDSCL_CONTROL 0x11F6C
|
||||
#define mmVPDSCL1_VPDSCL_CONTROL 0x12108
|
||||
#define mmVPDSCL0_VPDSCL_2TAP_CONTROL 0x11F6D
|
||||
#define mmVPDSCL1_VPDSCL_2TAP_CONTROL 0x12109
|
||||
#define mmVPDSCL0_VPDSCL_MANUAL_REPLICATE_CONTROL 0x11F6E
|
||||
#define mmVPDSCL1_VPDSCL_MANUAL_REPLICATE_CONTROL 0x1210A
|
||||
#define mmVPDSCL0_VPDSCL_HORZ_FILTER_SCALE_RATIO 0x11F6F
|
||||
#define mmVPDSCL1_VPDSCL_HORZ_FILTER_SCALE_RATIO 0x1210B
|
||||
#define mmVPDSCL0_VPDSCL_HORZ_FILTER_INIT 0x11F70
|
||||
#define mmVPDSCL1_VPDSCL_HORZ_FILTER_INIT 0x1210C
|
||||
#define mmVPDSCL0_VPDSCL_HORZ_FILTER_SCALE_RATIO_C 0x11F71
|
||||
#define mmVPDSCL1_VPDSCL_HORZ_FILTER_SCALE_RATIO_C 0x1210D
|
||||
#define mmVPDSCL0_VPDSCL_HORZ_FILTER_INIT_C 0x11F72
|
||||
#define mmVPDSCL1_VPDSCL_HORZ_FILTER_INIT_C 0x1210E
|
||||
#define mmVPDSCL0_VPDSCL_VERT_FILTER_SCALE_RATIO 0x11F73
|
||||
#define mmVPDSCL1_VPDSCL_VERT_FILTER_SCALE_RATIO 0x1210F
|
||||
#define mmVPDSCL0_VPDSCL_VERT_FILTER_INIT 0x11F74
|
||||
#define mmVPDSCL1_VPDSCL_VERT_FILTER_INIT 0x12110
|
||||
#define mmVPDSCL0_VPDSCL_VERT_FILTER_INIT_BOT 0x11F75
|
||||
#define mmVPDSCL1_VPDSCL_VERT_FILTER_INIT_BOT 0x12111
|
||||
#define mmVPDSCL0_VPDSCL_VERT_FILTER_SCALE_RATIO_C 0x11F76
|
||||
#define mmVPDSCL1_VPDSCL_VERT_FILTER_SCALE_RATIO_C 0x12112
|
||||
#define mmVPDSCL0_VPDSCL_VERT_FILTER_INIT_C 0x11F77
|
||||
#define mmVPDSCL1_VPDSCL_VERT_FILTER_INIT_C 0x12113
|
||||
#define mmVPDSCL0_VPDSCL_VERT_FILTER_INIT_BOT_C 0x11F78
|
||||
#define mmVPDSCL1_VPDSCL_VERT_FILTER_INIT_BOT_C 0x12114
|
||||
#define mmVPDSCL0_VPDSCL_BLACK_COLOR 0x11F79
|
||||
#define mmVPDSCL1_VPDSCL_BLACK_COLOR 0x12115
|
||||
#define mmVPDSCL0_VPDSCL_UPDATE 0x11F7A
|
||||
#define mmVPDSCL1_VPDSCL_UPDATE 0x12116
|
||||
#define mmVPDSCL0_VPDSCL_AUTOCAL 0x11F7B
|
||||
#define mmVPDSCL1_VPDSCL_AUTOCAL 0x12117
|
||||
#define mmVPDSCL0_VPDSCL_EXT_OVERSCAN_LEFT_RIGHT 0x11F7C
|
||||
#define mmVPDSCL1_VPDSCL_EXT_OVERSCAN_LEFT_RIGHT 0x12118
|
||||
#define mmVPDSCL0_VPDSCL_EXT_OVERSCAN_TOP_BOTTOM 0x11F7D
|
||||
#define mmVPDSCL1_VPDSCL_EXT_OVERSCAN_TOP_BOTTOM 0x12119
|
||||
#define mmVPDSCL0_VPOTG_H_BLANK 0x11F7E
|
||||
#define mmVPDSCL1_VPOTG_H_BLANK 0x1211A
|
||||
#define mmVPDSCL0_VPOTG_V_BLANK 0x11F7F
|
||||
#define mmVPDSCL1_VPOTG_V_BLANK 0x1211B
|
||||
#define mmVPDSCL0_VPDSCL_RECOUT_START 0x11F80
|
||||
#define mmVPDSCL1_VPDSCL_RECOUT_START 0x1211C
|
||||
#define mmVPDSCL0_VPDSCL_RECOUT_SIZE 0x11F81
|
||||
#define mmVPDSCL1_VPDSCL_RECOUT_SIZE 0x1211D
|
||||
#define mmVPDSCL0_VPMPC_SIZE 0x11F82
|
||||
#define mmVPDSCL1_VPMPC_SIZE 0x1211E
|
||||
#define mmVPDSCL0_VPLB_DATA_FORMAT 0x11F83
|
||||
#define mmVPDSCL1_VPLB_DATA_FORMAT 0x1211F
|
||||
#define mmVPDSCL0_VPLB_MEMORY_CTRL 0x11F84
|
||||
#define mmVPDSCL1_VPLB_MEMORY_CTRL 0x12120
|
||||
#define mmVPDSCL0_VPLB_V_COUNTER 0x11F85
|
||||
#define mmVPDSCL1_VPLB_V_COUNTER 0x12121
|
||||
#define mmVPDSCL0_VPDSCL_MEM_PWR_CTRL 0x11F86
|
||||
#define mmVPDSCL1_VPDSCL_MEM_PWR_CTRL 0x12122
|
||||
#define mmVPDSCL0_VPDSCL_MEM_PWR_STATUS 0x11F87
|
||||
#define mmVPDSCL1_VPDSCL_MEM_PWR_STATUS 0x12123
|
||||
#define mmVPDSCL0_VPDSCL_EASF_H_MODE 0x11F88
|
||||
#define mmVPDSCL1_VPDSCL_EASF_H_MODE 0x12124
|
||||
#define mmVPDSCL0_VPDSCL_EASF_V_MODE 0x11F89
|
||||
#define mmVPDSCL1_VPDSCL_EASF_V_MODE 0x12125
|
||||
#define mmVPDSCL0_VPDSCL_SC_MODE 0x11F8A
|
||||
#define mmVPDSCL1_VPDSCL_SC_MODE 0x12126
|
||||
#define mmVPDSCL0_VPDSCL_SC_MATRIX_C0C1 0x11F8B
|
||||
#define mmVPDSCL1_VPDSCL_SC_MATRIX_C0C1 0x12127
|
||||
#define mmVPDSCL0_VPDSCL_SC_MATRIX_C2C3 0x11F8C
|
||||
#define mmVPDSCL1_VPDSCL_SC_MATRIX_C2C3 0x12128
|
||||
#define mmVPDSCL0_VPDSCL_EASF_H_RINGEST_EVENTAP_GAIN 0x11F8D
|
||||
#define mmVPDSCL1_VPDSCL_EASF_H_RINGEST_EVENTAP_GAIN 0x12129
|
||||
#define mmVPDSCL0_VPDSCL_EASF_H_RINGEST_EVENTAP_REDUCE 0x11F8E
|
||||
#define mmVPDSCL1_VPDSCL_EASF_H_RINGEST_EVENTAP_REDUCE 0x1212A
|
||||
#define mmVPDSCL0_VPDSCL_EASF_V_RINGEST_EVENTAP_GAIN 0x11F8F
|
||||
#define mmVPDSCL1_VPDSCL_EASF_V_RINGEST_EVENTAP_GAIN 0x1212B
|
||||
#define mmVPDSCL0_VPDSCL_EASF_V_RINGEST_EVENTAP_REDUCE 0x11F90
|
||||
#define mmVPDSCL1_VPDSCL_EASF_V_RINGEST_EVENTAP_REDUCE 0x1212C
|
||||
#define mmVPDSCL0_VPDSCL_EASF_V_RINGEST_3TAP_CNTL1 0x11F91
|
||||
#define mmVPDSCL1_VPDSCL_EASF_V_RINGEST_3TAP_CNTL1 0x1212D
|
||||
#define mmVPDSCL0_VPDSCL_EASF_V_RINGEST_3TAP_CNTL2 0x11F92
|
||||
#define mmVPDSCL1_VPDSCL_EASF_V_RINGEST_3TAP_CNTL2 0x1212E
|
||||
#define mmVPDSCL0_VPDSCL_EASF_V_RINGEST_3TAP_CNTL3 0x11F93
|
||||
#define mmVPDSCL1_VPDSCL_EASF_V_RINGEST_3TAP_CNTL3 0x1212F
|
||||
#define mmVPDSCL0_VPDSCL_EASF_RINGEST_FORCE 0x11F94
|
||||
#define mmVPDSCL1_VPDSCL_EASF_RINGEST_FORCE 0x12130
|
||||
#define mmVPDSCL0_VPDSCL_EASF_H_BF_CNTL 0x11F95
|
||||
#define mmVPDSCL1_VPDSCL_EASF_H_BF_CNTL 0x12131
|
||||
#define mmVPDSCL0_VPDSCL_EASF_H_BF_FINAL_MAX_MIN 0x11F96
|
||||
#define mmVPDSCL1_VPDSCL_EASF_H_BF_FINAL_MAX_MIN 0x12132
|
||||
#define mmVPDSCL0_VPDSCL_EASF_V_BF_CNTL 0x11F97
|
||||
#define mmVPDSCL1_VPDSCL_EASF_V_BF_CNTL 0x12133
|
||||
#define mmVPDSCL0_VPDSCL_EASF_V_BF_FINAL_MAX_MIN 0x11F98
|
||||
#define mmVPDSCL1_VPDSCL_EASF_V_BF_FINAL_MAX_MIN 0x12134
|
||||
#define mmVPDSCL0_VPDSCL_EASF_H_BF1_PWL_SEG0 0x11F99
|
||||
#define mmVPDSCL1_VPDSCL_EASF_H_BF1_PWL_SEG0 0x12135
|
||||
#define mmVPDSCL0_VPDSCL_EASF_H_BF1_PWL_SEG1 0x11F9A
|
||||
#define mmVPDSCL1_VPDSCL_EASF_H_BF1_PWL_SEG1 0x12136
|
||||
#define mmVPDSCL0_VPDSCL_EASF_H_BF1_PWL_SEG2 0x11F9B
|
||||
#define mmVPDSCL1_VPDSCL_EASF_H_BF1_PWL_SEG2 0x12137
|
||||
#define mmVPDSCL0_VPDSCL_EASF_H_BF1_PWL_SEG3 0x11F9C
|
||||
#define mmVPDSCL1_VPDSCL_EASF_H_BF1_PWL_SEG3 0x12138
|
||||
#define mmVPDSCL0_VPDSCL_EASF_H_BF1_PWL_SEG4 0x11F9D
|
||||
#define mmVPDSCL1_VPDSCL_EASF_H_BF1_PWL_SEG4 0x12139
|
||||
#define mmVPDSCL0_VPDSCL_EASF_H_BF1_PWL_SEG5 0x11F9E
|
||||
#define mmVPDSCL1_VPDSCL_EASF_H_BF1_PWL_SEG5 0x1213A
|
||||
#define mmVPDSCL0_VPDSCL_EASF_H_BF1_PWL_SEG6 0x11F9F
|
||||
#define mmVPDSCL1_VPDSCL_EASF_H_BF1_PWL_SEG6 0x1213B
|
||||
#define mmVPDSCL0_VPDSCL_EASF_H_BF1_PWL_SEG7 0x11FA0
|
||||
#define mmVPDSCL1_VPDSCL_EASF_H_BF1_PWL_SEG7 0x1213C
|
||||
#define mmVPDSCL0_VPDSCL_EASF_V_BF1_PWL_SEG0 0x11FA1
|
||||
#define mmVPDSCL1_VPDSCL_EASF_V_BF1_PWL_SEG0 0x1213D
|
||||
#define mmVPDSCL0_VPDSCL_EASF_V_BF1_PWL_SEG1 0x11FA2
|
||||
#define mmVPDSCL1_VPDSCL_EASF_V_BF1_PWL_SEG1 0x1213E
|
||||
#define mmVPDSCL0_VPDSCL_EASF_V_BF1_PWL_SEG2 0x11FA3
|
||||
#define mmVPDSCL1_VPDSCL_EASF_V_BF1_PWL_SEG2 0x1213F
|
||||
#define mmVPDSCL0_VPDSCL_EASF_V_BF1_PWL_SEG3 0x11FA4
|
||||
#define mmVPDSCL1_VPDSCL_EASF_V_BF1_PWL_SEG3 0x12140
|
||||
#define mmVPDSCL0_VPDSCL_EASF_V_BF1_PWL_SEG4 0x11FA5
|
||||
#define mmVPDSCL1_VPDSCL_EASF_V_BF1_PWL_SEG4 0x12141
|
||||
#define mmVPDSCL0_VPDSCL_EASF_V_BF1_PWL_SEG5 0x11FA6
|
||||
#define mmVPDSCL1_VPDSCL_EASF_V_BF1_PWL_SEG5 0x12142
|
||||
#define mmVPDSCL0_VPDSCL_EASF_V_BF1_PWL_SEG6 0x11FA7
|
||||
#define mmVPDSCL1_VPDSCL_EASF_V_BF1_PWL_SEG6 0x12143
|
||||
#define mmVPDSCL0_VPDSCL_EASF_V_BF1_PWL_SEG7 0x11FA8
|
||||
#define mmVPDSCL1_VPDSCL_EASF_V_BF1_PWL_SEG7 0x12144
|
||||
#define mmVPDSCL0_VPDSCL_EASF_H_BF3_PWL_SEG0 0x11FA9
|
||||
#define mmVPDSCL1_VPDSCL_EASF_H_BF3_PWL_SEG0 0x12145
|
||||
#define mmVPDSCL0_VPDSCL_EASF_H_BF3_PWL_SEG1 0x11FAA
|
||||
#define mmVPDSCL1_VPDSCL_EASF_H_BF3_PWL_SEG1 0x12146
|
||||
#define mmVPDSCL0_VPDSCL_EASF_H_BF3_PWL_SEG2 0x11FAB
|
||||
#define mmVPDSCL1_VPDSCL_EASF_H_BF3_PWL_SEG2 0x12147
|
||||
#define mmVPDSCL0_VPDSCL_EASF_H_BF3_PWL_SEG3 0x11FAC
|
||||
#define mmVPDSCL1_VPDSCL_EASF_H_BF3_PWL_SEG3 0x12148
|
||||
#define mmVPDSCL0_VPDSCL_EASF_H_BF3_PWL_SEG4 0x11FAD
|
||||
#define mmVPDSCL1_VPDSCL_EASF_H_BF3_PWL_SEG4 0x12149
|
||||
#define mmVPDSCL0_VPDSCL_EASF_H_BF3_PWL_SEG5 0x11FAE
|
||||
#define mmVPDSCL1_VPDSCL_EASF_H_BF3_PWL_SEG5 0x1214A
|
||||
#define mmVPDSCL0_VPDSCL_EASF_V_BF3_PWL_SEG0 0x11FAF
|
||||
#define mmVPDSCL1_VPDSCL_EASF_V_BF3_PWL_SEG0 0x1214B
|
||||
#define mmVPDSCL0_VPDSCL_EASF_V_BF3_PWL_SEG1 0x11FB0
|
||||
#define mmVPDSCL1_VPDSCL_EASF_V_BF3_PWL_SEG1 0x1214C
|
||||
#define mmVPDSCL0_VPDSCL_EASF_V_BF3_PWL_SEG2 0x11FB1
|
||||
#define mmVPDSCL1_VPDSCL_EASF_V_BF3_PWL_SEG2 0x1214D
|
||||
#define mmVPDSCL0_VPDSCL_EASF_V_BF3_PWL_SEG3 0x11FB2
|
||||
#define mmVPDSCL1_VPDSCL_EASF_V_BF3_PWL_SEG3 0x1214E
|
||||
#define mmVPDSCL0_VPDSCL_EASF_V_BF3_PWL_SEG4 0x11FB3
|
||||
#define mmVPDSCL1_VPDSCL_EASF_V_BF3_PWL_SEG4 0x1214F
|
||||
#define mmVPDSCL0_VPDSCL_EASF_V_BF3_PWL_SEG5 0x11FB4
|
||||
#define mmVPDSCL1_VPDSCL_EASF_V_BF3_PWL_SEG5 0x12150
|
||||
#define mmVPDSCL0_VPISHARP_MODE 0x11FB5
|
||||
#define mmVPDSCL1_VPISHARP_MODE 0x12151
|
||||
#define mmVPDSCL0_VPISHARP_DELTA_CTRL 0x11FB6
|
||||
#define mmVPDSCL1_VPISHARP_DELTA_CTRL 0x12152
|
||||
#define mmVPDSCL0_VPISHARP_DELTA_INDEX 0x11FB7
|
||||
#define mmVPDSCL1_VPISHARP_DELTA_INDEX 0x12153
|
||||
#define mmVPDSCL0_VPISHARP_DELTA_DATA 0x11FB8
|
||||
#define mmVPDSCL1_VPISHARP_DELTA_DATA 0x12154
|
||||
#define mmVPDSCL0_VPISHARP_NLDELTA_SOFT_CLIP 0x11FB9
|
||||
#define mmVPDSCL1_VPISHARP_NLDELTA_SOFT_CLIP 0x12155
|
||||
#define mmVPDSCL0_VPISHARP_NOISEDET_THRESHOLD 0x11FBA
|
||||
#define mmVPDSCL1_VPISHARP_NOISEDET_THRESHOLD 0x12156
|
||||
#define mmVPDSCL0_VPISHARP_NOISE_GAIN_PWL 0x11FBB
|
||||
#define mmVPDSCL1_VPISHARP_NOISE_GAIN_PWL 0x12157
|
||||
#define mmVPDSCL0_VPISHARP_LBA_PWL_SEG0 0x11FBC
|
||||
#define mmVPDSCL1_VPISHARP_LBA_PWL_SEG0 0x12158
|
||||
#define mmVPDSCL0_VPISHARP_LBA_PWL_SEG1 0x11FBD
|
||||
#define mmVPDSCL1_VPISHARP_LBA_PWL_SEG1 0x12159
|
||||
#define mmVPDSCL0_VPISHARP_LBA_PWL_SEG2 0x11FBE
|
||||
#define mmVPDSCL1_VPISHARP_LBA_PWL_SEG2 0x1215A
|
||||
#define mmVPDSCL0_VPISHARP_LBA_PWL_SEG3 0x11FBF
|
||||
#define mmVPDSCL1_VPISHARP_LBA_PWL_SEG3 0x1215B
|
||||
#define mmVPDSCL0_VPISHARP_LBA_PWL_SEG4 0x11FC0
|
||||
#define mmVPDSCL1_VPISHARP_LBA_PWL_SEG4 0x1215C
|
||||
#define mmVPDSCL0_VPISHARP_LBA_PWL_SEG5 0x11FC1
|
||||
#define mmVPDSCL1_VPISHARP_LBA_PWL_SEG5 0x1215D
|
||||
#define mmVPDSCL0_VPISHARP_DELTA_LUT_MEM_PWR_CTRL 0x11FC2
|
||||
#define mmVPDSCL1_VPISHARP_DELTA_LUT_MEM_PWR_CTRL 0x1215E
|
||||
|
||||
|
||||
// Registers from VPCM block
|
||||
|
||||
#define mmVPCM0_VPCM_CONTROL 0x1201C
|
||||
#define mmVPCM1_VPCM_CONTROL 0x121B8
|
||||
#define mmVPCM0_VPCM_POST_CSC_CONTROL 0x1201D
|
||||
#define mmVPCM1_VPCM_POST_CSC_CONTROL 0x121B9
|
||||
#define mmVPCM0_VPCM_POST_CSC_C11_C12 0x1201E
|
||||
#define mmVPCM1_VPCM_POST_CSC_C11_C12 0x121BA
|
||||
#define mmVPCM0_VPCM_POST_CSC_C13_C14 0x1201F
|
||||
#define mmVPCM1_VPCM_POST_CSC_C13_C14 0x121BB
|
||||
#define mmVPCM0_VPCM_POST_CSC_C21_C22 0x12020
|
||||
#define mmVPCM1_VPCM_POST_CSC_C21_C22 0x121BC
|
||||
#define mmVPCM0_VPCM_POST_CSC_C23_C24 0x12021
|
||||
#define mmVPCM1_VPCM_POST_CSC_C23_C24 0x121BD
|
||||
#define mmVPCM0_VPCM_POST_CSC_C31_C32 0x12022
|
||||
#define mmVPCM1_VPCM_POST_CSC_C31_C32 0x121BE
|
||||
#define mmVPCM0_VPCM_POST_CSC_C33_C34 0x12023
|
||||
#define mmVPCM1_VPCM_POST_CSC_C33_C34 0x121BF
|
||||
#define mmVPCM0_VPCM_BIAS_CR_R 0x12024
|
||||
#define mmVPCM1_VPCM_BIAS_CR_R 0x121C0
|
||||
#define mmVPCM0_VPCM_BIAS_Y_G_CB_B 0x12025
|
||||
#define mmVPCM1_VPCM_BIAS_Y_G_CB_B 0x121C1
|
||||
#define mmVPCM0_VPCM_GAMCOR_CONTROL 0x12026
|
||||
#define mmVPCM1_VPCM_GAMCOR_CONTROL 0x121C2
|
||||
#define mmVPCM0_VPCM_GAMCOR_LUT_INDEX 0x12027
|
||||
#define mmVPCM1_VPCM_GAMCOR_LUT_INDEX 0x121C3
|
||||
#define mmVPCM0_VPCM_GAMCOR_LUT_DATA 0x12028
|
||||
#define mmVPCM1_VPCM_GAMCOR_LUT_DATA 0x121C4
|
||||
#define mmVPCM0_VPCM_GAMCOR_LUT_CONTROL 0x12029
|
||||
#define mmVPCM1_VPCM_GAMCOR_LUT_CONTROL 0x121C5
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_START_CNTL_B 0x1202A
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_START_CNTL_B 0x121C6
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_START_CNTL_G 0x1202B
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_START_CNTL_G 0x121C7
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_START_CNTL_R 0x1202C
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_START_CNTL_R 0x121C8
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_START_SLOPE_CNTL_B 0x1202D
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_START_SLOPE_CNTL_B 0x121C9
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_START_SLOPE_CNTL_G 0x1202E
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_START_SLOPE_CNTL_G 0x121CA
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_START_SLOPE_CNTL_R 0x1202F
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_START_SLOPE_CNTL_R 0x121CB
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_START_BASE_CNTL_B 0x12030
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_START_BASE_CNTL_B 0x121CC
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_START_BASE_CNTL_G 0x12031
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_START_BASE_CNTL_G 0x121CD
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_START_BASE_CNTL_R 0x12032
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_START_BASE_CNTL_R 0x121CE
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_END_CNTL1_B 0x12033
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_END_CNTL1_B 0x121CF
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_END_CNTL2_B 0x12034
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_END_CNTL2_B 0x121D0
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_END_CNTL1_G 0x12035
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_END_CNTL1_G 0x121D1
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_END_CNTL2_G 0x12036
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_END_CNTL2_G 0x121D2
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_END_CNTL1_R 0x12037
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_END_CNTL1_R 0x121D3
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_END_CNTL2_R 0x12038
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_END_CNTL2_R 0x121D4
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_OFFSET_B 0x12039
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_OFFSET_B 0x121D5
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_OFFSET_G 0x1203A
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_OFFSET_G 0x121D6
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_OFFSET_R 0x1203B
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_OFFSET_R 0x121D7
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_REGION_0_1 0x1203C
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_REGION_0_1 0x121D8
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_REGION_2_3 0x1203D
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_REGION_2_3 0x121D9
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_REGION_4_5 0x1203E
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_REGION_4_5 0x121DA
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_REGION_6_7 0x1203F
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_REGION_6_7 0x121DB
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_REGION_8_9 0x12040
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_REGION_8_9 0x121DC
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_REGION_10_11 0x12041
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_REGION_10_11 0x121DD
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_REGION_12_13 0x12042
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_REGION_12_13 0x121DE
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_REGION_14_15 0x12043
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_REGION_14_15 0x121DF
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_REGION_16_17 0x12044
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_REGION_16_17 0x121E0
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_REGION_18_19 0x12045
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_REGION_18_19 0x121E1
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_REGION_20_21 0x12046
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_REGION_20_21 0x121E2
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_REGION_22_23 0x12047
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_REGION_22_23 0x121E3
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_REGION_24_25 0x12048
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_REGION_24_25 0x121E4
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_REGION_26_27 0x12049
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_REGION_26_27 0x121E5
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_REGION_28_29 0x1204A
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_REGION_28_29 0x121E6
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_REGION_30_31 0x1204B
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_REGION_30_31 0x121E7
|
||||
#define mmVPCM0_VPCM_GAMCOR_RAMA_REGION_32_33 0x1204C
|
||||
#define mmVPCM1_VPCM_GAMCOR_RAMA_REGION_32_33 0x121E8
|
||||
#define mmVPCM0_VPCM_HDR_MULT_COEF 0x1204D
|
||||
#define mmVPCM1_VPCM_HDR_MULT_COEF 0x121E9
|
||||
#define mmVPCM0_VPCM_MEM_PWR_CTRL 0x1204E
|
||||
#define mmVPCM1_VPCM_MEM_PWR_CTRL 0x121EA
|
||||
#define mmVPCM0_VPCM_MEM_PWR_STATUS 0x1204F
|
||||
#define mmVPCM1_VPCM_MEM_PWR_STATUS 0x121EB
|
||||
#define mmVPCM0_VPCM_DEALPHA 0x12051
|
||||
#define mmVPCM1_VPCM_DEALPHA 0x121ED
|
||||
#define mmVPCM0_VPCM_COEF_FORMAT 0x12052
|
||||
#define mmVPCM1_VPCM_COEF_FORMAT 0x121EE
|
||||
#define mmVPCM0_VPCM_HIST_CNTL 0x12055
|
||||
#define mmVPCM1_VPCM_HIST_CNTL 0x121F1
|
||||
#define mmVPCM0_VPCM_HIST_SCALE_SRC1 0x12056
|
||||
#define mmVPCM1_VPCM_HIST_SCALE_SRC1 0x121F2
|
||||
#define mmVPCM0_VPCM_HIST_COEFA_SRC2 0x12057
|
||||
#define mmVPCM1_VPCM_HIST_COEFA_SRC2 0x121F3
|
||||
#define mmVPCM0_VPCM_HIST_COEFB_SRC2 0x12058
|
||||
#define mmVPCM1_VPCM_HIST_COEFB_SRC2 0x121F4
|
||||
#define mmVPCM0_VPCM_HIST_COEFC_SRC2 0x12059
|
||||
#define mmVPCM1_VPCM_HIST_COEFC_SRC2 0x121F5
|
||||
#define mmVPCM0_VPCM_HIST_SCALE_SRC3 0x1205A
|
||||
#define mmVPCM1_VPCM_HIST_SCALE_SRC3 0x121F6
|
||||
#define mmVPCM0_VPCM_HIST_BIAS_SRC1 0x1205B
|
||||
#define mmVPCM1_VPCM_HIST_BIAS_SRC1 0x121F7
|
||||
#define mmVPCM0_VPCM_HIST_BIAS_SRC2 0x1205C
|
||||
#define mmVPCM1_VPCM_HIST_BIAS_SRC2 0x121F8
|
||||
#define mmVPCM0_VPCM_HIST_BIAS_SRC3 0x1205D
|
||||
#define mmVPCM1_VPCM_HIST_BIAS_SRC3 0x121F9
|
||||
|
||||
|
||||
// Registers from VPDPP_TOP block
|
||||
|
||||
#define mmVPDPP_TOP0_VPDPP_CONTROL 0x11F38
|
||||
#define mmVPDPP_TOP1_VPDPP_CONTROL 0x120D4
|
||||
#define mmVPDPP_TOP0_VPDPP_CRC_CTRL 0x11F3C
|
||||
#define mmVPDPP_TOP1_VPDPP_CRC_CTRL 0x120D8
|
||||
|
||||
|
||||
// Registers from VPMPC_CFG block
|
||||
|
||||
#define mmVPMPC_CLOCK_CONTROL 0x12768
|
||||
#define mmVPMPC_SOFT_RESET 0x12769
|
||||
#define mmVPMPC_CRC_CTRL 0x1276A
|
||||
#define mmVPMPC_CRC_SEL_CONTROL 0x1276B
|
||||
#define mmVPMPC_CRC_RESULT_AR 0x1276C
|
||||
#define mmVPMPC_CRC_RESULT_GB 0x1276D
|
||||
#define mmVPMPC_CRC_RESULT_C 0x1276E
|
||||
#define mmVPMPC_BYPASS_BG_AR 0x12771
|
||||
#define mmVPMPC_BYPASS_BG_GB 0x12772
|
||||
#define mmVPMPC_HOST_READ_CONTROL 0x12773
|
||||
#define mmVPMPC_PENDING_STATUS_MISC 0x12774
|
||||
#define mmVPMPC_VPCDC0_3DLUT_FL_CONFIG 0x12775
|
||||
#define mmVPMPC_VPCDC0_3DLUT_FL_BIAS_SCALE 0x12776
|
||||
|
||||
|
||||
// Registers from VPMPC_OCSC block
|
||||
|
||||
#define mmVPMPC_OUT0_MUX 0x12789
|
||||
#define mmVPMPC_OUT0_FLOAT_CONTROL 0x1278A
|
||||
#define mmVPMPC_OUT0_DENORM_CONTROL 0x1278B
|
||||
#define mmVPMPC_OUT0_DENORM_CLAMP_G_Y 0x1278C
|
||||
#define mmVPMPC_OUT0_DENORM_CLAMP_B_CB 0x1278D
|
||||
#define mmVPMPC_OUT1_MUX 0x1278E
|
||||
#define mmVPMPC_OUT1_FLOAT_CONTROL 0x1278F
|
||||
#define mmVPMPC_OUT1_DENORM_CONTROL 0x12790
|
||||
#define mmVPMPC_OUT1_DENORM_CLAMP_G_Y 0x12791
|
||||
#define mmVPMPC_OUT1_DENORM_CLAMP_B_CB 0x12792
|
||||
#define mmVPMPC_OUT_CSC_COEF_FORMAT 0x1279D
|
||||
#define mmVPMPC_OUT0_CSC_MODE 0x1279E
|
||||
#define mmVPMPC_OUT0_CSC_C11_C12_A 0x1279F
|
||||
#define mmVPMPC_OUT0_CSC_C13_C14_A 0x127A0
|
||||
#define mmVPMPC_OUT0_CSC_C21_C22_A 0x127A1
|
||||
#define mmVPMPC_OUT0_CSC_C23_C24_A 0x127A2
|
||||
#define mmVPMPC_OUT0_CSC_C31_C32_A 0x127A3
|
||||
#define mmVPMPC_OUT0_CSC_C33_C34_A 0x127A4
|
||||
#define mmVPMPC_OUT1_CSC_MODE 0x127A5
|
||||
#define mmVPMPC_OUT1_CSC_C11_C12_A 0x127A6
|
||||
#define mmVPMPC_OUT1_CSC_C13_C14_A 0x127A7
|
||||
#define mmVPMPC_OUT1_CSC_C21_C22_A 0x127A8
|
||||
#define mmVPMPC_OUT1_CSC_C23_C24_A 0x127A9
|
||||
#define mmVPMPC_OUT1_CSC_C31_C32_A 0x127AA
|
||||
#define mmVPMPC_OUT1_CSC_C33_C34_A 0x127AB
|
||||
|
||||
|
||||
// Registers from VPMPCC block
|
||||
|
||||
#define mmVPMPCC0_VPMPCC_TOP_SEL 0x125C0
|
||||
#define mmVPMPCC1_VPMPCC_TOP_SEL 0x125D5
|
||||
#define mmVPMPCC0_VPMPCC_BOT_SEL 0x125C1
|
||||
#define mmVPMPCC1_VPMPCC_BOT_SEL 0x125D6
|
||||
#define mmVPMPCC0_VPMPCC_VPOPP_ID 0x125C2
|
||||
#define mmVPMPCC1_VPMPCC_VPOPP_ID 0x125D7
|
||||
#define mmVPMPCC0_VPMPCC_CONTROL 0x125C3
|
||||
#define mmVPMPCC1_VPMPCC_CONTROL 0x125D8
|
||||
#define mmVPMPCC0_VPMPCC_CONTROL2 0x125C4
|
||||
#define mmVPMPCC1_VPMPCC_CONTROL2 0x125D9
|
||||
#define mmVPMPCC0_VPMPCC_TOP_GAIN 0x125C5
|
||||
#define mmVPMPCC1_VPMPCC_TOP_GAIN 0x125DA
|
||||
#define mmVPMPCC0_VPMPCC_BOT_GAIN_INSIDE 0x125C6
|
||||
#define mmVPMPCC1_VPMPCC_BOT_GAIN_INSIDE 0x125DB
|
||||
#define mmVPMPCC0_VPMPCC_BOT_GAIN_OUTSIDE 0x125C7
|
||||
#define mmVPMPCC1_VPMPCC_BOT_GAIN_OUTSIDE 0x125DC
|
||||
#define mmVPMPCC0_VPMPCC_MOVABLE_CM_LOCATION_CONTROL 0x125C8
|
||||
#define mmVPMPCC1_VPMPCC_MOVABLE_CM_LOCATION_CONTROL 0x125DD
|
||||
#define mmVPMPCC0_VPMPCC_BG_R_CR 0x125C9
|
||||
#define mmVPMPCC1_VPMPCC_BG_R_CR 0x125DE
|
||||
#define mmVPMPCC0_VPMPCC_BG_G_Y 0x125CA
|
||||
#define mmVPMPCC1_VPMPCC_BG_G_Y 0x125DF
|
||||
#define mmVPMPCC0_VPMPCC_BG_B_CB 0x125CB
|
||||
#define mmVPMPCC1_VPMPCC_BG_B_CB 0x125E0
|
||||
#define mmVPMPCC0_VPMPCC_MEM_PWR_CTRL 0x125CC
|
||||
#define mmVPMPCC1_VPMPCC_MEM_PWR_CTRL 0x125E1
|
||||
#define mmVPMPCC0_VPMPCC_STATUS 0x125CD
|
||||
#define mmVPMPCC1_VPMPCC_STATUS 0x125E2
|
||||
|
||||
|
||||
// Registers from VPMPCC_OGAM block
|
||||
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_CONTROL 0x12614
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_CONTROL 0x1264B
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_LUT_INDEX 0x12615
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_LUT_INDEX 0x1264C
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_LUT_DATA 0x12616
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_LUT_DATA 0x1264D
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_LUT_CONTROL 0x12617
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_LUT_CONTROL 0x1264E
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_START_CNTL_B 0x12618
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_START_CNTL_B 0x1264F
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_START_CNTL_G 0x12619
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_START_CNTL_G 0x12650
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_START_CNTL_R 0x1261A
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_START_CNTL_R 0x12651
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_START_SLOPE_CNTL_B 0x1261B
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_START_SLOPE_CNTL_B 0x12652
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_START_SLOPE_CNTL_G 0x1261C
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_START_SLOPE_CNTL_G 0x12653
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_START_SLOPE_CNTL_R 0x1261D
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_START_SLOPE_CNTL_R 0x12654
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_START_BASE_CNTL_B 0x1261E
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_START_BASE_CNTL_B 0x12655
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_START_BASE_CNTL_G 0x1261F
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_START_BASE_CNTL_G 0x12656
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_START_BASE_CNTL_R 0x12620
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_START_BASE_CNTL_R 0x12657
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_END_CNTL1_B 0x12621
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_END_CNTL1_B 0x12658
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_END_CNTL2_B 0x12622
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_END_CNTL2_B 0x12659
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_END_CNTL1_G 0x12623
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_END_CNTL1_G 0x1265A
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_END_CNTL2_G 0x12624
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_END_CNTL2_G 0x1265B
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_END_CNTL1_R 0x12625
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_END_CNTL1_R 0x1265C
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_END_CNTL2_R 0x12626
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_END_CNTL2_R 0x1265D
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_OFFSET_B 0x12627
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_OFFSET_B 0x1265E
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_OFFSET_G 0x12628
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_OFFSET_G 0x1265F
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_OFFSET_R 0x12629
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_OFFSET_R 0x12660
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_REGION_0_1 0x1262A
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_REGION_0_1 0x12661
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_REGION_2_3 0x1262B
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_REGION_2_3 0x12662
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_REGION_4_5 0x1262C
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_REGION_4_5 0x12663
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_REGION_6_7 0x1262D
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_REGION_6_7 0x12664
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_REGION_8_9 0x1262E
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_REGION_8_9 0x12665
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_REGION_10_11 0x1262F
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_REGION_10_11 0x12666
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_REGION_12_13 0x12630
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_REGION_12_13 0x12667
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_REGION_14_15 0x12631
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_REGION_14_15 0x12668
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_REGION_16_17 0x12632
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_REGION_16_17 0x12669
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_REGION_18_19 0x12633
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_REGION_18_19 0x1266A
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_REGION_20_21 0x12634
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_REGION_20_21 0x1266B
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_REGION_22_23 0x12635
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_REGION_22_23 0x1266C
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_REGION_24_25 0x12636
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_REGION_24_25 0x1266D
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_REGION_26_27 0x12637
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_REGION_26_27 0x1266E
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_REGION_28_29 0x12638
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_REGION_28_29 0x1266F
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_REGION_30_31 0x12639
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_REGION_30_31 0x12670
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_OGAM_RAMA_REGION_32_33 0x1263A
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_OGAM_RAMA_REGION_32_33 0x12671
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_GAMUT_REMAP_COEF_FORMAT 0x1263B
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_GAMUT_REMAP_COEF_FORMAT 0x12672
|
||||
#define mmVPMPCC_OGAM0_VPMPCC_GAMUT_REMAP_MODE 0x1263C
|
||||
#define mmVPMPCC_OGAM1_VPMPCC_GAMUT_REMAP_MODE 0x12673
|
||||
#define mmVPMPCC_OGAM0_VPMPC_GAMUT_REMAP_C11_C12_A 0x1263D
|
||||
#define mmVPMPCC_OGAM1_VPMPC_GAMUT_REMAP_C11_C12_A 0x12674
|
||||
#define mmVPMPCC_OGAM0_VPMPC_GAMUT_REMAP_C13_C14_A 0x1263E
|
||||
#define mmVPMPCC_OGAM1_VPMPC_GAMUT_REMAP_C13_C14_A 0x12675
|
||||
#define mmVPMPCC_OGAM0_VPMPC_GAMUT_REMAP_C21_C22_A 0x1263F
|
||||
#define mmVPMPCC_OGAM1_VPMPC_GAMUT_REMAP_C21_C22_A 0x12676
|
||||
#define mmVPMPCC_OGAM0_VPMPC_GAMUT_REMAP_C23_C24_A 0x12640
|
||||
#define mmVPMPCC_OGAM1_VPMPC_GAMUT_REMAP_C23_C24_A 0x12677
|
||||
#define mmVPMPCC_OGAM0_VPMPC_GAMUT_REMAP_C31_C32_A 0x12641
|
||||
#define mmVPMPCC_OGAM1_VPMPC_GAMUT_REMAP_C31_C32_A 0x12678
|
||||
#define mmVPMPCC_OGAM0_VPMPC_GAMUT_REMAP_C33_C34_A 0x12642
|
||||
#define mmVPMPCC_OGAM1_VPMPC_GAMUT_REMAP_C33_C34_A 0x12679
|
||||
|
||||
|
||||
// Registers from VPMPCC_MCM block
|
||||
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_CONTROL 0x12882
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_CONTROL 0x12912
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_LUT_INDEX 0x12883
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_LUT_INDEX 0x12913
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_LUT_DATA 0x12884
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_LUT_DATA 0x12914
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_LUT_CONTROL 0x12885
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_LUT_CONTROL 0x12915
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_START_CNTL_B 0x12886
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_START_CNTL_B 0x12916
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_START_CNTL_G 0x12887
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_START_CNTL_G 0x12917
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_START_CNTL_R 0x12888
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_START_CNTL_R 0x12918
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_START_SLOPE_CNTL_B 0x12889
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_START_SLOPE_CNTL_B 0x12919
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_START_SLOPE_CNTL_G 0x1288A
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_START_SLOPE_CNTL_G 0x1291A
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_START_SLOPE_CNTL_R 0x1288B
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_START_SLOPE_CNTL_R 0x1291B
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_START_BASE_CNTL_B 0x1288C
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_START_BASE_CNTL_B 0x1291C
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_START_BASE_CNTL_G 0x1288D
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_START_BASE_CNTL_G 0x1291D
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_START_BASE_CNTL_R 0x1288E
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_START_BASE_CNTL_R 0x1291E
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_END_CNTL1_B 0x1288F
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_END_CNTL1_B 0x1291F
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_END_CNTL2_B 0x12890
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_END_CNTL2_B 0x12920
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_END_CNTL1_G 0x12891
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_END_CNTL1_G 0x12921
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_END_CNTL2_G 0x12892
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_END_CNTL2_G 0x12922
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_END_CNTL1_R 0x12893
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_END_CNTL1_R 0x12923
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_END_CNTL2_R 0x12894
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_END_CNTL2_R 0x12924
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_OFFSET_B 0x12895
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_OFFSET_B 0x12925
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_OFFSET_G 0x12896
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_OFFSET_G 0x12926
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_OFFSET_R 0x12897
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_OFFSET_R 0x12927
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_REGION_0_1 0x12898
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_REGION_0_1 0x12928
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_REGION_2_3 0x12899
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_REGION_2_3 0x12929
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_REGION_4_5 0x1289A
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_REGION_4_5 0x1292A
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_REGION_6_7 0x1289B
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_REGION_6_7 0x1292B
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_REGION_8_9 0x1289C
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_REGION_8_9 0x1292C
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_REGION_10_11 0x1289D
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_REGION_10_11 0x1292D
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_REGION_12_13 0x1289E
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_REGION_12_13 0x1292E
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_REGION_14_15 0x1289F
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_REGION_14_15 0x1292F
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_REGION_16_17 0x128A0
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_REGION_16_17 0x12930
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_REGION_18_19 0x128A1
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_REGION_18_19 0x12931
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_REGION_20_21 0x128A2
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_REGION_20_21 0x12932
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_REGION_22_23 0x128A3
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_REGION_22_23 0x12933
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_REGION_24_25 0x128A4
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_REGION_24_25 0x12934
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_REGION_26_27 0x128A5
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_REGION_26_27 0x12935
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_REGION_28_29 0x128A6
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_REGION_28_29 0x12936
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_REGION_30_31 0x128A7
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_REGION_30_31 0x12937
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_1DLUT_RAMA_REGION_32_33 0x128A8
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_1DLUT_RAMA_REGION_32_33 0x12938
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_FIRST_GAMUT_REMAP_COEF_FORMAT 0x128A9
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_FIRST_GAMUT_REMAP_COEF_FORMAT 0x12939
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_FIRST_GAMUT_REMAP_MODE 0x128AA
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_FIRST_GAMUT_REMAP_MODE 0x1293A
|
||||
#define mmVPMPCC_MCM0_VPMPC_MCM_FIRST_GAMUT_REMAP_C11_C12_SETA 0x128AB
|
||||
#define mmVPMPCC_MCM1_VPMPC_MCM_FIRST_GAMUT_REMAP_C11_C12_SETA 0x1293B
|
||||
#define mmVPMPCC_MCM0_VPMPC_MCM_FIRST_GAMUT_REMAP_C13_C14_SETA 0x128AC
|
||||
#define mmVPMPCC_MCM1_VPMPC_MCM_FIRST_GAMUT_REMAP_C13_C14_SETA 0x1293C
|
||||
#define mmVPMPCC_MCM0_VPMPC_MCM_FIRST_GAMUT_REMAP_C21_C22_SETA 0x128AD
|
||||
#define mmVPMPCC_MCM1_VPMPC_MCM_FIRST_GAMUT_REMAP_C21_C22_SETA 0x1293D
|
||||
#define mmVPMPCC_MCM0_VPMPC_MCM_FIRST_GAMUT_REMAP_C23_C24_SETA 0x128AE
|
||||
#define mmVPMPCC_MCM1_VPMPC_MCM_FIRST_GAMUT_REMAP_C23_C24_SETA 0x1293E
|
||||
#define mmVPMPCC_MCM0_VPMPC_MCM_FIRST_GAMUT_REMAP_C31_C32_SETA 0x128AF
|
||||
#define mmVPMPCC_MCM1_VPMPC_MCM_FIRST_GAMUT_REMAP_C31_C32_SETA 0x1293F
|
||||
#define mmVPMPCC_MCM0_VPMPC_MCM_FIRST_GAMUT_REMAP_C33_C34_SETA 0x128B0
|
||||
#define mmVPMPCC_MCM1_VPMPC_MCM_FIRST_GAMUT_REMAP_C33_C34_SETA 0x12940
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_SECOND_GAMUT_REMAP_COEF_FORMAT 0x128B1
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_SECOND_GAMUT_REMAP_COEF_FORMAT 0x12941
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_SECOND_GAMUT_REMAP_MODE 0x128B2
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_SECOND_GAMUT_REMAP_MODE 0x12942
|
||||
#define mmVPMPCC_MCM0_VPMPC_MCM_SECOND_GAMUT_REMAP_C11_C12_SETA 0x128B3
|
||||
#define mmVPMPCC_MCM1_VPMPC_MCM_SECOND_GAMUT_REMAP_C11_C12_SETA 0x12943
|
||||
#define mmVPMPCC_MCM0_VPMPC_MCM_SECOND_GAMUT_REMAP_C13_C14_SETA 0x128B4
|
||||
#define mmVPMPCC_MCM1_VPMPC_MCM_SECOND_GAMUT_REMAP_C13_C14_SETA 0x12944
|
||||
#define mmVPMPCC_MCM0_VPMPC_MCM_SECOND_GAMUT_REMAP_C21_C22_SETA 0x128B5
|
||||
#define mmVPMPCC_MCM1_VPMPC_MCM_SECOND_GAMUT_REMAP_C21_C22_SETA 0x12945
|
||||
#define mmVPMPCC_MCM0_VPMPC_MCM_SECOND_GAMUT_REMAP_C23_C24_SETA 0x128B6
|
||||
#define mmVPMPCC_MCM1_VPMPC_MCM_SECOND_GAMUT_REMAP_C23_C24_SETA 0x12946
|
||||
#define mmVPMPCC_MCM0_VPMPC_MCM_SECOND_GAMUT_REMAP_C31_C32_SETA 0x128B7
|
||||
#define mmVPMPCC_MCM1_VPMPC_MCM_SECOND_GAMUT_REMAP_C31_C32_SETA 0x12947
|
||||
#define mmVPMPCC_MCM0_VPMPC_MCM_SECOND_GAMUT_REMAP_C33_C34_SETA 0x128B8
|
||||
#define mmVPMPCC_MCM1_VPMPC_MCM_SECOND_GAMUT_REMAP_C33_C34_SETA 0x12948
|
||||
#define mmVPMPCC_MCM0_VPMPCC_MCM_MEM_PWR_CTRL 0x128B9
|
||||
#define mmVPMPCC_MCM1_VPMPCC_MCM_MEM_PWR_CTRL 0x12949
|
||||
|
||||
|
||||
// Registers from VPMPC_RMCM block
|
||||
|
||||
#define mmVPMPC_RMCM_SHAPER_CONTROL 0x126F0
|
||||
#define mmVPMPC_RMCM_SHAPER_OFFSET_R 0x126F1
|
||||
#define mmVPMPC_RMCM_SHAPER_OFFSET_G 0x126F2
|
||||
#define mmVPMPC_RMCM_SHAPER_OFFSET_B 0x126F3
|
||||
#define mmVPMPC_RMCM_SHAPER_SCALE_R 0x126F4
|
||||
#define mmVPMPC_RMCM_SHAPER_SCALE_G_B 0x126F5
|
||||
#define mmVPMPC_RMCM_SHAPER_LUT_INDEX 0x126F6
|
||||
#define mmVPMPC_RMCM_SHAPER_LUT_DATA 0x126F7
|
||||
#define mmVPMPC_RMCM_SHAPER_LUT_WRITE_EN_MASK 0x126F8
|
||||
#define mmVPMPC_RMCM_SHAPER_RAMA_START_CNTL_B 0x126F9
|
||||
#define mmVPMPC_RMCM_SHAPER_RAMA_START_CNTL_G 0x126FA
|
||||
#define mmVPMPC_RMCM_SHAPER_RAMA_START_CNTL_R 0x126FB
|
||||
#define mmVPMPC_RMCM_SHAPER_RAMA_END_CNTL_B 0x126FC
|
||||
#define mmVPMPC_RMCM_SHAPER_RAMA_END_CNTL_G 0x126FD
|
||||
#define mmVPMPC_RMCM_SHAPER_RAMA_END_CNTL_R 0x126FE
|
||||
#define mmVPMPC_RMCM_SHAPER_RAMA_REGION_0_1 0x126FF
|
||||
#define mmVPMPC_RMCM_SHAPER_RAMA_REGION_2_3 0x12700
|
||||
#define mmVPMPC_RMCM_SHAPER_RAMA_REGION_4_5 0x12701
|
||||
#define mmVPMPC_RMCM_SHAPER_RAMA_REGION_6_7 0x12702
|
||||
#define mmVPMPC_RMCM_SHAPER_RAMA_REGION_8_9 0x12703
|
||||
#define mmVPMPC_RMCM_SHAPER_RAMA_REGION_10_11 0x12704
|
||||
#define mmVPMPC_RMCM_SHAPER_RAMA_REGION_12_13 0x12705
|
||||
#define mmVPMPC_RMCM_SHAPER_RAMA_REGION_14_15 0x12706
|
||||
#define mmVPMPC_RMCM_SHAPER_RAMA_REGION_16_17 0x12707
|
||||
#define mmVPMPC_RMCM_SHAPER_RAMA_REGION_18_19 0x12708
|
||||
#define mmVPMPC_RMCM_SHAPER_RAMA_REGION_20_21 0x12709
|
||||
#define mmVPMPC_RMCM_SHAPER_RAMA_REGION_22_23 0x1270A
|
||||
#define mmVPMPC_RMCM_SHAPER_RAMA_REGION_24_25 0x1270B
|
||||
#define mmVPMPC_RMCM_SHAPER_RAMA_REGION_26_27 0x1270C
|
||||
#define mmVPMPC_RMCM_SHAPER_RAMA_REGION_28_29 0x1270D
|
||||
#define mmVPMPC_RMCM_SHAPER_RAMA_REGION_30_31 0x1270E
|
||||
#define mmVPMPC_RMCM_SHAPER_RAMA_REGION_32_33 0x1270F
|
||||
#define mmVPMPC_RMCM_3DLUT_MODE 0x12710
|
||||
#define mmVPMPC_RMCM_3DLUT_INDEX 0x12711
|
||||
#define mmVPMPC_RMCM_3DLUT_DATA 0x12712
|
||||
#define mmVPMPC_RMCM_3DLUT_DATA_30BIT 0x12713
|
||||
#define mmVPMPC_RMCM_3DLUT_READ_WRITE_CONTROL 0x12714
|
||||
#define mmVPMPC_RMCM_3DLUT_OUT_NORM_FACTOR 0x12715
|
||||
#define mmVPMPC_RMCM_3DLUT_OUT_OFFSET_R 0x12716
|
||||
#define mmVPMPC_RMCM_3DLUT_OUT_OFFSET_G 0x12717
|
||||
#define mmVPMPC_RMCM_3DLUT_OUT_OFFSET_B 0x12718
|
||||
#define mmVPMPC_RMCM_GAMUT_REMAP_COEF_FORMAT 0x12719
|
||||
#define mmVPMPC_RMCM_GAMUT_REMAP_MODE 0x1271A
|
||||
#define mmVPMPC_RMCM_GAMUT_REMAP_C11_C12_SETA 0x1271B
|
||||
#define mmVPMPC_RMCM_GAMUT_REMAP_C13_C14_SETA 0x1271C
|
||||
#define mmVPMPC_RMCM_GAMUT_REMAP_C21_C22_SETA 0x1271D
|
||||
#define mmVPMPC_RMCM_GAMUT_REMAP_C23_C24_SETA 0x1271E
|
||||
#define mmVPMPC_RMCM_GAMUT_REMAP_C31_C32_SETA 0x1271F
|
||||
#define mmVPMPC_RMCM_GAMUT_REMAP_C33_C34_SETA 0x12720
|
||||
#define mmVPMPC_RMCM_MEM_PWR_CTRL 0x12721
|
||||
#define mmVPMPC_RMCM_3DLUT_FAST_LOAD_SELECT 0x12722
|
||||
#define mmVPMPC_RMCM_CNTL 0x12724
|
||||
|
||||
|
||||
// Registers from VPFMT block
|
||||
|
||||
#define mmVPFMT0_VPFMT_CLAMP_COMPONENT_R 0x12AB0
|
||||
#define mmVPFMT1_VPFMT_CLAMP_COMPONENT_R 0x12AF3
|
||||
#define mmVPFMT0_VPFMT_CLAMP_COMPONENT_G 0x12AB1
|
||||
#define mmVPFMT1_VPFMT_CLAMP_COMPONENT_G 0x12AF4
|
||||
#define mmVPFMT0_VPFMT_CLAMP_COMPONENT_B 0x12AB2
|
||||
#define mmVPFMT1_VPFMT_CLAMP_COMPONENT_B 0x12AF5
|
||||
#define mmVPFMT0_VPFMT_DYNAMIC_EXP_CNTL 0x12AB3
|
||||
#define mmVPFMT1_VPFMT_DYNAMIC_EXP_CNTL 0x12AF6
|
||||
#define mmVPFMT0_VPFMT_CONTROL 0x12AB4
|
||||
#define mmVPFMT1_VPFMT_CONTROL 0x12AF7
|
||||
#define mmVPFMT0_VPFMT_BIT_DEPTH_CONTROL 0x12AB5
|
||||
#define mmVPFMT1_VPFMT_BIT_DEPTH_CONTROL 0x12AF8
|
||||
#define mmVPFMT0_VPFMT_DITHER_RAND_R_SEED 0x12AB6
|
||||
#define mmVPFMT1_VPFMT_DITHER_RAND_R_SEED 0x12AF9
|
||||
#define mmVPFMT0_VPFMT_DITHER_RAND_G_SEED 0x12AB7
|
||||
#define mmVPFMT1_VPFMT_DITHER_RAND_G_SEED 0x12AFA
|
||||
#define mmVPFMT0_VPFMT_DITHER_RAND_B_SEED 0x12AB8
|
||||
#define mmVPFMT1_VPFMT_DITHER_RAND_B_SEED 0x12AFB
|
||||
#define mmVPFMT0_VPFMT_CLAMP_CNTL 0x12AB9
|
||||
#define mmVPFMT1_VPFMT_CLAMP_CNTL 0x12AFC
|
||||
#define mmVPFMT0_VPFMT_SUBSAMPLER_MEMORY_CONTROL 0x12ABA
|
||||
#define mmVPFMT1_VPFMT_SUBSAMPLER_MEMORY_CONTROL 0x12AFD
|
||||
|
||||
|
||||
// Registers from VPOPP_PIPE block
|
||||
|
||||
#define mmVPOPP_PIPE0_VPOPP_PIPE_CONTROL 0x12AD8
|
||||
#define mmVPOPP_PIPE1_VPOPP_PIPE_CONTROL 0x12B1B
|
||||
#define mmVPOPP_PIPE0_VPOPP_PIPE_OUTBG_EXT1 0x12AD9
|
||||
#define mmVPOPP_PIPE1_VPOPP_PIPE_OUTBG_EXT1 0x12B1C
|
||||
#define mmVPOPP_PIPE0_VPOPP_PIPE_OUTBG_EXT2 0x12ADA
|
||||
#define mmVPOPP_PIPE1_VPOPP_PIPE_OUTBG_EXT2 0x12B1D
|
||||
#define mmVPOPP_PIPE0_VPOPP_PIPE_OUTBG_COL1 0x12ADB
|
||||
#define mmVPOPP_PIPE1_VPOPP_PIPE_OUTBG_COL1 0x12B1E
|
||||
#define mmVPOPP_PIPE0_VPOPP_PIPE_OUTBG_COL2 0x12ADC
|
||||
#define mmVPOPP_PIPE1_VPOPP_PIPE_OUTBG_COL2 0x12B1F
|
||||
|
||||
|
||||
// Registers from VPOPP_TOP block
|
||||
|
||||
#define mmVPOPP_TOP_CLK_CONTROL 0x12BC2
|
||||
#define mmVPOPP_CRC_CONTROL 0x12BC4
|
||||
#define mmVPOPP_CRC_RESULT_RG 0x12BC5
|
||||
#define mmVPOPP_CRC_RESULT_BC 0x12BC6
|
||||
#define mmVPOPP_FROD_CONTROL 0x12BC7
|
||||
#define mmVPOPP_FROD_MEM_PWR_CONTROL 0x12BC8
|
||||
|
||||
#endif
|
||||
1893
src/amd/vpelib/src/chip/vpe22/inc/asic/chip_shift.h
Normal file
1893
src/amd/vpelib/src/chip/vpe22/inc/asic/chip_shift.h
Normal file
File diff suppressed because it is too large
Load diff
48
src/amd/vpelib/src/chip/vpe22/inc/vpe22_resource.h
Normal file
48
src/amd/vpelib/src/chip/vpe22/inc/vpe22_resource.h
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
/* Copyright 2025 Advanced Micro Devices, Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
* Authors: AMD
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "resource.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
enum vpe_status vpe22_construct_resource(struct vpe_priv *vpe_priv, struct resource *res);
|
||||
|
||||
const struct vpe_caps *vpe22_get_capability(void);
|
||||
|
||||
struct cdc_fe *vpe22_cdc_fe_create(struct vpe_priv *vpe_priv, int inst);
|
||||
struct cdc_be *vpe22_cdc_be_create(struct vpe_priv *vpe_priv, int inst);
|
||||
struct dpp *vpe22_dpp_create(struct vpe_priv *vpe_priv, int inst);
|
||||
struct opp *vpe22_opp_create(struct vpe_priv *vpe_priv, int inst);
|
||||
struct mpc *vpe22_mpc_create(struct vpe_priv *vpe_priv, int inst);
|
||||
|
||||
void vpe22_setup_check_funcs(struct vpe_check_support_funcs *funcs);
|
||||
|
||||
bool vpe22_check_input_format(enum vpe_surface_pixel_format format);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
551
src/amd/vpelib/src/chip/vpe22/vpe22_resource.c
Normal file
551
src/amd/vpelib/src/chip/vpe22/vpe22_resource.c
Normal file
|
|
@ -0,0 +1,551 @@
|
|||
/* Copyright 2025 Advanced Micro Devices, Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
* Authors: AMD
|
||||
*
|
||||
*/
|
||||
#include <string.h>
|
||||
#include "vpe_priv.h"
|
||||
#include "common.h"
|
||||
#include "vpe20_cmd_builder.h"
|
||||
#include "vpe20_vpe_desc_writer.h"
|
||||
#include "vpe20_plane_desc_writer.h"
|
||||
#include "vpe20_config_writer.h"
|
||||
#include "vpe20_resource.h"
|
||||
#include "vpe22_resource.h"
|
||||
#include "vpe10_resource.h"
|
||||
#include "vpe10_vpec.h"
|
||||
#include "vpe10_cdc_fe.h"
|
||||
#include "vpe10_cdc_be.h"
|
||||
#include "vpe20_cdc_fe.h"
|
||||
#include "vpe20_cdc_be.h"
|
||||
#include "vpe10_dpp.h"
|
||||
#include "vpe20_dpp.h"
|
||||
#include "vpe10_mpc.h"
|
||||
#include "vpe20_mpc.h"
|
||||
#include "vpe10_opp.h"
|
||||
#include "vpe20_opp.h"
|
||||
#include "vpe10_background.h"
|
||||
#include "vpe22/inc/asic/chip_offset.h"
|
||||
#include "vpe22/inc/asic/chip_mask.h"
|
||||
#include "vpe22/inc/asic/chip_shift.h"
|
||||
#include "vpe22/inc/asic/chip_default.h"
|
||||
#include "custom_fp16.h"
|
||||
#include "custom_float.h"
|
||||
#include "background.h"
|
||||
#include "vpe_visual_confirm.h"
|
||||
#include "vpe_spl_translation.h"
|
||||
#include "SPL/dc_spl.h"
|
||||
|
||||
#define LUT_NUM_ENTRIES (17 * 17 * 17)
|
||||
#define LUT_ENTRY_SIZE (2)
|
||||
#define LUT_NUM_COMPONENT (3)
|
||||
#define LUT_BUFFER_SIZE (LUT_NUM_ENTRIES * LUT_ENTRY_SIZE * LUT_NUM_COMPONENT)
|
||||
|
||||
#define LUT_FL_SIZE_17X17X17 (4916)
|
||||
#define LUT_FL_SIZE_33X33X33 (35940)
|
||||
|
||||
#define BYTES_PER_ENTRY (4)
|
||||
#define SHAPER_LUT_CHANNELS (3)
|
||||
#define SHAPER_LUT_DATA_POINTS_PER_CHANNEL (256)
|
||||
#define SHAPER_LUT_CONFIG_ENTRIES (28)
|
||||
#define SHAPER_LUT_DMA_DATA_SIZE \
|
||||
(SHAPER_LUT_DATA_POINTS_PER_CHANNEL * SHAPER_LUT_CHANNELS * BYTES_PER_ENTRY)
|
||||
#define SHAPER_LUT_DMA_CONFIG_SIZE \
|
||||
(SHAPER_LUT_CONFIG_ENTRIES * (BYTES_PER_ENTRY + SHAPER_LUT_DMA_CONFIG_PADDING))
|
||||
#define SHAPER_LUT_DMA_DATA_ALIGNMENT (64)
|
||||
#define SHAPER_LUT_DMA_CONFIG_ALIGNMENT (64)
|
||||
#define SHAPER_LUT_DMA_CONFIG_PADDING (60)
|
||||
#define LUT_3D_DMA_ALIGNMENT (256)
|
||||
|
||||
#define VPE_DESTINATION_AS_INPUT_STREAM_INDEX 0xff
|
||||
|
||||
// set field/register/bitfield name
|
||||
#define SFRB(field_name, reg_name, post_fix) .field_name = reg_name##__##field_name##post_fix
|
||||
|
||||
// #ifdef SOC_BRINGUP
|
||||
|
||||
#define SRIDFVL(reg_name, block, id) \
|
||||
.reg_name = {mm##block##id##_##reg_name, mm##block##id##_##reg_name##_##DEFAULT, \
|
||||
mm##block##id##_##reg_name##_##DEFAULT, false}
|
||||
|
||||
#define SRIDFVL1(reg_name) \
|
||||
.reg_name = {mm##reg_name, mm##reg_name##_##DEFAULT, mm##reg_name##_##DEFAULT, false}
|
||||
|
||||
#define SRIDFVL2(reg_name, block, id) \
|
||||
.block##_##reg_name = {mm##block##id##_##reg_name, mm##block##id##_##reg_name##_##DEFAULT, \
|
||||
mm##block##id##_##reg_name##_##DEFAULT, false}
|
||||
|
||||
#define SRIDFVL3(reg_name, block, id) \
|
||||
.block##_##reg_name = {mm##block##_##reg_name, mm##block##_##reg_name##_##DEFAULT, \
|
||||
mm##block##_##reg_name##_##DEFAULT, false}
|
||||
|
||||
#define SRIDFVL_CDC(reg_name, block, id) \
|
||||
.block##0##_##reg_name = {mm##block##id##_##reg_name, mm##block##id##_##reg_name##_##DEFAULT, \
|
||||
mm##block##id##_##reg_name##_##DEFAULT, false}
|
||||
|
||||
/***************** CDC FE registers ****************/
|
||||
#define cdc_fe_regs(id) [id] = {CDC_FE_REG_LIST_VPE20(id)}
|
||||
|
||||
static struct vpe20_cdc_fe_registers cdc_fe_regs[] = {cdc_fe_regs(0), cdc_fe_regs(1)};
|
||||
|
||||
static const struct vpe20_cdc_fe_shift cdc_fe_shift = {CDC_FE_FIELD_LIST_VPE20(__SHIFT)};
|
||||
|
||||
static const struct vpe20_cdc_fe_mask cdc_fe_mask = {CDC_FE_FIELD_LIST_VPE20(_MASK)};
|
||||
|
||||
/***************** CDC BE registers ****************/
|
||||
#define cdc_be_regs(id) [id] = {CDC_BE_REG_LIST_VPE20(id)}
|
||||
static struct vpe20_cdc_be_registers cdc_be_regs[] = {
|
||||
cdc_be_regs(0), cdc_be_regs(1), cdc_be_regs(2), cdc_be_regs(3)};
|
||||
|
||||
static const struct vpe20_cdc_be_shift cdc_be_shift = {CDC_BE_FIELD_LIST_VPE20(__SHIFT)};
|
||||
|
||||
static const struct vpe20_cdc_be_mask cdc_be_mask = {CDC_BE_FIELD_LIST_VPE20(_MASK)};
|
||||
|
||||
/***************** DPP registers ****************/
|
||||
#define dpp_regs(id) [id] = {DPP_REG_LIST_VPE20(id)}
|
||||
|
||||
static struct vpe20_dpp_registers dpp_regs[] = {dpp_regs(0), dpp_regs(1)};
|
||||
|
||||
static const struct vpe20_dpp_shift dpp_shift = {DPP_FIELD_LIST_VPE20(__SHIFT)};
|
||||
|
||||
static const struct vpe20_dpp_mask dpp_mask = {DPP_FIELD_LIST_VPE20(_MASK)};
|
||||
|
||||
/***************** OPP registers ****************/
|
||||
#define opp_regs(id) [id] = {OPP_REG_LIST_VPE20(id)}
|
||||
|
||||
static struct vpe20_opp_registers opp_regs[] = {opp_regs(0), opp_regs(1)};
|
||||
|
||||
static const struct vpe20_opp_shift opp_shift = {OPP_FIELD_LIST_VPE20(__SHIFT)};
|
||||
|
||||
static const struct vpe20_opp_mask opp_mask = {OPP_FIELD_LIST_VPE20(_MASK)};
|
||||
|
||||
/***************** MPC registers ****************/
|
||||
#define mpc_regs(id) [id] = {MPC_REG_LIST_VPE20(id)}
|
||||
|
||||
static struct vpe20_mpc_registers mpc_regs[] = {mpc_regs(0), mpc_regs(1)};
|
||||
|
||||
static const struct vpe20_mpc_shift mpc_shift = {MPC_FIELD_LIST_VPE20(__SHIFT)};
|
||||
|
||||
static const struct vpe20_mpc_mask mpc_mask = {MPC_FIELD_LIST_VPE20(_MASK)};
|
||||
|
||||
static struct vpe_caps
|
||||
caps =
|
||||
{
|
||||
.max_input_size =
|
||||
{
|
||||
.width = 16384,
|
||||
.height = 16384,
|
||||
},
|
||||
.max_output_size =
|
||||
{
|
||||
.width = 16384,
|
||||
.height = 16384,
|
||||
},
|
||||
.min_input_size =
|
||||
{
|
||||
.width = 1,
|
||||
.height = 1,
|
||||
},
|
||||
.min_output_size =
|
||||
{
|
||||
.width = 1,
|
||||
.height = 1,
|
||||
},
|
||||
.lut_size = LUT_BUFFER_SIZE,
|
||||
.rotation_support = 1,
|
||||
.h_mirror_support = 1,
|
||||
.v_mirror_support = 1,
|
||||
.is_apu = 1,
|
||||
.bg_color_check_support = 0,
|
||||
|
||||
.prefer_external_scaler_coef = 0,
|
||||
|
||||
.resource_caps =
|
||||
{
|
||||
.num_dpp = 2,
|
||||
.num_opp = 2,
|
||||
.num_mpc_3dlut = 1,
|
||||
.num_queue = 8,
|
||||
.num_cdc_be = 4,
|
||||
},
|
||||
.color_caps = {.dpp =
|
||||
{
|
||||
.pre_csc = 1,
|
||||
.luma_key = 1,
|
||||
.color_key = 1,
|
||||
.dgam_ram = 0,
|
||||
.post_csc = 1,
|
||||
.gamma_corr = 1,
|
||||
.hw_3dlut = 1,
|
||||
.ogam_ram = 1, /**< programmable gam in output -> gamma_corr */
|
||||
.ocsc = 0,
|
||||
.dgam_rom_caps =
|
||||
{
|
||||
.srgb = 1,
|
||||
.bt2020 = 1,
|
||||
.gamma2_2 = 1,
|
||||
.pq = 1,
|
||||
.hlg = 1,
|
||||
},
|
||||
},
|
||||
.mpc =
|
||||
{
|
||||
.gamut_remap = 1,
|
||||
.ogam_ram = 1,
|
||||
.ocsc = 1,
|
||||
.shared_3d_lut = 1,
|
||||
.global_alpha = 1,
|
||||
.top_bottom_blending = 1,
|
||||
.dma_3d_lut = 1,
|
||||
.yuv_linear_blend = 0,
|
||||
.lut_dim_caps =
|
||||
{
|
||||
.dim_9 = 0,
|
||||
.dim_17 = 1,
|
||||
.dim_33 = 1,
|
||||
},
|
||||
.lut_caps =
|
||||
{
|
||||
.lut_shaper_caps =
|
||||
{
|
||||
.dma_data = 0,
|
||||
.dma_config = 0,
|
||||
.non_monotonic = 0,
|
||||
.data_alignment = SHAPER_LUT_DMA_DATA_ALIGNMENT,
|
||||
.config_alignment = SHAPER_LUT_DMA_CONFIG_ALIGNMENT,
|
||||
.config_padding = SHAPER_LUT_DMA_CONFIG_PADDING,
|
||||
.data_size = SHAPER_LUT_DMA_DATA_SIZE,
|
||||
.config_size = SHAPER_LUT_DMA_CONFIG_SIZE,
|
||||
.data_pts_per_channel = SHAPER_LUT_DATA_POINTS_PER_CHANNEL,
|
||||
},
|
||||
.lut_3dlut_caps =
|
||||
{
|
||||
.data_dim_9 = 0,
|
||||
.data_dim_17 = 1,
|
||||
.data_dim_33 = 1,
|
||||
.dma_dim_9 = 0,
|
||||
.dma_dim_17 = 0,
|
||||
.dma_dim_33 = 1,
|
||||
.alignment = LUT_3D_DMA_ALIGNMENT,
|
||||
},
|
||||
.lut_3d_compound = 0,
|
||||
},
|
||||
}},
|
||||
.plane_caps =
|
||||
{
|
||||
.per_pixel_alpha = 1,
|
||||
.input_pixel_format_support =
|
||||
{
|
||||
.argb_packed_32b = 1,
|
||||
.nv12 = 1,
|
||||
.fp16 = 1,
|
||||
.p010 = 1, /**< planar 4:2:0 10-bit */
|
||||
.p016 = 1, /**< planar 4:2:0 16-bit */
|
||||
.ayuv = 1, /**< packed 4:4:4 */
|
||||
.yuy2 = 1, /**< packed 4:2:2 */
|
||||
.y210 = 1, /**< packed 4:2:2 10-bit */
|
||||
.y216 = 1, /**< packed 4:2:2 16-bit */
|
||||
.p210 = 1, /**< planar 4:2:2 10-bit */
|
||||
.p216 = 1, /**< planar 4:2:2 16-bit */
|
||||
.rgb8_planar = 1, /**< planar RGB 8-bit */
|
||||
.rgb16_planar = 1, /**< planar RGB 16-bit */
|
||||
.yuv8_planar = 1, /**< planar YUV 16-bit */
|
||||
.yuv16_planar = 1, /**< planar YUV 16-bit */
|
||||
.fp16_planar = 1, /**< planar RGB 8-bit */
|
||||
.rgbe = 1, /**< shared exponent R9G9B9E5 */
|
||||
.rgb111110_fix = 0, /**< fixed R11G11B10 */
|
||||
.rgb111110_float = 0, /**< float R11G11B10 */
|
||||
},
|
||||
.output_pixel_format_support =
|
||||
{
|
||||
.argb_packed_32b = 1,
|
||||
.nv12 = 1,
|
||||
.fp16 = 1,
|
||||
.p010 = 1, /**< planar 4:2:0 10-bit */
|
||||
.p016 = 1, /**< planar 4:2:0 16-bit */
|
||||
.ayuv = 1, /**< packed 4:4:4 */
|
||||
.yuy2 = 1, /**< packed 4:2:2 */
|
||||
.y210 = 1, /**< packed 4:2:2 10-bit */
|
||||
.y216 = 1, /**< packed 4:2:2 16-bit */
|
||||
.p210 = 1, /**< planar 4:2:2 10-bit */
|
||||
.p216 = 1, /**< planar 4:2:2 16-bit */
|
||||
.rgb8_planar = 1, /**< planar RGB 8-bit */
|
||||
.rgb16_planar = 1, /**< planar RGB 16-bit */
|
||||
.yuv8_planar = 1, /**< planar YUV 16-bit */
|
||||
.yuv16_planar = 1, /**< planar YUV 16-bit */
|
||||
.fp16_planar = 1, /**< planar RGB 8-bit */
|
||||
.rgbe = 0, /**< shared exponent R9G9B9E5 */
|
||||
.rgb111110_fix = 0, /**< fixed R11G11B10 */
|
||||
.rgb111110_float = 0, /**< float R11G11B10 */
|
||||
},
|
||||
.max_upscale_factor = 64000,
|
||||
|
||||
// limit to 4:1 downscaling ratio: 1000/4 = 250
|
||||
.max_downscale_factor = 250,
|
||||
|
||||
.pitch_alignment = 256,
|
||||
.addr_alignment = 256,
|
||||
.max_viewport_width = 1024,
|
||||
.max_viewport_width_64bpp = 540,
|
||||
},
|
||||
.isharp_caps =
|
||||
{
|
||||
.support = true,
|
||||
.range =
|
||||
{
|
||||
.min = 0,
|
||||
.max = 10,
|
||||
.step = 1,
|
||||
},
|
||||
},
|
||||
.easf_support = 1,
|
||||
.input_dcc_support = 1,
|
||||
.input_internal_dcc = 1,
|
||||
.output_dcc_support = 0,
|
||||
.output_internal_dcc = 0,
|
||||
.histogram_support = 1,
|
||||
.frod_support = 1,
|
||||
.alpha_blending_support = 1,
|
||||
.alpha_fill_caps =
|
||||
{
|
||||
.opaque = 1,
|
||||
.bg_color = 1,
|
||||
.destination = 0,
|
||||
.source_stream = 0,
|
||||
},
|
||||
};
|
||||
|
||||
struct cdc_fe *vpe22_cdc_fe_create(struct vpe_priv *vpe_priv, int inst)
|
||||
{
|
||||
struct vpe20_cdc_fe *vpe_cdc_fe = vpe_zalloc(sizeof(struct vpe20_cdc_fe));
|
||||
|
||||
if (!vpe_cdc_fe)
|
||||
return NULL;
|
||||
|
||||
vpe20_construct_cdc_fe(vpe_priv, &vpe_cdc_fe->base);
|
||||
|
||||
vpe_cdc_fe->base.inst = inst;
|
||||
vpe_cdc_fe->regs = &cdc_fe_regs[inst];
|
||||
vpe_cdc_fe->mask = &cdc_fe_mask;
|
||||
vpe_cdc_fe->shift = &cdc_fe_shift;
|
||||
|
||||
return &vpe_cdc_fe->base;
|
||||
}
|
||||
|
||||
struct cdc_be *vpe22_cdc_be_create(struct vpe_priv *vpe_priv, int inst)
|
||||
{
|
||||
struct vpe20_cdc_be *vpe_cdc_be = vpe_zalloc(sizeof(struct vpe20_cdc_be));
|
||||
|
||||
if (!vpe_cdc_be)
|
||||
return NULL;
|
||||
|
||||
vpe20_construct_cdc_be(vpe_priv, &vpe_cdc_be->base);
|
||||
|
||||
vpe_cdc_be->base.inst = inst;
|
||||
vpe_cdc_be->regs = &cdc_be_regs[inst];
|
||||
vpe_cdc_be->mask = &cdc_be_mask;
|
||||
vpe_cdc_be->shift = &cdc_be_shift;
|
||||
|
||||
return &vpe_cdc_be->base;
|
||||
}
|
||||
|
||||
struct dpp *vpe22_dpp_create(struct vpe_priv *vpe_priv, int inst)
|
||||
{
|
||||
struct vpe20_dpp *vpe_dpp = vpe_zalloc(sizeof(struct vpe20_dpp));
|
||||
|
||||
if (!vpe_dpp)
|
||||
return NULL;
|
||||
|
||||
vpe20_construct_dpp(vpe_priv, &vpe_dpp->base);
|
||||
|
||||
vpe_dpp->base.inst = inst;
|
||||
vpe_dpp->regs = &dpp_regs[inst];
|
||||
vpe_dpp->mask = &dpp_mask;
|
||||
vpe_dpp->shift = &dpp_shift;
|
||||
|
||||
return &vpe_dpp->base;
|
||||
}
|
||||
|
||||
struct opp *vpe22_opp_create(struct vpe_priv *vpe_priv, int inst)
|
||||
{
|
||||
struct vpe20_opp *vpe_opp = vpe_zalloc(sizeof(struct vpe20_opp));
|
||||
|
||||
if (!vpe_opp)
|
||||
return NULL;
|
||||
|
||||
vpe20_construct_opp(vpe_priv, &vpe_opp->base);
|
||||
|
||||
vpe_opp->base.inst = inst;
|
||||
vpe_opp->regs = &opp_regs[inst];
|
||||
vpe_opp->mask = &opp_mask;
|
||||
vpe_opp->shift = &opp_shift;
|
||||
|
||||
return &vpe_opp->base;
|
||||
}
|
||||
|
||||
struct mpc *vpe22_mpc_create(struct vpe_priv *vpe_priv, int inst)
|
||||
{
|
||||
struct vpe20_mpc *vpe_mpc = vpe_zalloc(sizeof(struct vpe20_mpc));
|
||||
|
||||
if (!vpe_mpc)
|
||||
return NULL;
|
||||
|
||||
vpe20_construct_mpc(vpe_priv, &vpe_mpc->base);
|
||||
|
||||
vpe_mpc->base.inst = inst;
|
||||
vpe_mpc->regs = &mpc_regs[inst];
|
||||
vpe_mpc->mask = &mpc_mask;
|
||||
vpe_mpc->shift = &mpc_shift;
|
||||
|
||||
return &vpe_mpc->base;
|
||||
}
|
||||
|
||||
enum vpe_status vpe22_construct_resource(struct vpe_priv *vpe_priv, struct resource *res)
|
||||
{
|
||||
struct vpe *vpe = &vpe_priv->pub;
|
||||
uint32_t i;
|
||||
|
||||
vpe->caps = ∩︀
|
||||
|
||||
vpe10_construct_vpec(vpe_priv, &res->vpec);
|
||||
|
||||
for (i = 0; i < vpe->caps->resource_caps.num_dpp; i++) { // num pipes = num dpp = num_mpc
|
||||
res->cdc_fe[i] = vpe22_cdc_fe_create(vpe_priv, i);
|
||||
if (res->cdc_fe[i] == NULL)
|
||||
goto err;
|
||||
|
||||
res->dpp[i] = vpe22_dpp_create(vpe_priv, i);
|
||||
if (res->dpp[i] == NULL)
|
||||
goto err;
|
||||
|
||||
res->mpc[i] = vpe22_mpc_create(vpe_priv, i);
|
||||
if (res->mpc[i] == NULL)
|
||||
goto err;
|
||||
}
|
||||
|
||||
for (i = 0; i < vpe->caps->resource_caps.num_cdc_be; i++) {
|
||||
res->cdc_be[i] = vpe22_cdc_be_create(vpe_priv, i);
|
||||
if (res->cdc_be[i] == NULL)
|
||||
goto err;
|
||||
}
|
||||
|
||||
for (i = 0; i < vpe->caps->resource_caps.num_opp; i++) { // num opp = num dpp
|
||||
res->opp[i] = vpe22_opp_create(vpe_priv, i);
|
||||
if (res->opp[i] == NULL)
|
||||
goto err;
|
||||
}
|
||||
|
||||
vpe20_construct_cmd_builder(vpe_priv, &res->cmd_builder);
|
||||
vpe20_construct_vpe_desc_writer(&vpe_priv->vpe_desc_writer);
|
||||
vpe20_construct_plane_desc_writer(&vpe_priv->plane_desc_writer);
|
||||
vpe20_config_writer_init(&vpe_priv->config_writer);
|
||||
|
||||
vpe_priv->num_pipe = 2;
|
||||
|
||||
res->internal_hdr_normalization = 1;
|
||||
|
||||
// Many of the below will need VPE20 versions.
|
||||
res->check_h_mirror_support = vpe20_check_h_mirror_support;
|
||||
res->calculate_segments = vpe20_calculate_segments;
|
||||
res->get_max_seg_width = vpe20_get_max_seg_width;
|
||||
res->set_num_segments = vpe20_set_num_segments;
|
||||
res->split_bg_gap = vpe10_split_bg_gap;
|
||||
res->calculate_dst_viewport_and_active = vpe20_calculate_dst_viewport_and_active;
|
||||
res->get_bg_stream_idx = vpe20_get_bg_stream_idx;
|
||||
res->find_bg_gaps = vpe_find_bg_gaps;
|
||||
res->create_bg_segments = vpe20_create_bg_segments;
|
||||
res->populate_cmd_info = vpe20_populate_cmd_info;
|
||||
res->program_frontend = vpe20_program_frontend;
|
||||
res->program_backend = vpe20_program_backend;
|
||||
res->get_bufs_req = vpe20_get_bufs_req;
|
||||
res->check_bg_color_support = vpe20_check_bg_color_support;
|
||||
res->bg_color_convert = vpe20_bg_color_convert;
|
||||
res->check_mirror_rotation_support = vpe20_check_mirror_rotation_support;
|
||||
res->update_blnd_gamma = vpe20_update_blnd_gamma;
|
||||
res->update_output_gamma = vpe20_update_output_gamma;
|
||||
res->validate_cached_param = vpe20_validate_cached_param;
|
||||
res->fill_alpha_through_luma_cmd_info = vpe20_fill_alpha_through_luma_cmd_info;
|
||||
res->fill_non_performance_mode_cmd_info = vpe20_fill_non_performance_mode_cmd_info;
|
||||
res->fill_performance_mode_cmd_info = vpe20_fill_performance_mode_cmd_info;
|
||||
res->fill_blending_cmd_info = vpe20_fill_blending_cmd_info;
|
||||
res->get_num_pipes_available = vpe20_get_num_pipes_available;
|
||||
res->set_frod_output_viewport = vpe20_set_frod_output_viewport;
|
||||
res->check_alpha_fill_support = vpe10_check_alpha_fill_support;
|
||||
res->reset_pipes = vpe20_reset_pipes;
|
||||
res->populate_frod_param = vpe20_populate_frod_param;
|
||||
res->set_lls_pref = vpe20_set_lls_pref;
|
||||
res->program_fastload = vpe20_program_3dlut_fl;
|
||||
res->calculate_shaper = vpe10_calculate_shaper;
|
||||
res->check_lut3d_compound = vpe20_check_lut3d_compound;
|
||||
|
||||
res->set_dst_cmd_info_scaler = vpe20_set_dst_cmd_info_scaler;
|
||||
res->update_opp_adjust_and_boundary = vpe20_update_opp_adjust_and_boundary;
|
||||
|
||||
return VPE_STATUS_OK;
|
||||
|
||||
err:
|
||||
vpe20_destroy_resource(vpe_priv, res);
|
||||
return VPE_STATUS_ERROR;
|
||||
}
|
||||
|
||||
bool vpe22_check_input_format(enum vpe_surface_pixel_format format)
|
||||
{
|
||||
if (vpe_is_32bit_packed_rgb(format))
|
||||
return true;
|
||||
|
||||
if (vpe_is_yuv420(format))
|
||||
return true;
|
||||
|
||||
if (vpe_is_yuv422(format))
|
||||
return true;
|
||||
|
||||
if (vpe_is_yuv444(format))
|
||||
return true;
|
||||
|
||||
if (vpe_is_fp16(format))
|
||||
return true;
|
||||
|
||||
if (vpe_is_rgb16(format))
|
||||
return true;
|
||||
|
||||
if (format == VPE_SURFACE_PIXEL_FORMAT_GRPH_RGBE)
|
||||
return true;
|
||||
|
||||
if (format == VPE_SURFACE_PIXEL_FORMAT_PLANAR_8bpc_RGB)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
const struct vpe_caps *vpe22_get_capability(void)
|
||||
{
|
||||
return ∩︀
|
||||
}
|
||||
|
||||
void vpe22_setup_check_funcs(struct vpe_check_support_funcs *funcs)
|
||||
{
|
||||
funcs->check_input_format = vpe22_check_input_format;
|
||||
funcs->check_output_format = vpe20_check_output_format;
|
||||
funcs->check_input_color_space = vpe10_check_input_color_space;
|
||||
funcs->check_output_color_space = vpe20_check_output_color_space;
|
||||
funcs->get_dcc_compression_input_cap = vpe20_get_dcc_compression_input_cap;
|
||||
funcs->get_dcc_compression_output_cap = vpe20_get_dcc_compression_output_cap;
|
||||
}
|
||||
|
|
@ -285,6 +285,8 @@ static bool can_bypass_degamma(const struct stream_ctx *stream_ctx)
|
|||
return true;
|
||||
if (stream_ctx->geometric_scaling)
|
||||
return true;
|
||||
if (stream_ctx->stream.surface_info.format == VPE_SURFACE_PIXEL_FORMAT_GRPH_RGBE)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
@ -1236,7 +1238,7 @@ enum vpe_status vpe_color_update_whitepoint(
|
|||
stream->white_point_gain = vpe_fixpt_one;
|
||||
}
|
||||
|
||||
if (is_fp16) {
|
||||
if (is_fp16 || (stream->stream.surface_info.format == VPE_SURFACE_PIXEL_FORMAT_GRPH_RGBE)) {
|
||||
stream->white_point_gain = vpe_fixpt_div_int(stream->white_point_gain, CCCS_NORM);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -34,6 +34,8 @@
|
|||
#include "vpe20_resource.h"
|
||||
#include "multi_pipe_segmentation.h"
|
||||
|
||||
#include "vpe22_resource.h"
|
||||
|
||||
static const struct vpe_debug_options debug_defaults = {
|
||||
.flags = {0},
|
||||
.cm_in_bypass = 0,
|
||||
|
|
@ -101,6 +103,9 @@ enum vpe_ip_level vpe_resource_parse_ip_version(
|
|||
case VPE_VERSION(7, 0, 0): // to be removed when caller switches to new convention
|
||||
ip_level = VPE_IP_LEVEL_2_0;
|
||||
break;
|
||||
case VPE_VERSION(2, 2, 0):
|
||||
ip_level = VPE_IP_LEVEL_2_2;
|
||||
break;
|
||||
default:
|
||||
ip_level = VPE_IP_LEVEL_UNKNOWN;
|
||||
break;
|
||||
|
|
@ -123,6 +128,9 @@ enum vpe_status vpe_construct_resource(
|
|||
case VPE_IP_LEVEL_2_0:
|
||||
status = vpe20_construct_resource(vpe_priv, res);
|
||||
break;
|
||||
case VPE_IP_LEVEL_2_2:
|
||||
status = vpe22_construct_resource(vpe_priv, res);
|
||||
break;
|
||||
default:
|
||||
status = VPE_STATUS_NOT_SUPPORTED;
|
||||
vpe_log("invalid ip level: %d", (int)level);
|
||||
|
|
@ -149,6 +157,9 @@ void vpe_destroy_resource(struct vpe_priv *vpe_priv, struct resource *res)
|
|||
case VPE_IP_LEVEL_2_0:
|
||||
vpe20_destroy_resource(vpe_priv, res);
|
||||
break;
|
||||
case VPE_IP_LEVEL_2_2:
|
||||
vpe20_destroy_resource(vpe_priv, res);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
@ -1012,6 +1023,9 @@ const struct vpe_caps *vpe_get_capability(enum vpe_ip_level ip_level)
|
|||
case VPE_IP_LEVEL_2_0:
|
||||
caps = vpe20_get_capability();
|
||||
break;
|
||||
case VPE_IP_LEVEL_2_2:
|
||||
caps = vpe22_get_capability();
|
||||
break;
|
||||
|
||||
default:
|
||||
caps = NULL;
|
||||
|
|
@ -1031,6 +1045,9 @@ void vpe_setup_check_funcs(struct vpe_check_support_funcs *funcs, enum vpe_ip_le
|
|||
case VPE_IP_LEVEL_2_0:
|
||||
vpe20_setup_check_funcs(funcs);
|
||||
break;
|
||||
case VPE_IP_LEVEL_2_2:
|
||||
vpe22_setup_check_funcs(funcs);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue