[Public] 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 - 0a64705ad8b13bb27909ec47bd6b3a4209eb37bd -> drm/amd/display: Disable PHYSYMCLK RCO) 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: Mahfooz, Hamza <Hamza.Mahfooz@xxxxxxx> Sent: Tuesday, June 11, 2024 12:51 PM To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx Cc: Wheeler, Daniel <Daniel.Wheeler@xxxxxxx>; Wentland, Harry <Harry.Wentland@xxxxxxx>; Li, Sun peng (Leo) <Sunpeng.Li@xxxxxxx>; Lakha, Bhawanpreet <Bhawanpreet.Lakha@xxxxxxx>; Siqueira, Rodrigo <Rodrigo.Siqueira@xxxxxxx>; Pillai, Aurabindo <Aurabindo.Pillai@xxxxxxx>; Zhuo, Lillian <Qingqing.Zhuo@xxxxxxx>; Li, Roman <Roman.Li@xxxxxxx>; Lin, Wayne <Wayne.Lin@xxxxxxx>; Chiu, Solomon <Solomon.Chiu@xxxxxxx>; Gutierrez, Agustin <Agustin.Gutierrez@xxxxxxx>; Zuo, Jerry <Jerry.Zuo@xxxxxxx>; Mahfooz, Hamza <Hamza.Mahfooz@xxxxxxx> Subject: [PATCH 00/36] DC Patches June 11, 2024 Cc: Daniel Wheeler <daniel.wheeler@xxxxxxx> Alex Hung (15): drm/amd/display: Explicitly extend unsigned 16 bit to 64 bit drm/amd/display: Add null checker before passing variables drm/amd/display: Check BIOS images before it is used drm/amd/display: Skip wbscl_set_scaler_filter if filter is null drm/amd/display: Add null checker before access structs drm/amd/display: Check dc_stream_state before it is used drm/amd/display: Check pipe_ctx before it is used drm/amd/display: Covert integers to double before divisions drm/amd/display: Remove redundant checks for res_pool->dccg drm/amd/display: Remove redundant checks for ctx->dc_bios drm/amd/display: Remove redundant null checks drm/amd/display: Remove redundant checks for opp drm/amd/display: Remove redundant checks for context drm/amd/display: Check UnboundedRequestEnabled's value drm/amd/display: Remove redundant null checks Alvin Lee (1): drm/amd/display: Make sure to reprogram ODM when resync fifo Anthony Koo (1): drm/amd/display: [FW Promotion] Release 0.0.222.0 Aric Cyr (1): drm/amd/display: 3.2.289 Chris Park (1): drm/amd/display: On clock init, maintain DISPCLK freq Dillon Varone (2): drm/amd/display: Enable DCN401 idle optimizations by default drm/amd/display: Add null check to dml21_find_dc_pipes_for_plane Ivan Lipski (3): drm/amd/display: Remove redundant condition with DEADCODE drm/amd/display: Remove redundant condition in VBA 314 func drm/amd/display: Remove unused value set from 'min_hratio_fact' in dml Joshua Aberback (3): drm/amd/display: DCN401 full power down in HW init if any link enabled Revert "drm/amd/display: workaround for oled eDP not lighting up on DCN401" drm/amd/display: Remove duplicate HWSS interfaces Michael Strauss (1): drm/amd/display: Attempt to avoid empty TUs when endpoint is DPIA Mounika Adhuri (1): drm/amd/display: Refactor DCN3X into component folder Relja Vojvodic (1): drm/amd/display: Add dcn401 DIG fifo enable/disable Rodrigo Siqueira (3): drm/amd/display: Fix NULL pointer dereference for DTN log in DCN401 drm/amd/display: Fix warning caused by an attempt to configure a non-otg master drm/amd/display: Improve warning log for get OPP for OTG master Sridevi Arvindekar (1): drm/amd/display: mirror case cleanup for cursors Sung Joon Kim (1): drm/amd/display: Send message to notify the DPIA host router bandwidth Wenjing Liu (1): drm/amd/display: fix minor coding errors where dml21 phase 5 uses wrong variables drivers/gpu/drm/amd/display/Makefile | 7 ++ .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 19 +-- .../amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 2 +- .../amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 3 - drivers/gpu/drm/amd/display/dc/Makefile | 6 +- .../gpu/drm/amd/display/dc/bios/bios_parser.c | 14 +++ .../amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c | 2 +- .../display/dc/clk_mgr/dcn301/vg_clk_mgr.c | 2 +- .../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/dcn32/dcn32_clk_mgr.c | 2 +- .../display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c | 57 ++++++++- .../amd/display/dc/clk_mgr/dcn35/dcn35_smu.c | 21 +++- .../amd/display/dc/clk_mgr/dcn35/dcn35_smu.h | 2 + .../dc/clk_mgr/dcn401/dcn401_clk_mgr.c | 17 +++ drivers/gpu/drm/amd/display/dc/core/dc.c | 21 +++- .../drm/amd/display/dc/core/dc_hw_sequencer.c | 2 +- .../gpu/drm/amd/display/dc/core/dc_resource.c | 15 ++- .../gpu/drm/amd/display/dc/core/dc_state.c | 24 ++-- drivers/gpu/drm/amd/display/dc/dc.h | 6 +- drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c | 20 +++- .../drm/amd/display/dc/dcn20/dcn20_dwb_scl.c | 3 + drivers/gpu/drm/amd/display/dc/dcn32/Makefile | 19 --- .../gpu/drm/amd/display/dc/dcn321/Makefile | 17 --- drivers/gpu/drm/amd/display/dc/dcn35/Makefile | 19 --- drivers/gpu/drm/amd/display/dc/dio/Makefile | 63 ++++++++++ .../{ => dio}/dcn32/dcn32_dio_link_encoder.c | 0 .../{ => dio}/dcn32/dcn32_dio_link_encoder.h | 0 .../dcn32/dcn32_dio_stream_encoder.c | 0 .../dcn32/dcn32_dio_stream_encoder.h | 0 .../dcn321/dcn321_dio_link_encoder.c | 0 .../dcn321/dcn321_dio_link_encoder.h | 0 .../{ => dio}/dcn35/dcn35_dio_link_encoder.c | 0 .../{ => dio}/dcn35/dcn35_dio_link_encoder.h | 0 .../dcn35/dcn35_dio_stream_encoder.c | 4 +- .../dcn35/dcn35_dio_stream_encoder.h | 6 + .../dcn401/dcn401_dio_link_encoder.c | 0 .../dcn401/dcn401_dio_link_encoder.h | 0 .../dcn401/dcn401_dio_stream_encoder.c | 4 +- .../dcn401/dcn401_dio_stream_encoder.h | 0 .../drm/amd/display/dc/dml/calcs/dcn_calcs.c | 2 +- .../drm/amd/display/dc/dml/dcn20/dcn20_fpu.c | 20 ++-- .../dc/dml/dcn20/display_mode_vba_20.c | 16 +-- .../dc/dml/dcn20/display_mode_vba_20v2.c | 4 +- .../dc/dml/dcn20/display_rq_dlg_calc_20.c | 5 - .../dc/dml/dcn20/display_rq_dlg_calc_20v2.c | 5 - .../dc/dml/dcn21/display_mode_vba_21.c | 2 +- .../dc/dml/dcn21/display_rq_dlg_calc_21.c | 8 -- .../dc/dml/dcn30/display_mode_vba_30.c | 2 +- .../dc/dml/dcn30/display_rq_dlg_calc_30.c | 5 - .../dc/dml/dcn31/display_mode_vba_31.c | 4 +- .../dc/dml/dcn31/display_rq_dlg_calc_31.c | 5 - .../dc/dml/dcn314/display_mode_vba_314.c | 11 +- .../dc/dml/dcn314/display_rq_dlg_calc_314.c | 5 - .../drm/amd/display/dc/dml/dcn32/dcn32_fpu.c | 11 +- .../dc/dml/dcn32/display_mode_vba_util_32.c | 8 +- .../display/dc/dml/dml1_display_rq_dlg_calc.c | 5 - .../amd/display/dc/dml2/display_mode_core.c | 12 +- .../dc/dml2/dml21/dml21_translation_helper.c | 4 +- .../amd/display/dc/dml2/dml21/dml21_utils.c | 28 ++++- .../src/dml2_core/dml2_core_dcn4_calcs.c | 28 ++--- .../dml21/src/dml2_core/dml2_core_shared.c | 24 ++-- .../dml21/src/dml2_pmo/dml2_pmo_dcn4_fams2.c | 5 + .../dc/dml2/dml21/src/dml2_top/dml_top.c | 4 +- .../display/dc/dml2/dml2_dc_resource_mgmt.c | 9 +- .../drm/amd/display/dc/dml2/dml2_wrapper.c | 5 +- drivers/gpu/drm/amd/display/dc/dwb/Makefile | 37 ++++++ .../display/dc/{ => dwb}/dcn35/dcn35_dwb.c | 0 .../display/dc/{ => dwb}/dcn35/dcn35_dwb.h | 0 drivers/gpu/drm/amd/display/dc/hpo/Makefile | 35 ++++++ .../dcn32/dcn32_hpo_dp_link_encoder.c | 0 .../dcn32/dcn32_hpo_dp_link_encoder.h | 0 .../amd/display/dc/hwss/dce110/dce110_hwseq.c | 9 +- .../amd/display/dc/hwss/dcn10/dcn10_hwseq.c | 61 +++++----- .../amd/display/dc/hwss/dcn10/dcn10_init.c | 2 - .../amd/display/dc/hwss/dcn20/dcn20_hwseq.c | 11 +- .../amd/display/dc/hwss/dcn20/dcn20_init.c | 1 - .../amd/display/dc/hwss/dcn201/dcn201_hwseq.c | 5 +- .../amd/display/dc/hwss/dcn201/dcn201_init.c | 1 - .../amd/display/dc/hwss/dcn21/dcn21_init.c | 2 - .../amd/display/dc/hwss/dcn30/dcn30_hwseq.c | 10 +- .../amd/display/dc/hwss/dcn30/dcn30_init.c | 1 - .../amd/display/dc/hwss/dcn301/dcn301_init.c | 1 - .../amd/display/dc/hwss/dcn31/dcn31_hwseq.c | 2 +- .../amd/display/dc/hwss/dcn31/dcn31_init.c | 2 - .../amd/display/dc/hwss/dcn314/dcn314_hwseq.c | 19 ++- .../amd/display/dc/hwss/dcn314/dcn314_init.c | 2 - .../amd/display/dc/hwss/dcn32/dcn32_hwseq.c | 110 ++++++++++-------- .../amd/display/dc/hwss/dcn32/dcn32_init.c | 1 - .../amd/display/dc/hwss/dcn35/dcn35_hwseq.c | 82 ++++++++++++- .../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 - .../amd/display/dc/hwss/dcn401/dcn401_hwseq.c | 75 ++++++------ .../amd/display/dc/hwss/dcn401/dcn401_init.c | 1 - .../drm/amd/display/dc/hwss/hw_sequencer.h | 1 - .../display/dc/hwss/hw_sequencer_private.h | 2 - .../link/protocols/link_edp_panel_control.c | 3 - .../gpu/drm/amd/display/dc/mmhubbub/Makefile | 45 +++++++ .../dc/{ => mmhubbub}/dcn32/dcn32_mmhubbub.c | 0 .../dc/{ => mmhubbub}/dcn32/dcn32_mmhubbub.h | 0 .../dc/{ => mmhubbub}/dcn35/dcn35_mmhubbub.c | 0 .../dc/{ => mmhubbub}/dcn35/dcn35_mmhubbub.h | 0 drivers/gpu/drm/amd/display/dc/mpc/Makefile | 45 +++++++ .../display/dc/{ => mpc}/dcn32/dcn32_mpc.c | 0 .../display/dc/{ => mpc}/dcn32/dcn32_mpc.h | 0 .../display/dc/{ => mpc}/dcn401/dcn401_mpc.c | 0 .../display/dc/{ => mpc}/dcn401/dcn401_mpc.h | 0 drivers/gpu/drm/amd/display/dc/opp/Makefile | 35 ++++++ .../display/dc/{ => opp}/dcn35/dcn35_opp.c | 0 .../display/dc/{ => opp}/dcn35/dcn35_opp.h | 0 drivers/gpu/drm/amd/display/dc/pg/Makefile | 35 ++++++ .../display/dc/{ => pg}/dcn35/dcn35_pg_cntl.c | 0 .../display/dc/{ => pg}/dcn35/dcn35_pg_cntl.h | 0 .../gpu/drm/amd/display/dc/resource/Makefile | 2 +- .../dc/resource/dcn20/dcn20_resource.c | 2 +- .../dc/resource/dcn201/dcn201_resource.c | 4 +- .../dc/resource/dcn32/dcn32_resource.c | 2 + .../dcn32/dcn32_resource_helpers.c | 0 .../dc/resource/dcn351/dcn351_resource.c | 1 + .../dc/resource/dcn401/dcn401_resource.c | 3 - .../gpu/drm/amd/display/dmub/inc/dmub_cmd.h | 9 +- 124 files changed, 880 insertions(+), 409 deletions(-) delete mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/Makefile delete mode 100644 drivers/gpu/drm/amd/display/dc/dcn321/Makefile delete mode 100644 drivers/gpu/drm/amd/display/dc/dcn35/Makefile create mode 100644 drivers/gpu/drm/amd/display/dc/dio/Makefile rename drivers/gpu/drm/amd/display/dc/{ => dio}/dcn32/dcn32_dio_link_encoder.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => dio}/dcn32/dcn32_dio_link_encoder.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => dio}/dcn32/dcn32_dio_stream_encoder.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => dio}/dcn32/dcn32_dio_stream_encoder.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => dio}/dcn321/dcn321_dio_link_encoder.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => dio}/dcn321/dcn321_dio_link_encoder.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => dio}/dcn35/dcn35_dio_link_encoder.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => dio}/dcn35/dcn35_dio_link_encoder.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => dio}/dcn35/dcn35_dio_stream_encoder.c (99%) rename drivers/gpu/drm/amd/display/dc/{ => dio}/dcn35/dcn35_dio_stream_encoder.h (99%) rename drivers/gpu/drm/amd/display/dc/{ => dio}/dcn401/dcn401_dio_link_encoder.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => dio}/dcn401/dcn401_dio_link_encoder.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => dio}/dcn401/dcn401_dio_stream_encoder.c (99%) rename drivers/gpu/drm/amd/display/dc/{ => dio}/dcn401/dcn401_dio_stream_encoder.h (100%) create mode 100644 drivers/gpu/drm/amd/display/dc/dwb/Makefile rename drivers/gpu/drm/amd/display/dc/{ => dwb}/dcn35/dcn35_dwb.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => dwb}/dcn35/dcn35_dwb.h (100%) create mode 100644 drivers/gpu/drm/amd/display/dc/hpo/Makefile rename drivers/gpu/drm/amd/display/dc/{ => hpo}/dcn32/dcn32_hpo_dp_link_encoder.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => hpo}/dcn32/dcn32_hpo_dp_link_encoder.h (100%) create mode 100644 drivers/gpu/drm/amd/display/dc/mmhubbub/Makefile rename drivers/gpu/drm/amd/display/dc/{ => mmhubbub}/dcn32/dcn32_mmhubbub.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => mmhubbub}/dcn32/dcn32_mmhubbub.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => mmhubbub}/dcn35/dcn35_mmhubbub.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => mmhubbub}/dcn35/dcn35_mmhubbub.h (100%) create mode 100644 drivers/gpu/drm/amd/display/dc/mpc/Makefile rename drivers/gpu/drm/amd/display/dc/{ => mpc}/dcn32/dcn32_mpc.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => mpc}/dcn32/dcn32_mpc.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => mpc}/dcn401/dcn401_mpc.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => mpc}/dcn401/dcn401_mpc.h (100%) create mode 100644 drivers/gpu/drm/amd/display/dc/opp/Makefile rename drivers/gpu/drm/amd/display/dc/{ => opp}/dcn35/dcn35_opp.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => opp}/dcn35/dcn35_opp.h (100%) create mode 100644 drivers/gpu/drm/amd/display/dc/pg/Makefile rename drivers/gpu/drm/amd/display/dc/{ => pg}/dcn35/dcn35_pg_cntl.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => pg}/dcn35/dcn35_pg_cntl.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => resource}/dcn32/dcn32_resource_helpers.c (100%) -- 2.45.1