This DC patchset brings improvements in multiple areas. In summary, we highlight: - change static screen wait frame_count for ips - Fix hang/underflow when transitioning to ODM4:1 - Only clear symclk otg flag for HDMI - Fix lightup regression with DP2 single display configs - Refactor phantom resource allocation - Refactor dc_state interface - Wake DMCUB before executing GPINT commands - Wake DMCUB before sending a command - Refactor DMCUB enter/exit idle interface - enable dcn35 idle power optimization - fix usb-c connector_type - add debug option for ExtendedVBlank DLG adjust - Set test_pattern_changed update flag on pipe enable - dereference variable before checking for zero - get dprefclk ss info from integration info table - skip error logging when DMUB is inactive from S3 - make flip_timestamp_in_us a 64-bit variable - Add case for dcn35 to support usb4 dmub hpd event - Add function for dumping clk registers - Unify optimize_required flags and VRR adjustments - Revert using channel_width as 2 for vram table 3.0 - remove HPO PG in driver side - do not send commands to DMUB if DMUB is inactive from S3 Cc: Daniel Wheeler <daniel.wheeler@xxxxxxx> --- Allen Pan (2): drm/amd/display: fix usb-c connector_type drm/amd/display: change static screen wait frame_count for ips Alvin Lee (2): drm/amd/display: Revert " drm/amd/display: Use channel_width = 2 for vram table 3.0" drm/amd/display: Only clear symclk otg flag for HDMI Anthony Koo (1): drm/amd/display: [FW Promotion] Release 0.0.197.0 Aric Cyr (2): drm/amd/display: Unify optimize_required flags and VRR adjustments drm/amd/display: 3.2.265 Charlene Liu (1): drm/amd/display: get dprefclk ss info from integration info table Dillon Varone (2): drm/amd/display: Refactor dc_state interface drm/amd/display: Refactor phantom resource allocation George Shen (1): drm/amd/display: Set test_pattern_changed update flag on pipe enable Ilya Bakoulin (1): drm/amd/display: Fix hang/underflow when transitioning to ODM4:1 Johnson Chen (1): drm/amd/display: Add function for dumping clk registers Josip Pavic (2): drm/amd/display: make flip_timestamp_in_us a 64-bit variable drm/amd/display: dereference variable before checking for zero Michael Strauss (1): drm/amd/display: Fix lightup regression with DP2 single display configs Muhammad Ahmed (2): drm/amd/display: remove HPO PG in driver side drm/amd/display: add debug option for ExtendedVBlank DLG adjust Nicholas Kazlauskas (3): drm/amd/display: Refactor DMCUB enter/exit idle interface drm/amd/display: Wake DMCUB before sending a command drm/amd/display: Wake DMCUB before executing GPINT commands Roman Li (1): drm/amd/display: enable dcn35 idle power optimization Samson Tam (2): drm/amd/display: do not send commands to DMUB if DMUB is inactive from S3 drm/amd/display: skip error logging when DMUB is inactive from S3 Wayne Lin (1): drm/amd/display: Add case for dcn35 to support usb4 dmub hpd event .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 59 +- .../amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 29 +- drivers/gpu/drm/amd/display/dc/Makefile | 2 +- .../drm/amd/display/dc/bios/bios_parser2.c | 27 +- .../drm/amd/display/dc/bios/command_table2.c | 12 +- .../gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c | 3 +- .../display/dc/clk_mgr/dcn31/dcn31_clk_mgr.c | 2 +- .../dc/clk_mgr/dcn314/dcn314_clk_mgr.c | 2 +- .../dc/clk_mgr/dcn315/dcn315_clk_mgr.c | 2 +- .../dc/clk_mgr/dcn316/dcn316_clk_mgr.c | 2 +- .../display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c | 9 +- drivers/gpu/drm/amd/display/dc/core/dc.c | 300 ++---- .../drm/amd/display/dc/core/dc_hw_sequencer.c | 19 +- .../gpu/drm/amd/display/dc/core/dc_resource.c | 418 +-------- .../gpu/drm/amd/display/dc/core/dc_state.c | 861 ++++++++++++++++++ .../gpu/drm/amd/display/dc/core/dc_stream.c | 46 +- .../gpu/drm/amd/display/dc/core/dc_surface.c | 6 +- drivers/gpu/drm/amd/display/dc/dc.h | 33 +- drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c | 244 ++++- drivers/gpu/drm/amd/display/dc/dc_dmub_srv.h | 59 +- drivers/gpu/drm/amd/display/dc/dc_helper.c | 6 +- drivers/gpu/drm/amd/display/dc/dc_hw_types.h | 2 +- drivers/gpu/drm/amd/display/dc/dc_plane.h | 38 + .../gpu/drm/amd/display/dc/dc_plane_priv.h | 34 + drivers/gpu/drm/amd/display/dc/dc_state.h | 78 ++ .../gpu/drm/amd/display/dc/dc_state_priv.h | 102 +++ drivers/gpu/drm/amd/display/dc/dc_stream.h | 76 +- .../gpu/drm/amd/display/dc/dc_stream_priv.h | 37 + drivers/gpu/drm/amd/display/dc/dc_types.h | 5 + .../gpu/drm/amd/display/dc/dce/dmub_abm_lcd.c | 14 +- .../drm/amd/display/dc/dce/dmub_hw_lock_mgr.c | 2 +- .../gpu/drm/amd/display/dc/dce/dmub_outbox.c | 2 +- drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c | 33 +- .../gpu/drm/amd/display/dc/dcn21/dcn21_hubp.c | 2 +- .../display/dc/dcn31/dcn31_dio_link_encoder.c | 4 +- .../amd/display/dc/dcn31/dcn31_panel_cntl.c | 4 +- .../display/dc/dcn32/dcn32_resource_helpers.c | 93 +- .../display/dc/dcn35/dcn35_dio_link_encoder.c | 5 + .../gpu/drm/amd/display/dc/dcn35/dcn35_init.c | 2 +- .../drm/amd/display/dc/dml/dcn20/dcn20_fpu.c | 5 +- .../drm/amd/display/dc/dml/dcn32/dcn32_fpu.c | 51 +- .../amd/display/dc/dml2/display_mode_core.c | 2 +- .../drm/amd/display/dc/dml2/dml2_dc_types.h | 1 + .../amd/display/dc/dml2/dml2_mall_phantom.c | 89 +- .../display/dc/dml2/dml2_translation_helper.c | 10 +- .../gpu/drm/amd/display/dc/dml2/dml2_utils.c | 14 +- .../drm/amd/display/dc/dml2/dml2_wrapper.c | 2 +- .../drm/amd/display/dc/dml2/dml2_wrapper.h | 35 +- .../amd/display/dc/hwss/dce110/dce110_hwseq.c | 13 +- .../amd/display/dc/hwss/dcn10/dcn10_hwseq.c | 35 +- .../amd/display/dc/hwss/dcn10/dcn10_hwseq.h | 7 +- .../amd/display/dc/hwss/dcn20/dcn20_hwseq.c | 79 +- .../amd/display/dc/hwss/dcn20/dcn20_hwseq.h | 2 +- .../amd/display/dc/hwss/dcn201/dcn201_hwseq.c | 8 +- .../amd/display/dc/hwss/dcn201/dcn201_hwseq.h | 2 +- .../amd/display/dc/hwss/dcn21/dcn21_hwseq.c | 4 +- .../amd/display/dc/hwss/dcn30/dcn30_hwseq.c | 12 +- .../amd/display/dc/hwss/dcn31/dcn31_hwseq.c | 7 +- .../amd/display/dc/hwss/dcn32/dcn32_hwseq.c | 78 +- .../amd/display/dc/hwss/dcn35/dcn35_hwseq.c | 58 +- .../amd/display/dc/hwss/dcn35/dcn35_hwseq.h | 6 +- .../drm/amd/display/dc/hwss/hw_sequencer.h | 8 +- .../display/dc/hwss/hw_sequencer_private.h | 1 + .../gpu/drm/amd/display/dc/inc/core_types.h | 20 +- .../gpu/drm/amd/display/dc/inc/hw/clk_mgr.h | 19 + .../gpu/drm/amd/display/dc/inc/hw/hw_shared.h | 1 + drivers/gpu/drm/amd/display/dc/inc/resource.h | 1 - .../dc/link/protocols/link_dp_capability.c | 2 +- .../display/dc/link/protocols/link_dp_dpia.c | 3 +- .../amd/display/dc/optc/dcn32/dcn32_optc.c | 7 + .../amd/display/dc/optc/dcn35/dcn35_optc.c | 7 + .../dc/resource/dcn32/dcn32_resource.c | 134 +-- .../dc/resource/dcn32/dcn32_resource.h | 14 - .../dc/resource/dcn321/dcn321_resource.c | 25 +- .../dc/resource/dcn35/dcn35_resource.c | 8 +- drivers/gpu/drm/amd/display/dmub/dmub_srv.h | 22 + .../gpu/drm/amd/display/dmub/inc/dmub_cmd.h | 2 +- .../gpu/drm/amd/display/dmub/src/dmub_srv.c | 15 + .../display/include/grph_object_ctrl_defs.h | 2 + 79 files changed, 2147 insertions(+), 1338 deletions(-) create mode 100644 drivers/gpu/drm/amd/display/dc/core/dc_state.c create mode 100644 drivers/gpu/drm/amd/display/dc/dc_plane.h create mode 100644 drivers/gpu/drm/amd/display/dc/dc_plane_priv.h create mode 100644 drivers/gpu/drm/amd/display/dc/dc_state.h create mode 100644 drivers/gpu/drm/amd/display/dc/dc_state_priv.h create mode 100644 drivers/gpu/drm/amd/display/dc/dc_stream_priv.h -- 2.37.3