aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.14.71/0032-drm-amd-display-refactor-DCE11-DVVM.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/0032-drm-amd-display-refactor-DCE11-DVVM.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.14.71/0032-drm-amd-display-refactor-DCE11-DVVM.patch615
1 files changed, 615 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/0032-drm-amd-display-refactor-DCE11-DVVM.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/0032-drm-amd-display-refactor-DCE11-DVVM.patch
new file mode 100644
index 00000000..3b00b30c
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/0032-drm-amd-display-refactor-DCE11-DVVM.patch
@@ -0,0 +1,615 @@
+From af941fb799063ec466c89bf45f4ebc3cac9ac915 Mon Sep 17 00:00:00 2001
+From: Tony Cheng <tony.cheng@amd.com>
+Date: Wed, 30 Nov 2016 16:15:47 -0500
+Subject: [PATCH 0032/4131] drm/amd/display: refactor DCE11 DVVM
+
+- move to new programming style
+- clean up table to make it obvious what we are programming
+
+Signed-off-by: Tony Cheng <tony.cheng@amd.com>
+Reviewed-by: Zeyu Fan <Zeyu.Fan@amd.com>
+Acked-by: Harry Wentland <Harry.Wentland@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c | 135 ++++++++++++++++++++-
+ drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.h | 59 +++++++--
+ .../drm/amd/display/dc/dce100/dce100_resource.c | 6 +-
+ .../drm/amd/display/dc/dce110/dce110_mem_input.c | 113 +----------------
+ .../drm/amd/display/dc/dce110/dce110_mem_input.h | 11 --
+ .../drm/amd/display/dc/dce110/dce110_mem_input_v.c | 8 +-
+ .../drm/amd/display/dc/dce110/dce110_resource.c | 6 +-
+ .../drm/amd/display/dc/dce112/dce112_resource.c | 6 +-
+ .../gpu/drm/amd/display/dc/dce80/dce80_resource.c | 6 +-
+ drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h | 4 +-
+ 10 files changed, 201 insertions(+), 153 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c b/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
+index 654731c..fd8a49a 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
++++ b/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
+@@ -35,6 +35,137 @@
+ #define FN(reg_name, field_name) \
+ mi->shifts->field_name, mi->masks->field_name
+
++struct pte_setting {
++ unsigned int bpp;
++ unsigned int page_width;
++ unsigned int page_height;
++ unsigned char min_pte_before_flip_horiz_scan;
++ unsigned char min_pte_before_flip_vert_scan;
++ unsigned char pte_req_per_chunk;
++ unsigned char param_6;
++ unsigned char param_7;
++ unsigned char param_8;
++};
++
++enum mi_bits_per_pixel {
++ mi_bpp_8 = 0,
++ mi_bpp_16,
++ mi_bpp_32,
++ mi_bpp_64,
++ mi_bpp_count,
++};
++
++enum mi_tiling_format {
++ mi_tiling_linear = 0,
++ mi_tiling_1D,
++ mi_tiling_2D,
++ mi_tiling_count,
++};
++
++static const struct pte_setting pte_settings[mi_tiling_count][mi_bpp_count] = {
++ [mi_tiling_linear] = {
++ { 8, 4096, 1, 8, 0, 1, 0, 0, 0},
++ { 16, 2048, 1, 8, 0, 1, 0, 0, 0},
++ { 32, 1024, 1, 8, 0, 1, 0, 0, 0},
++ { 64, 512, 1, 8, 0, 1, 0, 0, 0}, /* new for 64bpp from HW */
++ },
++ [mi_tiling_1D] = {
++ { 8, 512, 8, 1, 0, 1, 0, 0, 0}, /* 0 for invalid */
++ { 16, 256, 8, 2, 0, 1, 0, 0, 0},
++ { 32, 128, 8, 4, 0, 1, 0, 0, 0},
++ { 64, 64, 8, 4, 0, 1, 0, 0, 0}, /* fake */
++ },
++ [mi_tiling_2D] = {
++ { 8, 64, 64, 8, 8, 1, 4, 0, 0},
++ { 16, 64, 32, 8, 16, 1, 8, 0, 0},
++ { 32, 32, 32, 16, 16, 1, 8, 0, 0},
++ { 64, 8, 32, 16, 16, 1, 8, 0, 0}, /* fake */
++ },
++};
++
++static enum mi_bits_per_pixel get_mi_bpp(
++ enum surface_pixel_format format)
++{
++ if (format >= SURFACE_PIXEL_FORMAT_GRPH_ARGB16161616)
++ return mi_bpp_64;
++ else if (format >= SURFACE_PIXEL_FORMAT_GRPH_ARGB8888)
++ return mi_bpp_32;
++ else if (format >= SURFACE_PIXEL_FORMAT_GRPH_ARGB1555)
++ return mi_bpp_16;
++ else
++ return mi_bpp_8;
++}
++
++static enum mi_tiling_format get_mi_tiling(
++ union dc_tiling_info *tiling_info)
++{
++ switch (tiling_info->gfx8.array_mode) {
++ case DC_ARRAY_1D_TILED_THIN1:
++ case DC_ARRAY_1D_TILED_THICK:
++ case DC_ARRAY_PRT_TILED_THIN1:
++ return mi_tiling_1D;
++ case DC_ARRAY_2D_TILED_THIN1:
++ case DC_ARRAY_2D_TILED_THICK:
++ case DC_ARRAY_2D_TILED_X_THICK:
++ case DC_ARRAY_PRT_2D_TILED_THIN1:
++ case DC_ARRAY_PRT_2D_TILED_THICK:
++ return mi_tiling_2D;
++ case DC_ARRAY_LINEAR_GENERAL:
++ case DC_ARRAY_LINEAR_ALLIGNED:
++ return mi_tiling_linear;
++ default:
++ return mi_tiling_2D;
++ }
++}
++
++static bool is_vert_scan(enum dc_rotation_angle rotation)
++{
++ switch (rotation) {
++ case ROTATION_ANGLE_90:
++ case ROTATION_ANGLE_270:
++ return true;
++ default:
++ return false;
++ }
++}
++
++static unsigned int log_2(unsigned int num)
++{
++ unsigned int result = 0;
++
++ while ((num >>= 1) != 0)
++ result++;
++
++ return result;
++}
++
++void dce_mem_input_program_pte_vm(struct mem_input *mi,
++ enum surface_pixel_format format,
++ union dc_tiling_info *tiling_info,
++ enum dc_rotation_angle rotation)
++{
++ enum mi_bits_per_pixel mi_bpp = get_mi_bpp(format);
++ enum mi_tiling_format mi_tiling = get_mi_tiling(tiling_info);
++ const struct pte_setting *pte = &pte_settings[mi_tiling][mi_bpp];
++
++ unsigned int page_width = log_2(pte->page_width);
++ unsigned int page_height = log_2(pte->page_height);
++ unsigned int min_pte_before_flip = is_vert_scan(rotation) ?
++ pte->min_pte_before_flip_vert_scan :
++ pte->min_pte_before_flip_horiz_scan;
++
++ REG_UPDATE(GRPH_PIPE_OUTSTANDING_REQUEST_LIMIT,
++ GRPH_PIPE_OUTSTANDING_REQUEST_LIMIT, 0xff);
++
++ REG_UPDATE_3(DVMM_PTE_CONTROL,
++ DVMM_PAGE_WIDTH, page_width,
++ DVMM_PAGE_HEIGHT, page_height,
++ DVMM_MIN_PTE_BEFORE_FLIP, min_pte_before_flip);
++
++ REG_UPDATE_2(DVMM_PTE_ARB_CONTROL,
++ DVMM_PTE_REQ_PER_CHUNK, pte->pte_req_per_chunk,
++ DVMM_MAX_PTE_REQ_OUTSTANDING, 0xff);
++}
+
+ static void program_urgency_watermark(struct mem_input *mi,
+ uint32_t wm_select,
+@@ -244,7 +375,7 @@ static void program_grph_pixel_format(
+ GRPH_PRESCALE_B_SIGN, sign);
+ }
+
+-bool dce_mem_input_program_surface_config(struct mem_input *mi,
++void dce_mem_input_program_surface_config(struct mem_input *mi,
+ enum surface_pixel_format format,
+ union dc_tiling_info *tiling_info,
+ union plane_size *plane_size,
+@@ -260,8 +391,6 @@ bool dce_mem_input_program_surface_config(struct mem_input *mi,
+ if (format >= SURFACE_PIXEL_FORMAT_GRPH_BEGIN &&
+ format < SURFACE_PIXEL_FORMAT_VIDEO_BEGIN)
+ program_grph_pixel_format(mi, format);
+-
+- return true;
+ }
+
+ static uint32_t get_dmif_switch_time_us(
+diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.h b/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.h
+index d5930a9..a366b3a 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.h
++++ b/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.h
+@@ -42,10 +42,22 @@
+ SRI(DPG_PIPE_STUTTER_CONTROL, DMIF_PG, id),\
+ SRI(DMIF_BUFFER_CONTROL, PIPE, id)
+
+-#define MI_REG_LIST(id)\
++#define MI_DCE_PTE_REG_LIST(id)\
++ SRI(DVMM_PTE_CONTROL, DCP, id),\
++ SRI(DVMM_PTE_ARB_CONTROL, DCP, id)
++
++#define MI_DCE8_REG_LIST(id)\
+ MI_DCE_BASE_REG_LIST(id),\
+ SRI(DPG_PIPE_NB_PSTATE_CHANGE_CONTROL, DMIF_PG, id)
+
++#define MI_DCE11_2_REG_LIST(id)\
++ MI_DCE8_REG_LIST(id),\
++ SRI(GRPH_PIPE_OUTSTANDING_REQUEST_LIMIT, DCP, id)
++
++#define MI_DCE11_REG_LIST(id)\
++ MI_DCE11_2_REG_LIST(id),\
++ MI_DCE_PTE_REG_LIST(id)
++
+ struct dce_mem_input_registers {
+ /* DCP */
+ uint32_t GRPH_ENABLE;
+@@ -58,6 +70,9 @@ struct dce_mem_input_registers {
+ uint32_t HW_ROTATION;
+ uint32_t GRPH_SWAP_CNTL;
+ uint32_t PRESCALE_GRPH_CONTROL;
++ uint32_t GRPH_PIPE_OUTSTANDING_REQUEST_LIMIT;
++ uint32_t DVMM_PTE_CONTROL;
++ uint32_t DVMM_PTE_ARB_CONTROL;
+ /* DMIF_PG */
+ uint32_t DPG_PIPE_ARBITRATION_CONTROL1;
+ uint32_t DPG_WATERMARK_MASK_CONTROL;
+@@ -103,6 +118,16 @@ struct dce_mem_input_registers {
+ SFB(blk, PRESCALE_GRPH_CONTROL, GRPH_PRESCALE_G_SIGN, mask_sh),\
+ SFB(blk, PRESCALE_GRPH_CONTROL, GRPH_PRESCALE_B_SIGN, mask_sh)
+
++#define MI_DCP_DCE11_MASK_SH_LIST(mask_sh, blk)\
++ SFB(blk, GRPH_PIPE_OUTSTANDING_REQUEST_LIMIT, GRPH_PIPE_OUTSTANDING_REQUEST_LIMIT, mask_sh)
++
++#define MI_DCP_PTE_MASK_SH_LIST(mask_sh, blk)\
++ SFB(blk, DVMM_PTE_CONTROL, DVMM_PAGE_WIDTH, mask_sh),\
++ SFB(blk, DVMM_PTE_CONTROL, DVMM_PAGE_HEIGHT, mask_sh),\
++ SFB(blk, DVMM_PTE_CONTROL, DVMM_MIN_PTE_BEFORE_FLIP, mask_sh),\
++ SFB(blk, DVMM_PTE_ARB_CONTROL, DVMM_PTE_REQ_PER_CHUNK, mask_sh),\
++ SFB(blk, DVMM_PTE_ARB_CONTROL, DVMM_MAX_PTE_REQ_OUTSTANDING, mask_sh)
++
+ #define MI_DMIF_PG_MASK_SH_LIST(mask_sh, blk)\
+ SFB(blk, DPG_PIPE_ARBITRATION_CONTROL1, PIXEL_DURATION, mask_sh),\
+ SFB(blk, DPG_WATERMARK_MASK_CONTROL, URGENCY_WATERMARK_MASK, mask_sh),\
+@@ -122,11 +147,19 @@ struct dce_mem_input_registers {
+ SFB(blk, DPG_PIPE_NB_PSTATE_CHANGE_CONTROL, NB_PSTATE_CHANGE_NOT_SELF_REFRESH_DURING_REQUEST, mask_sh),\
+ SFB(blk, DPG_PIPE_NB_PSTATE_CHANGE_CONTROL, NB_PSTATE_CHANGE_WATERMARK, mask_sh)
+
+-#define MI_DCE_MASK_SH_LIST(mask_sh)\
+- MI_DCP_MASK_SH_LIST(mask_sh,),\
+- MI_DMIF_PG_MASK_SH_LIST(mask_sh,),\
+- MI_DMIF_PG_MASK_SH_DCE(mask_sh,),\
+- MI_GFX8_TILE_MASK_SH_LIST(mask_sh,)
++#define MI_DCE8_MASK_SH_LIST(mask_sh)\
++ MI_DCP_MASK_SH_LIST(mask_sh, ),\
++ MI_DMIF_PG_MASK_SH_LIST(mask_sh, ),\
++ MI_DMIF_PG_MASK_SH_DCE(mask_sh, ),\
++ MI_GFX8_TILE_MASK_SH_LIST(mask_sh, )
++
++#define MI_DCE11_2_MASK_SH_LIST(mask_sh)\
++ MI_DCE8_MASK_SH_LIST(mask_sh),\
++ MI_DCP_DCE11_MASK_SH_LIST(mask_sh, )
++
++#define MI_DCE11_MASK_SH_LIST(mask_sh)\
++ MI_DCE11_2_MASK_SH_LIST(mask_sh),\
++ MI_DCP_PTE_MASK_SH_LIST(mask_sh, )
+
+ #define MI_REG_FIELD_LIST(type) \
+ type GRPH_ENABLE; \
+@@ -142,6 +175,12 @@ struct dce_mem_input_registers {
+ type GRPH_PRESCALE_R_SIGN; \
+ type GRPH_PRESCALE_G_SIGN; \
+ type GRPH_PRESCALE_B_SIGN; \
++ type GRPH_PIPE_OUTSTANDING_REQUEST_LIMIT; \
++ type DVMM_PAGE_WIDTH; \
++ type DVMM_PAGE_HEIGHT; \
++ type DVMM_MIN_PTE_BEFORE_FLIP; \
++ type DVMM_PTE_REQ_PER_CHUNK; \
++ type DVMM_MAX_PTE_REQ_OUTSTANDING; \
+ type GRPH_DEPTH; \
+ type GRPH_FORMAT; \
+ type GRPH_NUM_BANKS; \
+@@ -191,7 +230,13 @@ struct dce_mem_input_wa {
+ };
+
+ struct mem_input;
+-bool dce_mem_input_program_surface_config(struct mem_input *mi,
++
++void dce_mem_input_program_pte_vm(struct mem_input *mi,
++ enum surface_pixel_format format,
++ union dc_tiling_info *tiling_info,
++ enum dc_rotation_angle rotation);
++
++void dce_mem_input_program_surface_config(struct mem_input *mi,
+ enum surface_pixel_format format,
+ union dc_tiling_info *tiling_info,
+ union plane_size *plane_size,
+diff --git a/drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c b/drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c
+index 16595dc..9ace6d1 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c
++++ b/drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c
+@@ -481,7 +481,7 @@ static const struct resource_create_funcs res_create_funcs = {
+ };
+
+ #define mi_inst_regs(id) { \
+- MI_REG_LIST(id), \
++ MI_DCE8_REG_LIST(id), \
+ .MC_HUB_RDREQ_DMIF_LIMIT = mmMC_HUB_RDREQ_DMIF_LIMIT \
+ }
+ static const struct dce_mem_input_registers mi_regs[] = {
+@@ -494,12 +494,12 @@ static const struct dce_mem_input_registers mi_regs[] = {
+ };
+
+ static const struct dce_mem_input_shift mi_shifts = {
+- MI_DCE_MASK_SH_LIST(__SHIFT),
++ MI_DCE8_MASK_SH_LIST(__SHIFT),
+ .ENABLE = MC_HUB_RDREQ_DMIF_LIMIT__ENABLE__SHIFT
+ };
+
+ static const struct dce_mem_input_mask mi_masks = {
+- MI_DCE_MASK_SH_LIST(_MASK),
++ MI_DCE8_MASK_SH_LIST(_MASK),
+ .ENABLE = MC_HUB_RDREQ_DMIF_LIMIT__ENABLE_MASK
+ };
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input.c
+index c0a68c6..af9d682 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input.c
++++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input.c
+@@ -150,117 +150,6 @@ bool dce110_mem_input_program_surface_flip_and_addr(
+ return true;
+ }
+
+-/* Scatter Gather param tables */
+-static const unsigned int dvmm_Hw_Setting_2DTiling[4][9] = {
+- { 8, 64, 64, 8, 8, 1, 4, 0, 0},
+- { 16, 64, 32, 8, 16, 1, 8, 0, 0},
+- { 32, 32, 32, 16, 16, 1, 8, 0, 0},
+- { 64, 8, 32, 16, 16, 1, 8, 0, 0}, /* fake */
+-};
+-
+-static const unsigned int dvmm_Hw_Setting_1DTiling[4][9] = {
+- { 8, 512, 8, 1, 0, 1, 0, 0, 0}, /* 0 for invalid */
+- { 16, 256, 8, 2, 0, 1, 0, 0, 0},
+- { 32, 128, 8, 4, 0, 1, 0, 0, 0},
+- { 64, 64, 8, 4, 0, 1, 0, 0, 0}, /* fake */
+-};
+-
+-static const unsigned int dvmm_Hw_Setting_Linear[4][9] = {
+- { 8, 4096, 1, 8, 0, 1, 0, 0, 0},
+- { 16, 2048, 1, 8, 0, 1, 0, 0, 0},
+- { 32, 1024, 1, 8, 0, 1, 0, 0, 0},
+- { 64, 512, 1, 8, 0, 1, 0, 0, 0}, /* new for 64bpp from HW */
+-};
+-
+-/* Helper to get table entry from surface info */
+-static const unsigned int *get_dvmm_hw_setting(
+- union dc_tiling_info *tiling_info,
+- enum surface_pixel_format format)
+-{
+- enum bits_per_pixel {
+- bpp_8 = 0,
+- bpp_16,
+- bpp_32,
+- bpp_64
+- } bpp;
+-
+- if (format >= SURFACE_PIXEL_FORMAT_GRPH_ARGB16161616)
+- bpp = bpp_64;
+- else if (format >= SURFACE_PIXEL_FORMAT_GRPH_ARGB8888)
+- bpp = bpp_32;
+- else if (format >= SURFACE_PIXEL_FORMAT_GRPH_ARGB1555)
+- bpp = bpp_16;
+- else
+- bpp = bpp_8;
+-
+- switch (tiling_info->gfx8.array_mode) {
+- case DC_ARRAY_1D_TILED_THIN1:
+- case DC_ARRAY_1D_TILED_THICK:
+- case DC_ARRAY_PRT_TILED_THIN1:
+- return dvmm_Hw_Setting_1DTiling[bpp];
+- case DC_ARRAY_2D_TILED_THIN1:
+- case DC_ARRAY_2D_TILED_THICK:
+- case DC_ARRAY_2D_TILED_X_THICK:
+- case DC_ARRAY_PRT_2D_TILED_THIN1:
+- case DC_ARRAY_PRT_2D_TILED_THICK:
+- return dvmm_Hw_Setting_2DTiling[bpp];
+- case DC_ARRAY_LINEAR_GENERAL:
+- case DC_ARRAY_LINEAR_ALLIGNED:
+- return dvmm_Hw_Setting_Linear[bpp];
+- default:
+- return dvmm_Hw_Setting_2DTiling[bpp];
+- }
+-}
+-
+-bool dce110_mem_input_program_pte_vm(
+- struct mem_input *mem_input,
+- enum surface_pixel_format format,
+- union dc_tiling_info *tiling_info,
+- enum dc_rotation_angle rotation)
+-{
+- struct dce110_mem_input *mem_input110 = TO_DCE110_MEM_INPUT(mem_input);
+- const unsigned int *pte = get_dvmm_hw_setting(tiling_info, format);
+-
+- unsigned int page_width = 0;
+- unsigned int page_height = 0;
+- unsigned int temp_page_width = pte[1];
+- unsigned int temp_page_height = pte[2];
+- unsigned int min_pte_before_flip = 0;
+- uint32_t value = 0;
+-
+- while ((temp_page_width >>= 1) != 0)
+- page_width++;
+- while ((temp_page_height >>= 1) != 0)
+- page_height++;
+-
+- switch (rotation) {
+- case ROTATION_ANGLE_90:
+- case ROTATION_ANGLE_270:
+- min_pte_before_flip = pte[4];
+- break;
+- default:
+- min_pte_before_flip = pte[3];
+- break;
+- }
+-
+- value = dm_read_reg(mem_input110->base.ctx, DCP_REG(mmGRPH_PIPE_OUTSTANDING_REQUEST_LIMIT));
+- set_reg_field_value(value, 0xff, GRPH_PIPE_OUTSTANDING_REQUEST_LIMIT, GRPH_PIPE_OUTSTANDING_REQUEST_LIMIT);
+- dm_write_reg(mem_input110->base.ctx, DCP_REG(mmGRPH_PIPE_OUTSTANDING_REQUEST_LIMIT), value);
+-
+- value = dm_read_reg(mem_input110->base.ctx, DCP_REG(mmDVMM_PTE_CONTROL));
+- set_reg_field_value(value, page_width, DVMM_PTE_CONTROL, DVMM_PAGE_WIDTH);
+- set_reg_field_value(value, page_height, DVMM_PTE_CONTROL, DVMM_PAGE_HEIGHT);
+- set_reg_field_value(value, min_pte_before_flip, DVMM_PTE_CONTROL, DVMM_MIN_PTE_BEFORE_FLIP);
+- dm_write_reg(mem_input110->base.ctx, DCP_REG(mmDVMM_PTE_CONTROL), value);
+-
+- value = dm_read_reg(mem_input110->base.ctx, DCP_REG(mmDVMM_PTE_ARB_CONTROL));
+- set_reg_field_value(value, pte[5], DVMM_PTE_ARB_CONTROL, DVMM_PTE_REQ_PER_CHUNK);
+- set_reg_field_value(value, 0xff, DVMM_PTE_ARB_CONTROL, DVMM_MAX_PTE_REQ_OUTSTANDING);
+- dm_write_reg(mem_input110->base.ctx, DCP_REG(mmDVMM_PTE_ARB_CONTROL), value);
+-
+- return true;
+-}
+-
+ static void program_urgency_watermark(
+ const struct dc_context *ctx,
+ const uint32_t offset,
+@@ -502,7 +391,7 @@ static struct mem_input_funcs dce110_mem_input_funcs = {
+ .mem_input_program_surface_flip_and_addr =
+ dce110_mem_input_program_surface_flip_and_addr,
+ .mem_input_program_pte_vm =
+- dce110_mem_input_program_pte_vm,
++ dce_mem_input_program_pte_vm,
+ .mem_input_program_surface_config =
+ dce_mem_input_program_surface_config,
+ .mem_input_is_flip_pending =
+diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input.h b/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input.h
+index 83b2df9..a80a20c 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input.h
++++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input.h
+@@ -108,17 +108,6 @@ bool dce110_mem_input_program_surface_config(
+ bool horizontal_mirror);
+
+ /*
+- * dce110_mem_input_program_pte_vm
+- *
+- * This function will program pte vm registers.
+- */
+-bool dce110_mem_input_program_pte_vm(
+- struct mem_input *mem_input,
+- enum surface_pixel_format format,
+- union dc_tiling_info *tiling_info,
+- enum dc_rotation_angle rotation);
+-
+-/*
+ * dce110_mem_input_is_flip_pending
+ *
+ * This function will wait until the surface update-pending bit is cleared.
+diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
+index f0310ba..757e946 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
++++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
+@@ -584,7 +584,7 @@ static const unsigned int *get_dvmm_hw_setting(
+ }
+ }
+
+-bool dce110_mem_input_v_program_pte_vm(
++void dce110_mem_input_v_program_pte_vm(
+ struct mem_input *mem_input,
+ enum surface_pixel_format format,
+ union dc_tiling_info *tiling_info,
+@@ -655,11 +655,9 @@ bool dce110_mem_input_v_program_pte_vm(
+ set_reg_field_value(value, pte_chroma[5], UNP_DVMM_PTE_ARB_CONTROL_C, DVMM_PTE_REQ_PER_CHUNK_C);
+ set_reg_field_value(value, 0xff, UNP_DVMM_PTE_ARB_CONTROL_C, DVMM_MAX_PTE_REQ_OUTSTANDING_C);
+ dm_write_reg(mem_input110->base.ctx, DCP_REG(mmUNP_DVMM_PTE_ARB_CONTROL_C), value);
+-
+- return true;
+ }
+
+-bool dce110_mem_input_v_program_surface_config(
++void dce110_mem_input_v_program_surface_config(
+ struct mem_input *mem_input,
+ enum surface_pixel_format format,
+ union dc_tiling_info *tiling_info,
+@@ -674,8 +672,6 @@ bool dce110_mem_input_v_program_surface_config(
+ program_tiling(mem_input110, tiling_info, format);
+ program_size_and_rotation(mem_input110, rotation, plane_size);
+ program_pixel_format(mem_input110, format);
+-
+- return true;
+ }
+
+ static void program_urgency_watermark(
+diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c
+index 959467f..cac3dc4 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c
++++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c
+@@ -474,7 +474,7 @@ static const struct resource_create_funcs res_create_funcs = {
+ };
+
+ #define mi_inst_regs(id) { \
+- MI_REG_LIST(id), \
++ MI_DCE11_REG_LIST(id), \
+ .MC_HUB_RDREQ_DMIF_LIMIT = mmMC_HUB_RDREQ_DMIF_LIMIT \
+ }
+ static const struct dce_mem_input_registers mi_regs[] = {
+@@ -484,12 +484,12 @@ static const struct dce_mem_input_registers mi_regs[] = {
+ };
+
+ static const struct dce_mem_input_shift mi_shifts = {
+- MI_DCE_MASK_SH_LIST(__SHIFT),
++ MI_DCE11_MASK_SH_LIST(__SHIFT),
+ .ENABLE = MC_HUB_RDREQ_DMIF_LIMIT__ENABLE__SHIFT
+ };
+
+ static const struct dce_mem_input_mask mi_masks = {
+- MI_DCE_MASK_SH_LIST(_MASK),
++ MI_DCE11_MASK_SH_LIST(_MASK),
+ .ENABLE = MC_HUB_RDREQ_DMIF_LIMIT__ENABLE_MASK
+ };
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c b/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c
+index bfb2c3f..4e3273c 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c
++++ b/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c
+@@ -495,7 +495,7 @@ static const struct resource_create_funcs res_create_funcs = {
+ .create_hwseq = dce112_hwseq_create,
+ };
+
+-#define mi_inst_regs(id) { MI_REG_LIST(id) }
++#define mi_inst_regs(id) { MI_DCE11_2_REG_LIST(id) }
+ static const struct dce_mem_input_registers mi_regs[] = {
+ mi_inst_regs(0),
+ mi_inst_regs(1),
+@@ -506,11 +506,11 @@ static const struct dce_mem_input_registers mi_regs[] = {
+ };
+
+ static const struct dce_mem_input_shift mi_shifts = {
+- MI_DCE_MASK_SH_LIST(__SHIFT)
++ MI_DCE11_2_MASK_SH_LIST(__SHIFT)
+ };
+
+ static const struct dce_mem_input_mask mi_masks = {
+- MI_DCE_MASK_SH_LIST(_MASK)
++ MI_DCE11_2_MASK_SH_LIST(_MASK)
+ };
+
+ static struct mem_input *dce112_mem_input_create(
+diff --git a/drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c b/drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c
+index 0672040..3b626b7 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c
++++ b/drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c
+@@ -462,7 +462,7 @@ static const struct resource_create_funcs res_create_funcs = {
+ };
+
+ #define mi_inst_regs(id) { \
+- MI_REG_LIST(id), \
++ MI_DCE8_REG_LIST(id), \
+ .MC_HUB_RDREQ_DMIF_LIMIT = mmMC_HUB_RDREQ_DMIF_LIMIT \
+ }
+ static const struct dce_mem_input_registers mi_regs[] = {
+@@ -475,12 +475,12 @@ static const struct dce_mem_input_registers mi_regs[] = {
+ };
+
+ static const struct dce_mem_input_shift mi_shifts = {
+- MI_DCE_MASK_SH_LIST(__SHIFT),
++ MI_DCE8_MASK_SH_LIST(__SHIFT),
+ .ENABLE = MC_HUB_RDREQ_DMIF_LIMIT__ENABLE__SHIFT
+ };
+
+ static const struct dce_mem_input_mask mi_masks = {
+- MI_DCE_MASK_SH_LIST(_MASK),
++ MI_DCE8_MASK_SH_LIST(_MASK),
+ .ENABLE = MC_HUB_RDREQ_DMIF_LIMIT__ENABLE_MASK
+ };
+
+diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h b/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
+index 78dab74..80566c8 100644
+--- a/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
++++ b/drivers/gpu/drm/amd/display/dc/inc/hw/mem_input.h
+@@ -82,13 +82,13 @@ struct mem_input_funcs {
+ const struct dc_plane_address *address,
+ bool flip_immediate);
+
+- bool (*mem_input_program_pte_vm)(
++ void (*mem_input_program_pte_vm)(
+ struct mem_input *mem_input,
+ enum surface_pixel_format format,
+ union dc_tiling_info *tiling_info,
+ enum dc_rotation_angle rotation);
+
+- bool (*mem_input_program_surface_config)(
++ void (*mem_input_program_surface_config)(
+ struct mem_input *mem_input,
+ enum surface_pixel_format format,
+ union dc_tiling_info *tiling_info,
+--
+2.7.4
+