linux/drivers/gpu/drm/amd/display/dc
Gabe Teeger 8424ee7d52 drm/amd/display: eliminate clock manager code duplication
[Why]
Clock manager contained significant duplicate code between
variants with identical logic for functions using only SMU
calls or shared registers. This increases maintenance overhead
and potential for bugs.

[How]
Expose clock constants and internal functions in header for
sharing. Remove duplicate implementations and update function
pointers to use shared functions. Refactor remaining
variant-specific functions to use shared constants and helper
functions. Add compatibility comments for hardware differences.

Reviewed-by: Dmytro Laktyushkin <dmytro.laktyushkin@amd.com>
Signed-off-by: Gabe Teeger <gabe.teeger@amd.com>
Signed-off-by: Chuanyu Tseng <chuanyu.tseng@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2026-03-30 14:55:08 -04:00
..
basics Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
bios drm/amd/display: bios_parser: fix GPIO I2C line off-by-one 2026-03-30 14:39:18 -04:00
clk_mgr drm/amd/display: eliminate clock manager code duplication 2026-03-30 14:55:08 -04:00
core drm/amd/display: Add update_descriptor param info in 'update_planes_and_stream_state' 2026-03-30 14:42:55 -04:00
dccg drm/amd/display: add dccg FGCG mask init 2026-03-23 14:16:09 -04:00
dce drm/amd/display: add a no_hpd link_encoder_funcs variant 2026-03-24 13:35:28 -04:00
dce60 drm/amd/display/dc: reclassify DCE6 resources and hw sequencer 2025-04-08 16:48:14 -04:00
dce80 drm/amd/display: Rename program_timing function for better debugging 2025-04-30 18:18:59 -04:00
dce110 Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
dce112 Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
dce120 drm/amd/display: Add support to configure CRC window on specific CRC instance 2025-01-10 12:03:45 -05:00
dcn10 drm/amd/display: log destination of vertical interrupt 2025-02-12 21:02:57 -05:00
dcn20 drm/amd/display: Refactoring MPC 2024-07-23 17:07:11 -04:00
dcn21 drm/amd/display: refactor HPD to increase flexibility 2025-12-08 13:56:40 -05:00
dcn30 drm/amd/display: extend delta clamping logic to CM3 LUT helper 2026-02-03 16:47:25 -05:00
dcn31 drm/amd/display: Refactor dcn31_panel_construct to avoid assert 2024-12-10 10:31:24 -05:00
dcn201 drm/amd/display: refactor HPD to increase flexibility 2025-12-08 13:56:40 -05:00
dcn301 drm/amd/display: Refactor for dio 2024-07-27 17:31:26 -04:00
dio drm/amd/display: Enable dcn42 DC 2026-02-23 14:28:33 -05:00
dml drm/amd/display: Don't set 4to1MPC config dynamically 2026-03-30 14:52:56 -04:00
dml2_0 drm/amd/display: Fix bounds checking in dml2_0 clock table array 2026-03-30 14:40:20 -04:00
dpp drm/amd/display: Rename enum 'pixel_format' to 'dc_pixel_format' 2026-03-23 14:19:14 -04:00
dsc drm/amd/display: Rework YCbCr422 DSC policy 2026-03-23 14:16:16 -04:00
dwb Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
gpio drm/amd/display: Enable dcn42 DC 2026-02-23 14:28:33 -05:00
hdcp drm/amd/display: Rename header file link.h to link_service.h 2025-09-15 16:57:29 -04:00
hpo drm/amd/display: Sync dcn42 with DC 3.2.373 2026-03-11 13:58:07 -04:00
hubbub drm/amd/display: remove disable_sutter touch pstate debug code 2026-03-23 14:15:18 -04:00
hubp drm/amd/display: Add MRQ programming for DCN42 2026-03-23 14:11:13 -04:00
hwss drm/amd/display: Fix NULL pointer dereference in dcn401_init_hw() 2026-03-30 14:46:47 -04:00
inc drm/amd/display: Rename enum 'pixel_format' to 'dc_pixel_format' 2026-03-23 14:19:14 -04:00
irq drm/amd/display: Enable dcn42 DC 2026-02-23 14:28:33 -05:00
link drm/amd/display: Rework YCbCr422 DSC policy 2026-03-23 14:16:16 -04:00
mmhubbub drm/amd/display: Enable dcn42 DC 2026-02-23 14:28:33 -05:00
mpc drm/amd/display: Sync dcn42 with DC 3.2.373 2026-03-11 13:58:07 -04:00
opp drm/amd/display: Add more DC HW state info to underflow logging 2025-10-28 09:57:44 -04:00
optc drm/amd/display: Sync dcn42 with DC 3.2.373 2026-03-11 13:58:07 -04:00
pg drm/amd/display: pg cntl update based on previous asic. 2026-03-23 14:15:23 -04:00
resource drm/amd/display: Don't set 4to1MPC config dynamically 2026-03-30 14:52:56 -04:00
soc_and_ip_translator drm/amd/display: dcn42 don't round up disclk and dppclk 2026-03-23 14:11:03 -04:00
sspl drm/amd/display: Add static keyword for sharpness tables 2026-02-18 10:42:30 -05:00
dc_bios_types.h drm/amd/display: Sync dcn42 with DC 3.2.373 2026-03-11 13:58:07 -04:00
dc_ddc_types.h
dc_dmub_srv.c drm/amd/display: Avoid NULL dereference in dc_dmub_srv error paths 2026-03-30 14:40:25 -04:00
dc_dmub_srv.h drm/amd/display: Add a buffer for boot time crc 2026-03-17 10:36:01 -04:00
dc_dp_types.h drm/amd/display: Add new types to replay config 2026-03-11 11:01:59 -04:00
dc_dsc.h drm/amd/display: Rework YCbCr422 DSC policy 2026-03-23 14:16:16 -04:00
dc_edid_parser.c
dc_edid_parser.h
dc_fused_io.c drm/amd/display: Prepare for Fused I2C-over-AUX 2025-05-05 12:55:30 -04:00
dc_fused_io.h drm/amd/display: HDCP Locality check using DMUB Fused IO 2025-04-07 18:01:07 -04:00
dc_hdmi_types.h drm/amd/display: Bump the HDMI clock to 340MHz 2026-01-10 14:21:53 -05:00
dc_helper.c drm/amd/display: Enable dcn42 DC 2026-02-23 14:28:33 -05:00
dc_hw_types.h drm/amd/display: Rename enum 'pixel_format' to 'dc_pixel_format' 2026-03-23 14:19:14 -04:00
dc_plane_priv.h drm/amd/display: Add driver support for future FAMS versions 2024-04-09 22:15:26 -04:00
dc_plane.h drm/amd/display: Sync dcn42 with DC 3.2.373 2026-03-11 13:58:07 -04:00
dc_spl_translate.c drm/amd/display: Rename enum 'pixel_format' to 'dc_pixel_format' 2026-03-23 14:19:14 -04:00
dc_spl_translate.h drm/amd/display: add back quality EASF and ISHARP and dc dependency changes 2024-08-27 17:53:58 -04:00
dc_stat.h
dc_state_priv.h drm/amd/display: Refactor SubVP cursor limiting logic 2025-05-05 12:58:49 -04:00
dc_state.h drm/amd/display: Eliminate recursive header inclusion 2024-10-01 17:37:50 -04:00
dc_stream_priv.h drm/amd/display: Find max flickerless instant vtotal delta 2024-05-13 15:47:53 -04:00
dc_stream.h drm/amd/display: Implementing ramless idle mouse trigger 2026-02-19 12:16:10 -05:00
dc_trace.h drm/amd/display: Clean up unused code 2026-03-11 13:58:06 -04:00
dc_types.h drm/amd/display: Agument live + capture with CVT case. 2026-03-23 14:16:03 -04:00
dc.h drm/amd/display: Don't set 4to1MPC config dynamically 2026-03-30 14:52:56 -04:00
dm_cp_psp.h
dm_event_log.h
dm_helpers.h drm/amd/display: Disable SR feature on eDP1 by default 2026-02-19 12:16:10 -05:00
dm_pp_smu.h drm/amd/display: Add missing SMU version 2024-04-30 09:52:08 -04:00
dm_services_types.h drm/amd/display: Add pixel_clock to amd_pp_display_configuration 2025-09-15 16:52:41 -04:00
dm_services.h drm/amd/display: Refactor SMU tracing 2025-09-23 10:31:51 -04:00
irq_types.h drm/amd/display: Implement HDMI Read Request 2025-04-21 11:27:25 -04:00
Makefile drm/amd/display: Refactor virtual directory reorganize encoder and hwss files. 2026-02-12 15:08:49 -05:00
os_types.h drm/amd/display: Permit DC_FP_START/END only in non-FP compilation units 2025-12-08 13:56:37 -05:00