This DC patchset brings improvements in multiple areas. In summary, we highlight: - Disable seamless boot on 128b/132b encoding - Change ASSR disable sequence to avoid corruption - Fix few IPS problems - Enable Replay for DCN315 - Fix few ODM problems - Fix FEC_READY write timing - Fix few FPO problems - Adjust DML21 gpuvm_enable assignment - Fix divide by 0 error in VM environment - Fix few DCN35 problems - Fix flickering on DCN321 - Fix mst resume problem - Fix multi-disp FAMS problem - Refactor Replay - Update some of the dcn303 parameters - Enable legacy fast update for dcn301 - Add VCO parameter for DCN31 FPU - Have cursor and surface updates together - Fix problems reported by Coverity --- Alex Hung (9): drm/amd/display: Check index msg_id before read or write drm/amd/display: Check pipe offset before setting vblank drm/amd/display: Skip finding free audio for unknown engine_id drm/amd/display: Do not return negative stream id for array drm/amd/display: ASSERT when failing to find index by plane/stream id drm/amd/display: Remove redundant include file drm/amd/display: Fix uninitialized variables in DM drm/amd/display: Fix uninitialized variables in DC drm/amd/display: Fix uninitialized variables in DC Alvin Lee (3): drm/amd/display: Only program P-State force if pipe config changed drm/amd/display: Assign linear_pitch_alignment even for VM drm/amd/display: For FPO + Vactive check that all pipes support VA Aric Cyr (1): drm/amd/display: 3.2.283 Daniel Miess (1): drm/amd/display: Enable RCO for PHYSYMCLK in DCN35 Dennis Chan (1): drm/amd/display: Refactor for Replay Link off frame count Harry Wentland (2): drm/amd/display: Do cursor programming with rest of pipe drm/amd/display: Always use legacy way of setting cursor on DCE Hersen Wu (2): drm/amd/display: Add NULL pointer check for kzalloc drm/amd/display: Fix overlapping copy within dml_core_mode_programming Ilya Bakoulin (1): drm/amd/display: Fix FEC_READY write on DP LT Iswara Nagulendran (1): drm/amd/display: Restrict multi-disp support for in-game FAMS Joan Lee (1): drm/amd/display: Enable Replay for DCN315 Leo Ma (1): drm/amd/display: Fix DC mode screen flickering on DCN321 Nevenko Stupar (1): drm/amd/display: gpuvm handling in DML21 Nicholas Kazlauskas (2): drm/amd/display: Add trigger FIFO resync path for DCN35 drm/amd/display: Notify idle link detection through shared state Revalla Hari Krishna (1): drm/amd/display: Refactor HUBBUB into component folder Rodrigo Siqueira (10): drm/amd/display: Improve registers write drm/amd/display: Add missing SMU version drm/amd/display: Adjust codestyle for dcn31 and hdcp_msg drm/amd/display: Add VCO speed parameter for DCN31 FPU drm/amd/display: Adjust functions prefix for some of the dcn301 fpu functions drm/amd/display: Enable legacy fast update for dcn301 drm/amd/display: Update some of the dcn303 parameters drm/amd/display: Remove legacy code in DC drm/amd/display: Add log_color_state callback to multiple DCNs drm/amd/display: Handle the case which quad_part is equal 0 Roman Li (2): drm/amd/display: Re-enable IPS2 for static screen drm/amd/display: Add periodic detection for IPS Sung Joon Kim (1): drm/amd/display: Disable seamless boot on 128b/132b encoding Swapnil Patel (1): drm/amd/display: Change ASSR disable sequence Wayne Lin (2): drm/amd/display: Remove unnecessary files drm/amd/display: Defer handling mst up request in resume Webb Chen (1): drm/amd/display: Revert "dc: Keep VBios pixel rate div setting util next mode set" Wenjing Liu (2): drm/amd/display: take ODM slice count into account when deciding DSC slice drm/amd/display: use even ODM slice width for two pixels per container drivers/gpu/drm/amd/display/Makefile | 1 + .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 105 ++++++++++++++++-- .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 9 ++ .../amd/display/amdgpu_dm/amdgpu_dm_crtc.c | 59 +++++++++- .../amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 4 +- .../amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 5 +- .../amd/display/amdgpu_dm/amdgpu_dm_plane.c | 4 +- .../amd/display/amdgpu_dm/amdgpu_dm_plane.h | 3 + .../drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c | 28 +++++ .../drm/amd/display/amdgpu_dm/amdgpu_dm_psr.h | 1 + drivers/gpu/drm/amd/display/dc/Makefile | 2 +- .../drm/amd/display/dc/bios/command_table.c | 2 +- .../drm/amd/display/dc/bios/command_table2.c | 2 +- .../display/dc/clk_mgr/dcn30/dcn30_clk_mgr.c | 8 ++ .../display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c | 23 +++- drivers/gpu/drm/amd/display/dc/core/dc.c | 13 ++- .../gpu/drm/amd/display/dc/core/dc_resource.c | 24 +++- .../gpu/drm/amd/display/dc/core/dc_stream.c | 14 +-- .../drm/amd/display/dc/core/dc_vm_helper.c | 1 + drivers/gpu/drm/amd/display/dc/dc.h | 11 +- drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c | 30 +++++ drivers/gpu/drm/amd/display/dc/dc_dmub_srv.h | 10 ++ drivers/gpu/drm/amd/display/dc/dc_stream.h | 12 ++ drivers/gpu/drm/amd/display/dc/dc_types.h | 2 +- .../dc/dce110/dce110_timing_generator.c | 18 +++ .../dc/dce110/dce110_timing_generator.h | 2 + .../dc/dce110/dce110_timing_generator_v.c | 3 +- .../dc/dce120/dce120_timing_generator.c | 1 + .../display/dc/dce80/dce80_timing_generator.c | 1 + 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 | 2 +- .../gpu/drm/amd/display/dc/dcn201/Makefile | 3 +- drivers/gpu/drm/amd/display/dc/dcn21/Makefile | 2 +- drivers/gpu/drm/amd/display/dc/dcn30/Makefile | 3 +- .../gpu/drm/amd/display/dc/dcn30/dcn30_mpc.c | 2 +- .../gpu/drm/amd/display/dc/dcn301/Makefile | 2 +- drivers/gpu/drm/amd/display/dc/dcn31/Makefile | 2 +- .../drm/amd/display/dc/dcn314/dcn314_dccg.c | 12 +- drivers/gpu/drm/amd/display/dc/dcn32/Makefile | 2 +- .../gpu/drm/amd/display/dc/dcn32/dcn32_dccg.c | 12 +- .../dc/dcn32/dcn32_dio_stream_encoder.c | 40 ++++++- .../display/dc/dcn32/dcn32_resource_helpers.c | 6 +- drivers/gpu/drm/amd/display/dc/dcn35/Makefile | 2 +- .../gpu/drm/amd/display/dc/dcn35/dcn35_dccg.c | 63 +++-------- .../dc/dcn35/dcn35_dio_stream_encoder.c | 36 +++++- drivers/gpu/drm/amd/display/dc/dm_pp_smu.h | 3 +- .../drm/amd/display/dc/dml/dcn20/dcn20_fpu.c | 4 +- .../drm/amd/display/dc/dml/dcn30/dcn30_fpu.c | 2 +- .../amd/display/dc/dml/dcn301/dcn301_fpu.c | 4 +- .../amd/display/dc/dml/dcn301/dcn301_fpu.h | 7 +- .../drm/amd/display/dc/dml/dcn31/dcn31_fpu.c | 22 +--- .../drm/amd/display/dc/dml/dcn32/dcn32_fpu.c | 22 +++- .../drm/amd/display/dc/dml/dcn32/dcn32_fpu.h | 2 +- .../dc/dml/dcn32/display_mode_vba_util_32.c | 4 +- .../amd/display/dc/dml2/display_mode_core.c | 4 +- .../dc/dml2/dml21/dml21_translation_helper.c | 2 +- .../display/dc/dml2/dml2_dc_resource_mgmt.c | 8 +- .../display/dc/dml2/dml2_translation_helper.c | 6 +- .../drm/amd/display/dc/dml2/dml2_wrapper.h | 1 + .../amd/display/dc/dpp/dcn10/CMakeLists.txt | 6 - .../amd/display/dc/dpp/dcn10/dcn10_dpp_cm.c | 5 +- .../amd/display/dc/dpp/dcn20/CMakeLists.txt | 5 - .../amd/display/dc/dpp/dcn20/dcn20_dpp_cm.c | 2 +- .../amd/display/dc/dpp/dcn201/CMakeLists.txt | 4 - .../amd/display/dc/dpp/dcn30/CMakeLists.txt | 5 - .../amd/display/dc/dpp/dcn30/dcn30_dpp_cm.c | 2 +- .../amd/display/dc/dpp/dcn32/CMakeLists.txt | 4 - .../amd/display/dc/dpp/dcn35/CMakeLists.txt | 4 - drivers/gpu/drm/amd/display/dc/dsc/dc_dsc.c | 30 +++-- .../drm/amd/display/dc/gpio/gpio_service.c | 6 +- .../gpu/drm/amd/display/dc/hdcp/hdcp_msg.c | 2 +- .../gpu/drm/amd/display/dc/hubbub/Makefile | 100 +++++++++++++++++ .../dc/{ => hubbub}/dcn10/dcn10_hubbub.c | 2 +- .../dc/{ => hubbub}/dcn10/dcn10_hubbub.h | 0 .../dc/{ => hubbub}/dcn20/dcn20_hubbub.c | 0 .../dc/{ => hubbub}/dcn20/dcn20_hubbub.h | 2 +- .../dc/{ => hubbub}/dcn201/dcn201_hubbub.c | 0 .../dc/{ => hubbub}/dcn201/dcn201_hubbub.h | 0 .../dc/{ => hubbub}/dcn21/dcn21_hubbub.c | 0 .../dc/{ => hubbub}/dcn21/dcn21_hubbub.h | 0 .../dc/{ => hubbub}/dcn30/dcn30_hubbub.c | 0 .../dc/{ => hubbub}/dcn30/dcn30_hubbub.h | 0 .../dc/{ => hubbub}/dcn301/dcn301_hubbub.c | 0 .../dc/{ => hubbub}/dcn301/dcn301_hubbub.h | 0 .../dc/{ => hubbub}/dcn31/dcn31_hubbub.c | 0 .../dc/{ => hubbub}/dcn31/dcn31_hubbub.h | 0 .../dc/{ => hubbub}/dcn32/dcn32_hubbub.c | 0 .../dc/{ => hubbub}/dcn32/dcn32_hubbub.h | 0 .../dc/{ => hubbub}/dcn35/dcn35_hubbub.c | 0 .../dc/{ => hubbub}/dcn35/dcn35_hubbub.h | 0 drivers/gpu/drm/amd/display/dc/hwss/Makefile | 6 - .../amd/display/dc/hwss/dce110/dce110_hwseq.c | 28 +---- .../amd/display/dc/hwss/dcn10/dcn10_hwseq.c | 6 +- .../amd/display/dc/hwss/dcn20/dcn20_hwseq.c | 42 ++++--- .../amd/display/dc/hwss/dcn201/dcn201_hwseq.c | 7 +- .../amd/display/dc/hwss/dcn21/dcn21_hwseq.c | 2 +- .../amd/display/dc/hwss/dcn21/dcn21_init.c | 1 + .../amd/display/dc/hwss/dcn30/dcn30_hwseq.h | 2 +- .../amd/display/dc/hwss/dcn30/dcn30_init.c | 1 + .../amd/display/dc/hwss/dcn301/dcn301_init.c | 4 +- .../amd/display/dc/hwss/dcn31/dcn31_hwseq.c | 2 +- .../amd/display/dc/hwss/dcn31/dcn31_init.c | 1 + .../amd/display/dc/hwss/dcn314/dcn314_hwseq.c | 29 +---- .../amd/display/dc/hwss/dcn314/dcn314_hwseq.h | 4 - .../amd/display/dc/hwss/dcn314/dcn314_init.c | 2 +- .../amd/display/dc/hwss/dcn32/dcn32_hwseq.c | 68 +++++------- .../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 | 34 +++++- .../amd/display/dc/hwss/dcn35/dcn35_hwseq.h | 2 + .../amd/display/dc/hwss/dcn35/dcn35_init.c | 4 +- .../amd/display/dc/hwss/dcn351/dcn351_init.c | 2 +- .../display/dc/hwss/hw_sequencer_private.h | 7 +- .../gpu/drm/amd/display/dc/inc/core_types.h | 7 -- drivers/gpu/drm/amd/display/dc/inc/hw/dccg.h | 5 - drivers/gpu/drm/amd/display/dc/inc/hw/optc.h | 4 +- .../amd/display/dc/inc/hw/stream_encoder.h | 1 - .../amd/display/dc/inc/hw/timing_generator.h | 1 + .../dc/irq/dce110/irq_service_dce110.c | 8 +- .../drm/amd/display/dc/link/link_detection.c | 4 +- .../gpu/drm/amd/display/dc/link/link_dpms.c | 11 +- .../dc/link/protocols/link_dp_capability.c | 16 +-- .../dc/link/protocols/link_dp_irq_handler.c | 10 +- .../display/dc/link/protocols/link_dp_phy.c | 14 +-- .../dc/link/protocols/link_dp_training.c | 2 +- .../link/protocols/link_edp_panel_control.c | 4 +- .../amd/display/dc/link/protocols/link_hpd.c | 2 +- .../amd/display/dc/optc/dcn10/dcn10_optc.c | 46 ++++---- .../amd/display/dc/optc/dcn20/dcn20_optc.c | 10 +- .../amd/display/dc/optc/dcn20/dcn20_optc.h | 1 - .../amd/display/dc/optc/dcn201/dcn201_optc.c | 7 +- .../amd/display/dc/optc/dcn201/dcn201_optc.h | 3 - .../amd/display/dc/optc/dcn30/dcn30_optc.c | 3 +- .../amd/display/dc/optc/dcn301/dcn301_optc.c | 1 + .../amd/display/dc/optc/dcn31/dcn31_optc.c | 1 + .../amd/display/dc/optc/dcn314/dcn314_optc.c | 3 +- .../amd/display/dc/optc/dcn32/dcn32_optc.c | 3 +- .../amd/display/dc/optc/dcn35/dcn35_optc.c | 1 + .../amd/display/dc/optc/dcn401/dcn401_optc.c | 15 ++- drivers/gpu/drm/amd/display/dc/os_types.h | 2 - .../display/dc/resource/dce80/CMakeLists.txt | 4 - .../dc/resource/dcn20/dcn20_resource.c | 2 +- .../dc/resource/dcn30/dcn30_resource.c | 5 +- .../dc/resource/dcn301/dcn301_resource.c | 20 +++- .../dc/resource/dcn303/dcn303_resource.c | 13 ++- .../dc/resource/dcn31/dcn31_resource.c | 5 + .../dc/resource/dcn314/dcn314_resource.c | 5 + .../dc/resource/dcn315/dcn315_resource.c | 14 +++ .../dc/resource/dcn316/dcn316_resource.c | 2 + .../dc/resource/dcn32/dcn32_resource.c | 5 + .../dc/resource/dcn321/dcn321_resource.c | 2 + .../dc/resource/dcn35/dcn35_resource.c | 2 + .../dc/resource/dcn351/dcn351_resource.c | 2 + drivers/gpu/drm/amd/display/dmub/dmub_srv.h | 1 + .../gpu/drm/amd/display/dmub/inc/dmub_cmd.h | 15 ++- .../gpu/drm/amd/display/dmub/src/dmub_srv.c | 2 + .../gpu/drm/amd/display/include/dal_types.h | 1 - .../drm/amd/display/modules/hdcp/hdcp_ddc.c | 8 ++ .../amd/display/modules/power/power_helpers.c | 8 +- 160 files changed, 952 insertions(+), 469 deletions(-) delete mode 100644 drivers/gpu/drm/amd/display/dc/dpp/dcn10/CMakeLists.txt delete mode 100644 drivers/gpu/drm/amd/display/dc/dpp/dcn20/CMakeLists.txt delete mode 100644 drivers/gpu/drm/amd/display/dc/dpp/dcn201/CMakeLists.txt delete mode 100644 drivers/gpu/drm/amd/display/dc/dpp/dcn30/CMakeLists.txt delete mode 100644 drivers/gpu/drm/amd/display/dc/dpp/dcn32/CMakeLists.txt delete mode 100644 drivers/gpu/drm/amd/display/dc/dpp/dcn35/CMakeLists.txt create mode 100644 drivers/gpu/drm/amd/display/dc/hubbub/Makefile rename drivers/gpu/drm/amd/display/dc/{ => hubbub}/dcn10/dcn10_hubbub.c (99%) rename drivers/gpu/drm/amd/display/dc/{ => hubbub}/dcn10/dcn10_hubbub.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubbub}/dcn20/dcn20_hubbub.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubbub}/dcn20/dcn20_hubbub.h (99%) rename drivers/gpu/drm/amd/display/dc/{ => hubbub}/dcn201/dcn201_hubbub.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubbub}/dcn201/dcn201_hubbub.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubbub}/dcn21/dcn21_hubbub.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubbub}/dcn21/dcn21_hubbub.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubbub}/dcn30/dcn30_hubbub.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubbub}/dcn30/dcn30_hubbub.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubbub}/dcn301/dcn301_hubbub.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubbub}/dcn301/dcn301_hubbub.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubbub}/dcn31/dcn31_hubbub.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubbub}/dcn31/dcn31_hubbub.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubbub}/dcn32/dcn32_hubbub.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubbub}/dcn32/dcn32_hubbub.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubbub}/dcn35/dcn35_hubbub.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => hubbub}/dcn35/dcn35_hubbub.h (100%) delete mode 100644 drivers/gpu/drm/amd/display/dc/resource/dce80/CMakeLists.txt -- 2.37.3