forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/drivers/gpu/drm/amd/display/dc/dce/dce_opp.h
....@@ -81,6 +81,17 @@
8181 OPP_COMMON_REG_LIST_BASE(id), \
8282 SRI(CONTROL, FMT_MEMORY, id)
8383
84
+#if defined(CONFIG_DRM_AMD_DC_SI)
85
+#define OPP_DCE_60_REG_LIST(id) \
86
+ SRI(FMT_DYNAMIC_EXP_CNTL, FMT, id), \
87
+ SRI(FMT_BIT_DEPTH_CONTROL, FMT, id), \
88
+ SRI(FMT_CONTROL, FMT, id), \
89
+ SRI(FMT_DITHER_RAND_R_SEED, FMT, id), \
90
+ SRI(FMT_DITHER_RAND_G_SEED, FMT, id), \
91
+ SRI(FMT_DITHER_RAND_B_SEED, FMT, id), \
92
+ SRI(FMT_CLAMP_CNTL, FMT, id)
93
+#endif
94
+
8495 #define OPP_SF(reg_name, field_name, post_fix)\
8596 .field_name = reg_name ## __ ## field_name ## post_fix
8697
....@@ -192,6 +203,35 @@
192203 OPP_SF(FMT0_FMT_CONTROL, FMT_SUBSAMPLING_ORDER, mask_sh),\
193204 OPP_SF(FMT0_FMT_CONTROL, FMT_CBCR_BIT_REDUCTION_BYPASS, mask_sh)
194205
206
+#if defined(CONFIG_DRM_AMD_DC_SI)
207
+#define OPP_COMMON_MASK_SH_LIST_DCE_60(mask_sh)\
208
+ OPP_SF(FMT_DYNAMIC_EXP_CNTL, FMT_DYNAMIC_EXP_EN, mask_sh),\
209
+ OPP_SF(FMT_DYNAMIC_EXP_CNTL, FMT_DYNAMIC_EXP_MODE, mask_sh),\
210
+ OPP_SF(FMT_BIT_DEPTH_CONTROL, FMT_TRUNCATE_EN, mask_sh),\
211
+ OPP_SF(FMT_BIT_DEPTH_CONTROL, FMT_TRUNCATE_DEPTH, mask_sh),\
212
+ OPP_SF(FMT_BIT_DEPTH_CONTROL, FMT_SPATIAL_DITHER_EN, mask_sh),\
213
+ OPP_SF(FMT_BIT_DEPTH_CONTROL, FMT_SPATIAL_DITHER_DEPTH, mask_sh),\
214
+ OPP_SF(FMT_BIT_DEPTH_CONTROL, FMT_SPATIAL_DITHER_MODE, mask_sh),\
215
+ OPP_SF(FMT_BIT_DEPTH_CONTROL, FMT_HIGHPASS_RANDOM_ENABLE, mask_sh),\
216
+ OPP_SF(FMT_BIT_DEPTH_CONTROL, FMT_FRAME_RANDOM_ENABLE, mask_sh),\
217
+ OPP_SF(FMT_BIT_DEPTH_CONTROL, FMT_RGB_RANDOM_ENABLE, mask_sh),\
218
+ OPP_SF(FMT_BIT_DEPTH_CONTROL, FMT_TEMPORAL_DITHER_EN, mask_sh),\
219
+ OPP_SF(FMT_DITHER_RAND_R_SEED, FMT_RAND_R_SEED, mask_sh),\
220
+ OPP_SF(FMT_DITHER_RAND_G_SEED, FMT_RAND_G_SEED, mask_sh),\
221
+ OPP_SF(FMT_DITHER_RAND_B_SEED, FMT_RAND_B_SEED, mask_sh),\
222
+ OPP_SF(FMT_BIT_DEPTH_CONTROL, FMT_TEMPORAL_DITHER_EN, mask_sh),\
223
+ OPP_SF(FMT_BIT_DEPTH_CONTROL, FMT_TEMPORAL_DITHER_RESET, mask_sh),\
224
+ OPP_SF(FMT_BIT_DEPTH_CONTROL, FMT_TEMPORAL_DITHER_OFFSET, mask_sh),\
225
+ OPP_SF(FMT_BIT_DEPTH_CONTROL, FMT_TEMPORAL_DITHER_DEPTH, mask_sh),\
226
+ OPP_SF(FMT_BIT_DEPTH_CONTROL, FMT_TEMPORAL_LEVEL, mask_sh),\
227
+ OPP_SF(FMT_BIT_DEPTH_CONTROL, FMT_25FRC_SEL, mask_sh),\
228
+ OPP_SF(FMT_BIT_DEPTH_CONTROL, FMT_50FRC_SEL, mask_sh),\
229
+ OPP_SF(FMT_BIT_DEPTH_CONTROL, FMT_75FRC_SEL, mask_sh),\
230
+ OPP_SF(FMT_CLAMP_CNTL, FMT_CLAMP_DATA_EN, mask_sh),\
231
+ OPP_SF(FMT_CLAMP_CNTL, FMT_CLAMP_COLOR_FORMAT, mask_sh),\
232
+ OPP_SF(FMT_CONTROL, FMT_PIXEL_ENCODING, mask_sh)
233
+#endif
234
+
195235 #define OPP_REG_FIELD_LIST(type) \
196236 type FMT_DYNAMIC_EXP_EN; \
197237 type FMT_DYNAMIC_EXP_MODE; \
....@@ -279,6 +319,15 @@
279319 const struct dce_opp_shift *opp_shift,
280320 const struct dce_opp_mask *opp_mask);
281321
322
+#if defined(CONFIG_DRM_AMD_DC_SI)
323
+void dce60_opp_construct(struct dce110_opp *opp110,
324
+ struct dc_context *ctx,
325
+ uint32_t inst,
326
+ const struct dce_opp_registers *regs,
327
+ const struct dce_opp_shift *opp_shift,
328
+ const struct dce_opp_mask *opp_mask);
329
+#endif
330
+
282331 void dce110_opp_destroy(struct output_pixel_processor **opp);
283332
284333