5858 SRI(DVMM_PTE_CONTROL, DCP, id),\
5959 SRI(DVMM_PTE_ARB_CONTROL, DCP, id)
6060
61+ #if defined(CONFIG_DRM_AMD_DC_SI )
62+ #define MI_DCE6_REG_LIST (id )\
63+ SRI(GRPH_ENABLE, DCP, id),\
64+ SRI(GRPH_CONTROL, DCP, id),\
65+ SRI(GRPH_X_START, DCP, id),\
66+ SRI(GRPH_Y_START, DCP, id),\
67+ SRI(GRPH_X_END, DCP, id),\
68+ SRI(GRPH_Y_END, DCP, id),\
69+ SRI(GRPH_PITCH, DCP, id),\
70+ SRI(GRPH_SWAP_CNTL, DCP, id),\
71+ SRI(PRESCALE_GRPH_CONTROL, DCP, id),\
72+ SRI(GRPH_UPDATE, DCP, id),\
73+ SRI(GRPH_FLIP_CONTROL, DCP, id),\
74+ SRI(GRPH_PRIMARY_SURFACE_ADDRESS, DCP, id),\
75+ SRI(GRPH_PRIMARY_SURFACE_ADDRESS_HIGH, DCP, id),\
76+ SRI(GRPH_SECONDARY_SURFACE_ADDRESS, DCP, id),\
77+ SRI(GRPH_SECONDARY_SURFACE_ADDRESS_HIGH, DCP, id),\
78+ SRI(DPG_PIPE_ARBITRATION_CONTROL1, DMIF_PG, id),\
79+ SRI(DPG_PIPE_ARBITRATION_CONTROL3, DMIF_PG, id),\
80+ SRI(DPG_PIPE_NB_PSTATE_CHANGE_CONTROL, DMIF_PG, id),\
81+ SRI(DPG_PIPE_URGENCY_CONTROL, DMIF_PG, id),\
82+ SRI(DPG_PIPE_STUTTER_CONTROL, DMIF_PG, id),\
83+ SRI(DMIF_BUFFER_CONTROL, PIPE, id)
84+ #endif
85+
6186#define MI_DCE8_REG_LIST (id )\
6287 MI_DCE_BASE_REG_LIST(id),\
6388 SRI(DPG_PIPE_NB_PSTATE_CHANGE_CONTROL, DMIF_PG, id)
@@ -104,6 +129,9 @@ struct dce_mem_input_registers {
104129 uint32_t GRPH_SECONDARY_SURFACE_ADDRESS_HIGH ;
105130 /* DMIF_PG */
106131 uint32_t DPG_PIPE_ARBITRATION_CONTROL1 ;
132+ #if defined(CONFIG_DRM_AMD_DC_SI )
133+ uint32_t DPG_PIPE_ARBITRATION_CONTROL3 ;
134+ #endif
107135 uint32_t DPG_WATERMARK_MASK_CONTROL ;
108136 uint32_t DPG_PIPE_URGENCY_CONTROL ;
109137 uint32_t DPG_PIPE_URGENT_LEVEL_CONTROL ;
@@ -126,6 +154,18 @@ struct dce_mem_input_registers {
126154#define SFB (blk_name , reg_name , field_name , post_fix )\
127155 .field_name = blk_name ## reg_name ## __ ## field_name ## post_fix
128156
157+ #if defined(CONFIG_DRM_AMD_DC_SI )
158+ #define MI_GFX6_TILE_MASK_SH_LIST (mask_sh , blk )\
159+ SFB(blk, GRPH_CONTROL, GRPH_NUM_BANKS, mask_sh),\
160+ SFB(blk, GRPH_CONTROL, GRPH_BANK_WIDTH, mask_sh),\
161+ SFB(blk, GRPH_CONTROL, GRPH_BANK_HEIGHT, mask_sh),\
162+ SFB(blk, GRPH_CONTROL, GRPH_MACRO_TILE_ASPECT, mask_sh),\
163+ SFB(blk, GRPH_CONTROL, GRPH_TILE_SPLIT, mask_sh),\
164+ SFB(blk, GRPH_CONTROL, GRPH_PIPE_CONFIG, mask_sh),\
165+ SFB(blk, GRPH_CONTROL, GRPH_ARRAY_MODE, mask_sh),\
166+ SFB(blk, GRPH_CONTROL, GRPH_COLOR_EXPANSION_MODE, mask_sh)
167+ #endif
168+
129169#define MI_GFX8_TILE_MASK_SH_LIST (mask_sh , blk )\
130170 SFB(blk, GRPH_CONTROL, GRPH_NUM_BANKS, mask_sh),\
131171 SFB(blk, GRPH_CONTROL, GRPH_BANK_WIDTH, mask_sh),\
@@ -162,6 +202,32 @@ struct dce_mem_input_registers {
162202 SFB(blk, GRPH_UPDATE, GRPH_UPDATE_LOCK, mask_sh),\
163203 SFB(blk, GRPH_FLIP_CONTROL, GRPH_SURFACE_UPDATE_H_RETRACE_EN, mask_sh)
164204
205+ #if defined(CONFIG_DRM_AMD_DC_SI )
206+ #define MI_DCP_MASK_SH_LIST_DCE6 (mask_sh , blk )\
207+ SFB(blk, GRPH_ENABLE, GRPH_ENABLE, mask_sh),\
208+ SFB(blk, GRPH_CONTROL, GRPH_DEPTH, mask_sh),\
209+ SFB(blk, GRPH_CONTROL, GRPH_FORMAT, mask_sh),\
210+ SFB(blk, GRPH_CONTROL, GRPH_NUM_BANKS, mask_sh),\
211+ SFB(blk, GRPH_X_START, GRPH_X_START, mask_sh),\
212+ SFB(blk, GRPH_Y_START, GRPH_Y_START, mask_sh),\
213+ SFB(blk, GRPH_X_END, GRPH_X_END, mask_sh),\
214+ SFB(blk, GRPH_Y_END, GRPH_Y_END, mask_sh),\
215+ SFB(blk, GRPH_PITCH, GRPH_PITCH, mask_sh),\
216+ SFB(blk, GRPH_SWAP_CNTL, GRPH_RED_CROSSBAR, mask_sh),\
217+ SFB(blk, GRPH_SWAP_CNTL, GRPH_BLUE_CROSSBAR, mask_sh),\
218+ SFB(blk, PRESCALE_GRPH_CONTROL, GRPH_PRESCALE_SELECT, mask_sh),\
219+ SFB(blk, PRESCALE_GRPH_CONTROL, GRPH_PRESCALE_R_SIGN, mask_sh),\
220+ SFB(blk, PRESCALE_GRPH_CONTROL, GRPH_PRESCALE_G_SIGN, mask_sh),\
221+ SFB(blk, PRESCALE_GRPH_CONTROL, GRPH_PRESCALE_B_SIGN, mask_sh),\
222+ SFB(blk, GRPH_SECONDARY_SURFACE_ADDRESS_HIGH, GRPH_SECONDARY_SURFACE_ADDRESS_HIGH, mask_sh),\
223+ SFB(blk, GRPH_SECONDARY_SURFACE_ADDRESS, GRPH_SECONDARY_SURFACE_ADDRESS, mask_sh),\
224+ SFB(blk, GRPH_PRIMARY_SURFACE_ADDRESS_HIGH, GRPH_PRIMARY_SURFACE_ADDRESS_HIGH, mask_sh),\
225+ SFB(blk, GRPH_PRIMARY_SURFACE_ADDRESS, GRPH_PRIMARY_SURFACE_ADDRESS, mask_sh),\
226+ SFB(blk, GRPH_UPDATE, GRPH_SURFACE_UPDATE_PENDING, mask_sh),\
227+ SFB(blk, GRPH_UPDATE, GRPH_UPDATE_LOCK, mask_sh),\
228+ SFB(blk, GRPH_FLIP_CONTROL, GRPH_SURFACE_UPDATE_H_RETRACE_EN, mask_sh)
229+ #endif
230+
165231#define MI_DCP_DCE11_MASK_SH_LIST (mask_sh , blk )\
166232 SFB(blk, GRPH_PIPE_OUTSTANDING_REQUEST_LIMIT, GRPH_PIPE_OUTSTANDING_REQUEST_LIMIT, mask_sh)
167233
@@ -172,6 +238,33 @@ struct dce_mem_input_registers {
172238 SFB(blk, DVMM_PTE_ARB_CONTROL, DVMM_PTE_REQ_PER_CHUNK, mask_sh),\
173239 SFB(blk, DVMM_PTE_ARB_CONTROL, DVMM_MAX_PTE_REQ_OUTSTANDING, mask_sh)
174240
241+ #if defined(CONFIG_DRM_AMD_DC_SI )
242+ #define MI_DMIF_PG_MASK_SH_LIST_DCE6 (mask_sh , blk )\
243+ SFB(blk, DPG_PIPE_ARBITRATION_CONTROL1, PIXEL_DURATION, mask_sh),\
244+ SFB(blk, DPG_PIPE_URGENCY_CONTROL, URGENCY_LOW_WATERMARK, mask_sh),\
245+ SFB(blk, DPG_PIPE_URGENCY_CONTROL, URGENCY_HIGH_WATERMARK, mask_sh),\
246+ SFB(blk, DPG_PIPE_STUTTER_CONTROL, STUTTER_ENABLE, mask_sh),\
247+ SFB(blk, DPG_PIPE_STUTTER_CONTROL, STUTTER_IGNORE_FBC, mask_sh),\
248+ SF(PIPE0_DMIF_BUFFER_CONTROL, DMIF_BUFFERS_ALLOCATED, mask_sh),\
249+ SF(PIPE0_DMIF_BUFFER_CONTROL, DMIF_BUFFERS_ALLOCATION_COMPLETED, mask_sh)
250+
251+ #define MI_DMIF_PG_MASK_SH_DCE6 (mask_sh , blk )\
252+ SFB(blk, DPG_PIPE_ARBITRATION_CONTROL3, URGENCY_WATERMARK_MASK, mask_sh),\
253+ SFB(blk, DPG_PIPE_STUTTER_CONTROL, STUTTER_EXIT_SELF_REFRESH_WATERMARK_MASK, mask_sh),\
254+ SFB(blk, DPG_PIPE_STUTTER_CONTROL, STUTTER_EXIT_SELF_REFRESH_WATERMARK, mask_sh),\
255+ SFB(blk, DPG_PIPE_NB_PSTATE_CHANGE_CONTROL, NB_PSTATE_CHANGE_WATERMARK_MASK, mask_sh),\
256+ SFB(blk, DPG_PIPE_NB_PSTATE_CHANGE_CONTROL, NB_PSTATE_CHANGE_ENABLE, mask_sh),\
257+ SFB(blk, DPG_PIPE_NB_PSTATE_CHANGE_CONTROL, NB_PSTATE_CHANGE_URGENT_DURING_REQUEST, mask_sh),\
258+ SFB(blk, DPG_PIPE_NB_PSTATE_CHANGE_CONTROL, NB_PSTATE_CHANGE_NOT_SELF_REFRESH_DURING_REQUEST, mask_sh),\
259+ SFB(blk, DPG_PIPE_NB_PSTATE_CHANGE_CONTROL, NB_PSTATE_CHANGE_WATERMARK, mask_sh)
260+
261+ #define MI_DCE6_MASK_SH_LIST (mask_sh )\
262+ MI_DCP_MASK_SH_LIST_DCE6(mask_sh, ),\
263+ MI_DMIF_PG_MASK_SH_LIST_DCE6(mask_sh, ),\
264+ MI_DMIF_PG_MASK_SH_DCE6(mask_sh, ),\
265+ MI_GFX6_TILE_MASK_SH_LIST(mask_sh, )
266+ #endif
267+
175268#define MI_DMIF_PG_MASK_SH_LIST (mask_sh , blk )\
176269 SFB(blk, DPG_PIPE_ARBITRATION_CONTROL1, PIXEL_DURATION, mask_sh),\
177270 SFB(blk, DPG_WATERMARK_MASK_CONTROL, URGENCY_WATERMARK_MASK, mask_sh),\
@@ -345,6 +438,16 @@ void dce_mem_input_construct(
345438 const struct dce_mem_input_shift * mi_shift ,
346439 const struct dce_mem_input_mask * mi_mask );
347440
441+ #if defined(CONFIG_DRM_AMD_DC_SI )
442+ void dce60_mem_input_construct (
443+ struct dce_mem_input * dce_mi ,
444+ struct dc_context * ctx ,
445+ int inst ,
446+ const struct dce_mem_input_registers * regs ,
447+ const struct dce_mem_input_shift * mi_shift ,
448+ const struct dce_mem_input_mask * mi_mask );
449+ #endif
450+
348451void dce112_mem_input_construct (
349452 struct dce_mem_input * dce_mi ,
350453 struct dc_context * ctx ,
0 commit comments