[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 - 135b1ad12685 drm/amd/display: Promote DAL to 3.2.262) 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: Siqueira, Rodrigo <Rodrigo.Siqueira@xxxxxxx> Sent: Friday, December 1, 2023 8:25 AM 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>; Wang, Chao-kai (Stylon) <Stylon.Wang@xxxxxxx>; Chiu, Solomon <Solomon.Chiu@xxxxxxx>; Gutierrez, Agustin <Agustin.Gutierrez@xxxxxxx>; Zuo, Jerry <Jerry.Zuo@xxxxxxx>; Mahfooz, Hamza <Hamza.Mahfooz@xxxxxxx> Subject: [PATCH 00/47] DC Patches December 1, 2023 This DC patchset brings improvements in multiple areas. In summary, we highlight: * Enable writeback. * Add multiple fixes for DML2 and DCN35. * Introduce small code style adjustments. Cc: Daniel Wheeler <daniel.wheeler@xxxxxxx> Thanks Siqueira Alex Hung (12): drm/amd/display: Avoid virtual stream encoder if not explicitly requested drm/amd/display: Initialize writeback connector drm/amd/display: Check writeback connectors in create_validate_stream_for_sink drm/amd/display: Hande writeback request from userspace drm/amd/display: Add writeback enable/disable in dc drm/amd/display: Fix writeback_info never got updated drm/amd/display: Validate hw_points_num before using it drm/amd/display: Fix writeback_info is not removed drm/amd/display: Add writeback enable field (wb_enabled) drm/amd/display: Setup for mmhubbub3_warmup_mcif with big buffer drm/amd/display: Add new set_fc_enable to struct dwbc_funcs drm/amd/display: Disable DWB frame capture to emulate oneshot Alvin Lee (2): drm/amd/display: Optimize fast validation cases drm/amd/display: Use channel_width = 2 for vram table 3.0 Aric Cyr (1): drm/amd/display: 3.2.263 Charlene Liu (4): drm/amd/display: initialize all the dpm level's stutter latency drm/amd/display: insert drv-pmfw log + rollback to new context drm/amd/display: revert removing otg toggle w/a back when no active display drm/amd/display: keep domain24 power on if eDP not exist Chris Park (1): drm/amd/display: Update BIOS FW info table revision Daniel Miess (1): drm/amd/display: Add missing dcn35 RCO registers Dennis Chan (1): drm/amd/display: Fix Replay Desync Error IRQ handler Dillon Varone (1): drm/amd/display: Add dml2 copy functions George Shen (1): drm/amd/display: Skip DPIA-specific DP LL automation flag for non-DPIA links Harry Wentland (7): drm/amd/display: Skip entire amdgpu_dm build if !CONFIG_DRM_AMD_DC drm/amd/display: Create one virtual connector in DC drm/amd/display: Skip writeback connector when we get amdgpu_dm_connector drm/amd/display: Return drm_connector from find_first_crtc_matching_connector drm/amd/display: Use drm_connector in create_stream_for_sink drm/amd/display: Create amdgpu_dm_wb_connector drm/amd/display: Create fake sink and stream for writeback connector Ilya Bakoulin (1): drm/amd/display: Fix MST PBN/X.Y value calculations Ivan Lipski (1): drm/amd/display: Add monitor patch for specific eDP Johnson Chen (1): drm/amd/display: Fix null pointer Josip Pavic (1): drm/amd/display: Increase scratch buffer size Krunoslav Kovac (1): drm/amd/display: Change dither policy for 10bpc to round Lewis Huang (1): drm/amd/display: Pass pwrseq inst for backlight and ABM Michael Strauss (1): drm/amd/display: Only enumerate top local sink as DP2 output Nicholas Kazlauskas (1): drm/amd/display: Pass debug watermarks through to DCN35 DML2 Nicholas Susanto (1): drm/amd/display: Fix disable_otg_wa logic Relja Vojvodic (2): drm/amd/display: Add ODM check during pipe split/merge validation drm/amd/display: Added delay to DPM log Rodrigo Siqueira (2): drm/amd/display: Adjust code style drm/amd/display: Update code comment to be more accurate Roman Li (1): drm/amd/display: Fix array-index-out-of-bounds in dml2 Wenjing Liu (1): drm/amd/display: add support for DTO genarated dscclk Yihan Zhu (1): drm/amd/display: add MPC MCM 1D LUT clock gating programming drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 4 + .../gpu/drm/amd/display/amdgpu_dm/Makefile | 14 +- .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 356 ++++++++++++++++-- .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 10 +- .../drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c | 3 + .../amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 6 + .../drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c | 22 +- .../display/amdgpu_dm/amdgpu_dm_mst_types.c | 4 +- .../drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c | 215 +++++++++++ .../drm/amd/display/amdgpu_dm/amdgpu_dm_wb.h | 36 ++ .../drm/amd/display/dc/bios/bios_parser2.c | 76 ++-- .../drm/amd/display/dc/bios/command_table2.c | 12 +- .../drm/amd/display/dc/bios/command_table2.h | 2 +- .../display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c | 26 +- .../display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c | 25 +- .../amd/display/dc/clk_mgr/dcn35/dcn35_smu.c | 43 ++- drivers/gpu/drm/amd/display/dc/core/dc.c | 18 +- .../gpu/drm/amd/display/dc/core/dc_resource.c | 4 +- .../gpu/drm/amd/display/dc/core/dc_stream.c | 80 +++- drivers/gpu/drm/amd/display/dc/dc.h | 10 +- .../gpu/drm/amd/display/dc/dc_bios_types.h | 2 +- drivers/gpu/drm/amd/display/dc/dc_stream.h | 4 + drivers/gpu/drm/amd/display/dc/dce/dmub_abm.c | 8 +- .../gpu/drm/amd/display/dc/dce/dmub_abm_lcd.c | 7 +- .../gpu/drm/amd/display/dc/dce/dmub_abm_lcd.h | 2 +- .../gpu/drm/amd/display/dc/dcn20/dcn20_dccg.h | 32 ++ .../gpu/drm/amd/display/dc/dcn30/dcn30_dwb.c | 23 ++ .../gpu/drm/amd/display/dc/dcn30/dcn30_dwb.h | 2 + .../drm/amd/display/dc/dcn30/dcn30_dwb_cm.c | 3 + .../amd/display/dc/dcn31/dcn31_panel_cntl.c | 5 +- .../gpu/drm/amd/display/dc/dcn32/dcn32_mpc.c | 3 +- .../display/dc/dcn32/dcn32_resource_helpers.c | 26 ++ .../gpu/drm/amd/display/dc/dcn35/dcn35_dccg.c | 62 ++- .../gpu/drm/amd/display/dc/dcn35/dcn35_dccg.h | 51 +++ .../dc/dml/dcn30/display_mode_vba_30.c | 29 +- .../drm/amd/display/dc/dml/dcn32/dcn32_fpu.c | 3 + .../drm/amd/display/dc/dml/dcn35/dcn35_fpu.c | 19 + .../amd/display/dc/dml2/display_mode_core.c | 6 +- .../display/dc/dml2/dml2_translation_helper.c | 4 +- .../gpu/drm/amd/display/dc/dml2/dml2_utils.c | 11 + .../drm/amd/display/dc/dml2/dml2_wrapper.c | 29 +- .../drm/amd/display/dc/dml2/dml2_wrapper.h | 4 + .../amd/display/dc/hwss/dce110/dce110_hwseq.c | 16 +- .../amd/display/dc/hwss/dcn21/dcn21_hwseq.c | 36 +- .../amd/display/dc/hwss/dcn30/dcn30_hwseq.c | 4 + .../amd/display/dc/hwss/dcn31/dcn31_hwseq.c | 3 +- .../amd/display/dc/hwss/dcn32/dcn32_hwseq.c | 25 ++ .../amd/display/dc/hwss/dcn35/dcn35_hwseq.c | 22 +- drivers/gpu/drm/amd/display/dc/inc/hw/abm.h | 3 +- drivers/gpu/drm/amd/display/dc/inc/hw/dccg.h | 4 + drivers/gpu/drm/amd/display/dc/inc/hw/dwb.h | 4 + .../drm/amd/display/dc/inc/hw/panel_cntl.h | 2 + .../gpu/drm/amd/display/dc/link/link_dpms.c | 40 +- .../drm/amd/display/dc/link/link_factory.c | 59 ++- .../dc/link/protocols/link_dp_irq_handler.c | 18 +- .../dc/link/protocols/link_dp_training_dpia.c | 4 +- .../dc/resource/dcn10/dcn10_resource.c | 5 +- .../dc/resource/dcn30/dcn30_resource.c | 2 + .../dc/resource/dcn32/dcn32_resource.h | 2 + .../dc/resource/dcn35/dcn35_resource.c | 2 +- .../gpu/drm/amd/display/dmub/inc/dmub_cmd.h | 14 +- .../gpu/drm/amd/display/dmub/src/dmub_srv.c | 2 +- 62 files changed, 1328 insertions(+), 240 deletions(-) create mode 100644 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c create mode 100644 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.h -- 2.42.0