This DC patchset brings improvements in multiple areas. In summary, we have: - Fix some problems reported by Coverity - Fix idle optimization checks for multi-display and dual eDP - Fix incorrect size calculation for loop - Fix DSC-re-computing - Add Replay capability and state in debugfs - Refactor DCCG into component folder - Refactor input mode programming for DIG FIFO - Reset DSC clock in post unlock update - Clean-up recout calculation for visual confirm - Enable urgent latency adjustments for DCN35 Cc: Daniel Wheeler <daniel.wheeler@xxxxxxx> Agustin Gutierrez (2): drm/amd/display: Fix DSC-re-computing drm/amd/display: MST DSC check for older devices Alex Hung (14): drm/amd/display: Skip accessing array for unknown eng_id drm/amd/display: Ensure array index tg_inst won't be -1 drm/amd/display: Check gpio_id before used as array index drm/amd/display: Fix incorrect size calculation for loop drm/amd/display: Check index for aux_rd_interval before using drm/amd/display: Check num_valid_sets before accessing reader_wm_sets[] drm/amd/display: Skip updating link encoder for unknown eng_id drm/amd/display: Check msg_id before processing transcation drm/amd/display: Check link_index before accessing dc->links[] drm/amd/display: Limit clock assignments by size of clk tables drm/amd/display: Spinlock before reading event drm/amd/display: Limit array index according to architecture drm/amd/display: Avoid overflow dc_clk_table->entries by limit to MAX_NUM_DPM_LVL drm/amd/display: Skip plane when not found by stream id Alvin Lee (1): Revert "drm/amd/display: Only program P-State force if pipe config changed" Anthony Koo (1): drm/amd/display: [FW Promotion] Release 0.0.216.0 Aric Cyr (1): drm/amd/display: 3.2.284 Bhuvana Chandra Pinninti (1): drm/amd/display: Refactor HUBP into component folder. Dillon Varone (2): drm/amd/display: Refactor input mode programming for DIG FIFO drm/amd/display: Reset input mode for DIG on encoder reset Hersen Wu (13): drm/amd/display: Add NULL pointer and OVERRUN check within amdgpu_dm irq register drm/amd/display: Stop amdgpu_dm initialize when stream nums greater than 6 drm/amd/display: Stop amdgpu_dm initialize when link nums greater than max_links drm/amd/display: Add missing NULL pointer check within dpcd_extend_address_range drm/amd/display: Add array index check for hdcp ddc access drm/amd/display: Release state memory if amdgpu_dm_create_color_properties fail drm/amd/display: Add otg_master NULL check within resource_log_pipe_topology_update drm/amd/display: Fix Coverity INTERGER_OVERFLOW within construct_integrated_info drm/amd/display: Fix Coverity INTEGER_OVERFLOW within dal_gpio_service_create drm/amd/display: Add NULL pointer check for kzalloc drm/amd/display: Fix wrong array size dummy_boolean of dml2_core_calcs_mode_support_locals drm/amd/display: Release clck_src memory if clk_src_construct fails drm/amd/display: Fix Coverity INTEGER_OVERFLOW within decide_fallback_link_setting_max_bw_policy Leo Ma (1): drm/amd/display: Fix invalid Copyright notice Nicholas Kazlauskas (1): drm/amd/display: Fix idle optimization checks for multi-display and dual eDP Nicholas Susanto (1): drm/amd/display: Enable urgent latency adjustments for DCN35 Revalla Hari Krishna (1): drm/amd/display: Refactor DCCG into component folder Samson Tam (1): drm/amd/display: Clean-up recout calculation for visual confirm Sreeja Golui (1): drm/amd/display: Providing a mechanism to have a custom pwm frequency Tom Chung (2): drm/amd/display: Add Replay capability and state in debugfs drm/amd/display: remove panel replay initialization for DCN316 Wenjing Liu (1): drm/amd/display: reset DSC clock in post unlock update Xi Liu (1): drm/amd/display: add support for force ODM override drivers/gpu/drm/amd/display/Kconfig | 2 + drivers/gpu/drm/amd/display/Makefile | 2 + .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 208 +++++++++++++----- .../amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 74 +++++++ .../display/amdgpu_dm/amdgpu_dm_mst_types.c | 16 +- .../amd/display/amdgpu_dm/amdgpu_dm_replay.c | 12 +- .../amd/display/amdgpu_dm/amdgpu_dm_replay.h | 2 +- drivers/gpu/drm/amd/display/dc/Makefile | 2 +- .../gpu/drm/amd/display/dc/bios/bios_parser.c | 4 +- .../drm/amd/display/dc/bios/bios_parser2.c | 7 +- .../amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c | 3 +- .../dc/clk_mgr/dcn30/dcn30_smu11_driver_if.h | 2 +- .../dc/clk_mgr/dcn32/dcn32_smu13_driver_if.h | 2 +- .../dc/clk_mgr/dcn401/dcn401_clk_mgr.c | 2 +- .../drm/amd/display/dc/core/dc_link_enc_cfg.c | 9 +- .../drm/amd/display/dc/core/dc_link_exports.c | 3 + .../gpu/drm/amd/display/dc/core/dc_resource.c | 28 ++- drivers/gpu/drm/amd/display/dc/dc.h | 3 +- drivers/gpu/drm/amd/display/dc/dccg/Makefile | 98 +++++++++ .../display/dc/{ => dccg}/dcn20/dcn20_dccg.c | 0 .../display/dc/{ => dccg}/dcn20/dcn20_dccg.h | 0 .../dc/{ => dccg}/dcn201/dcn201_dccg.c | 0 .../dc/{ => dccg}/dcn201/dcn201_dccg.h | 0 .../display/dc/{ => dccg}/dcn21/dcn21_dccg.c | 0 .../display/dc/{ => dccg}/dcn21/dcn21_dccg.h | 0 .../display/dc/{ => dccg}/dcn30/dcn30_dccg.c | 0 .../display/dc/{ => dccg}/dcn30/dcn30_dccg.h | 0 .../dc/{ => dccg}/dcn301/dcn301_dccg.c | 0 .../dc/{ => dccg}/dcn301/dcn301_dccg.h | 0 .../dc/{ => dccg}/dcn302/dcn302_dccg.h | 0 .../dc/{ => dccg}/dcn303/dcn303_dccg.h | 0 .../display/dc/{ => dccg}/dcn31/dcn31_dccg.c | 0 .../display/dc/{ => dccg}/dcn31/dcn31_dccg.h | 0 .../dc/{ => dccg}/dcn314/dcn314_dccg.c | 0 .../dc/{ => dccg}/dcn314/dcn314_dccg.h | 0 .../display/dc/{ => dccg}/dcn32/dcn32_dccg.c | 0 .../display/dc/{ => dccg}/dcn32/dcn32_dccg.h | 0 .../display/dc/{ => dccg}/dcn35/dcn35_dccg.c | 2 +- .../display/dc/{ => dccg}/dcn35/dcn35_dccg.h | 0 drivers/gpu/drm/amd/display/dc/dcn10/Makefile | 2 +- .../dc/dcn10/dcn10_hw_sequencer_debug.c | 2 +- drivers/gpu/drm/amd/display/dc/dcn20/Makefile | 8 +- .../gpu/drm/amd/display/dc/dcn201/Makefile | 8 +- drivers/gpu/drm/amd/display/dc/dcn21/Makefile | 6 +- drivers/gpu/drm/amd/display/dc/dcn30/Makefile | 4 +- .../gpu/drm/amd/display/dc/dcn301/Makefile | 3 +- drivers/gpu/drm/amd/display/dc/dcn31/Makefile | 3 +- .../amd/display/dc/dcn31/dcn31_panel_cntl.c | 14 ++ .../amd/display/dc/dcn31/dcn31_panel_cntl.h | 3 + .../gpu/drm/amd/display/dc/dcn314/Makefile | 2 +- drivers/gpu/drm/amd/display/dc/dcn32/Makefile | 3 +- drivers/gpu/drm/amd/display/dc/dcn35/Makefile | 3 +- .../drm/amd/display/dc/dcn401/dcn401_dccg.c | 31 +-- .../dc/dcn401/dcn401_dio_stream_encoder.c | 113 ++++------ .../drm/amd/display/dc/dml/dcn35/dcn35_fpu.c | 4 +- .../amd/display/dc/dml2/display_mode_core.c | 2 +- .../dc/dml2/dml21/dml21_translation_helper.c | 14 +- .../amd/display/dc/dml2/dml21/dml21_utils.c | 5 +- .../src/dml2_core/dml2_core_shared_types.h | 2 +- .../display/dc/dml2/dml2_dc_resource_mgmt.c | 6 +- drivers/gpu/drm/amd/display/dc/dsc/Makefile | 3 +- .../drm/amd/display/dc/dsc/dcn20/dcn20_dsc.c | 18 +- .../drm/amd/display/dc/dsc/dcn20/dcn20_dsc.h | 3 +- .../amd/display/dc/dsc/dcn401/dcn401_dsc.c | 17 +- drivers/gpu/drm/amd/display/dc/dsc/dsc.h | 1 + .../drm/amd/display/dc/gpio/gpio_service.c | 17 +- .../gpu/drm/amd/display/dc/hdcp/hdcp_msg.c | 17 +- drivers/gpu/drm/amd/display/dc/hubp/Makefile | 92 ++++++++ .../display/dc/{ => hubp}/dcn10/dcn10_hubp.c | 0 .../display/dc/{ => hubp}/dcn10/dcn10_hubp.h | 0 .../display/dc/{ => hubp}/dcn20/dcn20_hubp.c | 0 .../display/dc/{ => hubp}/dcn20/dcn20_hubp.h | 0 .../dc/{ => hubp}/dcn201/dcn201_hubp.c | 0 .../dc/{ => hubp}/dcn201/dcn201_hubp.h | 0 .../display/dc/{ => hubp}/dcn21/dcn21_hubp.c | 0 .../display/dc/{ => hubp}/dcn21/dcn21_hubp.h | 0 .../display/dc/{ => hubp}/dcn30/dcn30_hubp.c | 0 .../display/dc/{ => hubp}/dcn30/dcn30_hubp.h | 0 .../display/dc/{ => hubp}/dcn31/dcn31_hubp.c | 0 .../display/dc/{ => hubp}/dcn31/dcn31_hubp.h | 0 .../display/dc/{ => hubp}/dcn32/dcn32_hubp.c | 0 .../display/dc/{ => hubp}/dcn32/dcn32_hubp.h | 0 .../display/dc/{ => hubp}/dcn35/dcn35_hubp.c | 0 .../display/dc/{ => hubp}/dcn35/dcn35_hubp.h | 0 .../amd/display/dc/hwss/dcn20/dcn20_hwseq.c | 46 +++- .../amd/display/dc/hwss/dcn314/dcn314_hwseq.c | 17 -- .../amd/display/dc/hwss/dcn314/dcn314_hwseq.h | 2 - .../amd/display/dc/hwss/dcn314/dcn314_init.c | 1 - .../amd/display/dc/hwss/dcn32/dcn32_hwseq.c | 69 ++---- .../amd/display/dc/hwss/dcn32/dcn32_hwseq.h | 4 +- .../amd/display/dc/hwss/dcn32/dcn32_init.c | 1 - .../amd/display/dc/hwss/dcn35/dcn35_hwseq.c | 33 ++- .../amd/display/dc/hwss/dcn35/dcn35_init.c | 1 - .../amd/display/dc/hwss/dcn351/dcn351_init.c | 1 - .../amd/display/dc/hwss/dcn401/dcn401_hwseq.c | 99 ++++++++- .../amd/display/dc/hwss/dcn401/dcn401_hwseq.h | 3 + .../amd/display/dc/hwss/dcn401/dcn401_init.c | 6 +- .../display/dc/hwss/hw_sequencer_private.h | 1 - .../gpu/drm/amd/display/dc/inc/clock_source.h | 1 + drivers/gpu/drm/amd/display/dc/inc/hw/dccg.h | 3 +- .../amd/display/dc/inc/hw/stream_encoder.h | 1 + .../amd/display/dc/link/hwss/link_hwss_dio.c | 5 + .../gpu/drm/amd/display/dc/link/link_dpms.c | 10 +- .../drm/amd/display/dc/link/link_factory.c | 2 +- .../dc/link/protocols/link_dp_capability.c | 2 +- .../dc/link/protocols/link_dp_training.c | 4 +- .../amd/display/dc/link/protocols/link_dpcd.c | 1 + .../amd/display/dc/optc/dcn401/dcn401_optc.c | 1 + .../dc/resource/dce80/dce80_resource.c | 1 + .../dc/resource/dcn20/dcn20_resource.c | 9 + .../dc/resource/dcn31/dcn31_resource.c | 1 + .../dc/resource/dcn314/dcn314_resource.c | 4 +- .../dc/resource/dcn35/dcn35_resource.c | 1 + .../dc/resource/dcn351/dcn351_resource.c | 1 + .../dc/resource/dcn401/dcn401_resource.c | 20 +- .../gpu/drm/amd/display/dmub/inc/dmub_cmd.h | 139 ++++++++++++ .../drm/amd/display/modules/hdcp/hdcp_ddc.c | 28 ++- 117 files changed, 1059 insertions(+), 346 deletions(-) create mode 100644 drivers/gpu/drm/amd/display/dc/dccg/Makefile rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn20/dcn20_dccg.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn20/dcn20_dccg.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn201/dcn201_dccg.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn201/dcn201_dccg.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn21/dcn21_dccg.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn21/dcn21_dccg.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn30/dcn30_dccg.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn30/dcn30_dccg.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn301/dcn301_dccg.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn301/dcn301_dccg.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn302/dcn302_dccg.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn303/dcn303_dccg.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn31/dcn31_dccg.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn31/dcn31_dccg.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn314/dcn314_dccg.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn314/dcn314_dccg.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn32/dcn32_dccg.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn32/dcn32_dccg.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn35/dcn35_dccg.c (99%) rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn35/dcn35_dccg.h (100%) create mode 100644 drivers/gpu/drm/amd/display/dc/hubp/Makefile rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn10/dcn10_hubp.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn10/dcn10_hubp.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn20/dcn20_hubp.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn20/dcn20_hubp.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn201/dcn201_hubp.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn201/dcn201_hubp.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn21/dcn21_hubp.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn21/dcn21_hubp.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn30/dcn30_hubp.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn30/dcn30_hubp.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn31/dcn31_hubp.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn31/dcn31_hubp.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn32/dcn32_hubp.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn32/dcn32_hubp.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn35/dcn35_hubp.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn35/dcn35_hubp.h (100%) -- 2.34.1