[AMD Official Use Only - AMD Internal Distribution Only] Hi all, This week this patchset was tested on the following systems: * Lenovo ThinkBook T13s Gen4 with AMD Ryzen 5 6600U * MSI Gaming X Trio RX 6800 * Gigabyte Gaming OC RX 7900 XTX These systems were tested on the following display/connection types: * eDP, (1080p 60hz [5650U]) (1920x1200 60hz [6600U]) (2560x1600 120hz[6600U]) * VGA and DVI (1680x1050 60hz [DP to VGA/DVI, USB-C to VGA/DVI]) * DP/HDMI/USB-C (1440p 170hz, 4k 60hz, 4k 144hz, 4k 240hz [Includes USB-C to DP/HDMI adapters]) * Thunderbolt (LG Ultrafine 5k) * MST (Startech MST14DP123DP [DP to 3x DP] and 2x 4k 60Hz displays) * DSC (with Cable Matters 101075 [DP to 3x DP] with 3x 4k60 displays, and HP Hook G2 with 1 4k60 display) * USB 4 (Kensington SD5700T and 1x 4k 60Hz display) * PCON (Club3D CAC-1085 and 1x 4k 144Hz display [at 4k 120HZ, as that is the max the adapter supports]) The testing is a mix of automated and manual tests. Manual testing includes (but is not limited to): * Changing display configurations and settings * Benchmark testing * Feature testing (Freesync, etc.) Automated testing includes (but is not limited to): * Script testing (scripts to automate some of the manual checks) * IGT testing The patchset consists of the amd-staging-drm-next branch (Head commit - f79aa6503388717045d02f0d268a8c59b3f005fb -> drm/amdgpu: remove amdgpu_mes_fence_wait_polling()) with new patches added on top of it. Tested on Ubuntu 22.04.3, on Wayland and X11, using KDE Plasma and Gnome. Tested-by: Daniel Wheeler <daniel.wheeler@xxxxxxx> Thank you, Dan Wheeler Sr. Technologist | AMD SW Display ------------------------------------------------------------------------------------------------------------------ 1 Commerce Valley Dr E, Thornhill, ON L3T 7X6 amd.com -----Original Message----- From: Hung, Alex <Alex.Hung@xxxxxxx> Sent: Thursday, June 20, 2024 12:11 PM To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx Cc: Wentland, Harry <Harry.Wentland@xxxxxxx>; Li, Sun peng (Leo) <Sunpeng.Li@xxxxxxx>; Siqueira, Rodrigo <Rodrigo.Siqueira@xxxxxxx>; Pillai, Aurabindo <Aurabindo.Pillai@xxxxxxx>; Li, Roman <Roman.Li@xxxxxxx>; Lin, Wayne <Wayne.Lin@xxxxxxx>; Gutierrez, Agustin <Agustin.Gutierrez@xxxxxxx>; Chung, ChiaHsuan (Tom) <ChiaHsuan.Chung@xxxxxxx>; Zuo, Jerry <Jerry.Zuo@xxxxxxx>; Hung, Alex <Alex.Hung@xxxxxxx>; Wheeler, Daniel <Daniel.Wheeler@xxxxxxx> Subject: [PATCH 00/39] DC Patches June 20, 2024 This DC patchset brings improvements in multiple areas. In summary, we highlight: * Enable DCC on DCN401 * Fix cursor issues * Misc Coverity fixes Cc: Daniel Wheeler <daniel.wheeler@xxxxxxx> Alex Hung (12): drm/amd/display: Remove redundant checks for pipe_ctx->stream drm/amd/display: Run DC_LOG_DC after checking link->link_enc drm/amd/display: Fix uninitialized variables in dcn401 drm/amd/display: Remove useless function call drm/amd/display: Check and log for function error codes drm/amd/display: Check and log for function error codes drm/amd/display: Check HDCP returned status drm/amd/display: Add null checks before accessing struct elements drm/amd/display: Ensure curve to hw translation succeed drm/amd/display: Validate function returns drm/amd/display: Remove always true condition drm/amd/display: Remove duplicate null check Alvin Lee (2): drm/amd/display: Program CURSOR_DST_X_OFFSET in viewport space drm/amd/display: Wait for double buffer update on ODM changes Aric Cyr (1): drm/amd/display: 3.2.290 Aurabindo Pillai (3): drm/amd/display: Use sw cursor for DCN401 with rotation drm/amd: Add reg definitions for DCN401 DCC drm/amd/display: Enable DCC on DCN401 Daniel Sa (1): drm/amd/display: Fix reduced resolution and refresh rate Dillon Varone (1): drm/amd/display: Make DML2.1 P-State method force per stream Duncan Ma (1): drm/amd/display: Reset DSC memory status George Shen (1): drm/amd/display: Call dpmm when checking mode support Ivan Lipski (2): drm/amd/display: Remove redundant var from display_rq_dig_calc in dml drm/amd/display: Remove unnecessary variable Joan Lee (1): drm/amd/display: Add Replay general cmd Leo (Hanghong) Ma (1): drm/amd/display: Always enable HPO for DCN4 dGPU Michael Strauss (1): drm/amd/display: Send DP_TOTAL_LTTPR_CNT during detection if LTTPR is present Nevenko Stupar (3): drm/amd/display: Fix cursor issues with ODMs and HW rotations drm/amd/display: Fix cursor size issues drm/amd/display: Fix cursor issues with ODMs and magnification Nicholas Susanto (1): drm/amd/display: Temporarily disable HPO PG on DCN35 Relja Vojvodic (2): drm/amd/display: Refactor dccg401_get_other_enable_symclk_fe drm/amd/display: Fix 1DLUT setting for NL SDR blending Roman Li (1): drm/amd/display: Use periodic detection for ipx/headless Ryan Seto (2): drm/amd/display: Add HW cursor visual confirm drm/amd/display: Adjust reg field for DSC wait for disconnect Sung-huai Wang (1): drm/amd/display: Add workaround to restrict max frac urgent for DPM0 TungYu Lu (1): drm/amd/display: resync OTG after DIO FIFO resync Wenjing Liu (1): drm/amd/display: Remove a redundant check in authenticated_dp .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 39 ++- .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 3 + .../amd/display/amdgpu_dm/amdgpu_dm_crtc.c | 48 ++- .../amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 5 +- .../amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 5 +- .../drm/amd/display/dc/bios/command_table2.c | 3 +- .../dc/clk_mgr/dcn201/dcn201_clk_mgr.c | 2 - .../display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c | 10 +- .../dc/clk_mgr/dcn401/dcn401_clk_mgr.c | 10 +- drivers/gpu/drm/amd/display/dc/core/dc.c | 12 + .../drm/amd/display/dc/core/dc_hw_sequencer.c | 11 + .../gpu/drm/amd/display/dc/core/dc_stream.c | 29 ++ drivers/gpu/drm/amd/display/dc/dc.h | 9 +- drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c | 7 +- drivers/gpu/drm/amd/display/dc/dc_types.h | 1 + .../amd/display/dc/dccg/dcn401/dcn401_dccg.c | 57 ++-- .../drm/amd/display/dc/dce/dce_link_encoder.c | 5 +- .../gpu/drm/amd/display/dc/dce/dmub_replay.c | 18 +- .../amd/display/dc/dcn10/dcn10_link_encoder.c | 8 +- .../drm/amd/display/dc/dml/dcn20/dcn20_fpu.c | 2 +- .../dc/dml/dcn20/display_rq_dlg_calc_20.c | 14 +- .../dc/dml/dcn20/display_rq_dlg_calc_20v2.c | 14 +- .../dc/dml/dcn21/display_rq_dlg_calc_21.c | 14 +- .../dc/dml/dcn30/display_rq_dlg_calc_30.c | 14 +- .../dc/dml/dcn31/display_rq_dlg_calc_31.c | 14 +- .../dc/dml/dcn314/display_rq_dlg_calc_314.c | 14 +- .../dc/dml2/dml21/dml21_translation_helper.c | 2 +- .../amd/display/dc/dml2/dml21/dml21_wrapper.c | 4 +- .../src/dml2_core/dml2_core_dcn4_calcs.c | 4 +- .../dc/dml2/dml21/src/dml2_top/dml_top.c | 17 ++ .../src/inc/dml2_internal_shared_types.h | 1 + .../drm/amd/display/dc/dml2/dml2_wrapper.c | 29 +- .../drm/amd/display/dc/dml2/dml2_wrapper.h | 6 +- .../amd/display/dc/dpp/dcn401/dcn401_dpp_cm.c | 50 ---- .../drm/amd/display/dc/dsc/dcn20/dcn20_dsc.c | 24 +- .../drm/amd/display/dc/dsc/dcn20/dcn20_dsc.h | 13 +- .../drm/amd/display/dc/dsc/dcn35/dcn35_dsc.c | 58 +++- .../amd/display/dc/dsc/dcn401/dcn401_dsc.c | 2 +- .../amd/display/dc/dsc/dcn401/dcn401_dsc.h | 3 +- .../display/dc/hubbub/dcn20/dcn20_hubbub.c | 3 +- .../display/dc/hubbub/dcn30/dcn30_hubbub.c | 3 + .../display/dc/hubbub/dcn31/dcn31_hubbub.c | 3 + .../display/dc/hubbub/dcn401/dcn401_hubbub.c | 280 ++++++++++++++++++ .../display/dc/hubbub/dcn401/dcn401_hubbub.h | 5 + .../amd/display/dc/hubp/dcn20/dcn20_hubp.h | 14 + .../amd/display/dc/hubp/dcn401/dcn401_hubp.c | 71 ++--- .../amd/display/dc/hubp/dcn401/dcn401_hubp.h | 14 +- .../amd/display/dc/hwss/dcn10/dcn10_hwseq.c | 17 -- .../amd/display/dc/hwss/dcn20/dcn20_hwseq.c | 34 ++- .../amd/display/dc/hwss/dcn30/dcn30_hwseq.c | 5 +- .../amd/display/dc/hwss/dcn32/dcn32_hwseq.c | 11 +- .../amd/display/dc/hwss/dcn401/dcn401_hwseq.c | 169 ++++------- .../amd/display/dc/hwss/dcn401/dcn401_hwseq.h | 2 + .../amd/display/dc/hwss/dcn401/dcn401_init.c | 2 +- .../drm/amd/display/dc/hwss/hw_sequencer.h | 9 + .../gpu/drm/amd/display/dc/inc/core_types.h | 3 + .../gpu/drm/amd/display/dc/inc/hw/dchubbub.h | 4 + drivers/gpu/drm/amd/display/dc/inc/hw/hubp.h | 1 + .../amd/display/dc/inc/hw/timing_generator.h | 1 + .../display/dc/link/accessories/link_dp_cts.c | 2 +- .../drm/amd/display/dc/link/link_factory.c | 6 +- .../dc/link/protocols/link_dp_capability.c | 31 +- .../dc/link/protocols/link_dp_training.c | 3 +- .../amd/display/dc/optc/dcn10/dcn10_optc.h | 3 +- .../amd/display/dc/optc/dcn32/dcn32_optc.c | 13 + .../amd/display/dc/optc/dcn32/dcn32_optc.h | 2 + .../amd/display/dc/optc/dcn401/dcn401_optc.c | 1 + .../amd/display/dc/optc/dcn401/dcn401_optc.h | 1 + .../dc/resource/dcn35/dcn35_resource.c | 5 +- .../dc/resource/dcn401/dcn401_resource.c | 9 + .../dc/resource/dcn401/dcn401_resource.h | 2 + .../gpu/drm/amd/display/include/dpcd_defs.h | 5 + .../display/modules/hdcp/hdcp1_execution.c | 24 +- .../drm/amd/display/modules/hdcp/hdcp_psp.c | 3 - .../include/asic_reg/dcn/dcn_4_1_0_sh_mask.h | 110 +++++++ 75 files changed, 1021 insertions(+), 431 deletions(-) -- 2.34.1