hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/gpu/drm/amd/display/dc/bios/dce112/command_table_helper2_dce112.c
....@@ -150,38 +150,10 @@
150150
151151 static uint8_t dig_encoder_sel_to_atom(enum engine_id id)
152152 {
153
- uint8_t atom_dig_encoder_sel = 0;
154
-
155
- switch (id) {
156
- case ENGINE_ID_DIGA:
157
- atom_dig_encoder_sel = ATOM_TRANMSITTER_V6__DIGA_SEL;
158
- break;
159
- case ENGINE_ID_DIGB:
160
- atom_dig_encoder_sel = ATOM_TRANMSITTER_V6__DIGB_SEL;
161
- break;
162
- case ENGINE_ID_DIGC:
163
- atom_dig_encoder_sel = ATOM_TRANMSITTER_V6__DIGC_SEL;
164
- break;
165
- case ENGINE_ID_DIGD:
166
- atom_dig_encoder_sel = ATOM_TRANMSITTER_V6__DIGD_SEL;
167
- break;
168
- case ENGINE_ID_DIGE:
169
- atom_dig_encoder_sel = ATOM_TRANMSITTER_V6__DIGE_SEL;
170
- break;
171
- case ENGINE_ID_DIGF:
172
- atom_dig_encoder_sel = ATOM_TRANMSITTER_V6__DIGF_SEL;
173
- break;
174
- case ENGINE_ID_DIGG:
175
- atom_dig_encoder_sel = ATOM_TRANMSITTER_V6__DIGG_SEL;
176
- break;
177
- case ENGINE_ID_UNKNOWN:
178
- /* No DIG_FRONT is associated to DIG_BACKEND */
179
- atom_dig_encoder_sel = 0;
180
- break;
181
- default:
182
- atom_dig_encoder_sel = ATOM_TRANMSITTER_V6__DIGA_SEL;
183
- break;
184
- }
153
+ /* On any ASIC after DCE80, we manually program the DIG_FE
154
+ * selection (see connect_dig_be_to_fe function of the link
155
+ * encoder), so translation should always return 0 (no FE).
156
+ */
185157
186158 return 0;
187159 }
....@@ -416,3 +388,43 @@
416388 {
417389 return &command_table_helper_funcs;
418390 }
391
+
392
+#if defined(CONFIG_DRM_AMD_DC_DCN3_0)
393
+/* function table */
394
+static const struct command_table_helper command_table_helper_funcs_dcn2x = {
395
+ .controller_id_to_atom = dal_cmd_table_helper_controller_id_to_atom2,
396
+ .encoder_action_to_atom = encoder_action_to_atom,
397
+ .engine_bp_to_atom = engine_bp_to_atom,
398
+ .clock_source_id_to_atom = clock_source_id_to_atom,
399
+ .clock_source_id_to_atom_phy_clk_src_id =
400
+ clock_source_id_to_atom_phy_clk_src_id,
401
+ .signal_type_to_atom_dig_mode = signal_type_to_atom_dig_mode,
402
+ .hpd_sel_to_atom = hpd_sel_to_atom,
403
+ .dig_encoder_sel_to_atom = dig_encoder_sel_to_atom,
404
+ .phy_id_to_atom = phy_id_to_atom,
405
+ .disp_power_gating_action_to_atom = disp_power_gating_action_to_atom,
406
+ .clock_source_id_to_ref_clk_src = NULL,
407
+ .transmitter_bp_to_atom = NULL,
408
+ .encoder_id_to_atom = dal_cmd_table_helper_encoder_id_to_atom2,
409
+ .encoder_mode_bp_to_atom =
410
+ dal_cmd_table_helper_encoder_mode_bp_to_atom2,
411
+ .dc_clock_type_to_atom = dc_clock_type_to_atom,
412
+ .transmitter_color_depth_to_atom = transmitter_color_depth_to_atom,
413
+
414
+};
415
+
416
+/*
417
+ * dal_cmd_tbl_helper_dce110_get_table
418
+ *
419
+ * @brief
420
+ * Initialize command table helper functions
421
+ *
422
+ * @param
423
+ * const struct command_table_helper **h - [out] struct of functions
424
+ *
425
+ */
426
+const struct command_table_helper *dal_cmd_tbl_helper_dcn2_get_table2(void)
427
+{
428
+ return &command_table_helper_funcs_dcn2x;
429
+}
430
+#endif