[Public] Hi all, This week this patchset was tested on 4 systems, two dGPU and two APU based, and tested across multiple display and connection types. APU * Single Display eDP -> 1080p 60hz, 2560x1600 120hz, 1920x1200 165hz * Single Display DP (SST DSC) -> 4k144hz, 4k240hz * Multi display -> eDP + DP/HDMI/USB-C -> 1080p 60hz eDP + 4k 144hz, 4k 240hz (Includes USB-C to DP/HDMI adapters) * Thunderbolt -> LG Ultrafine 5k * MST DSC -> Cable Matters 101075 (DP to 3x DP) with 3x 4k60hz displays, HP Hook G2 with 2x 4k60hz displays * USB 4 -> HP Hook G4, Lenovo Thunderbolt Dock, both with 2x 4k60hz DP and 1x 4k60hz HDMI displays * SST PCON -> Club3D CAC-1085 + 1x 4k 144hz, FRL3, at a max resolution supported by the dongle of 4k 120hz YUV420 12bpc. * MST PCON -> 1x 4k 144hz, FRL3, at a max resolution supported by the adapter of 4k 120hz RGB 8bpc. DGPU * Single Display DP (SST DSC) -> 4k144hz, 4k240hz * Multiple Display DP -> 4k240hz + 4k144hz * MST (Startech MST14DP123DP [DP to 3x DP] and 2x 4k 60hz displays) * MST DSC (with Cable Matters 101075 [DP to 3x DP] with 3x 4k60hz displays) The testing is a mix of automated and manual tests. Manual testing includes (but is not limited to) * Changing display configurations and settings * Video/Audio playback * Benchmark testing * Suspend/Resume testing * Feature testing (Freesync, HDCP, etc.) Automated testing includes (but is not limited to) * Script testing (scripts to automate some of the manual checks) * IGT testing The testing is mainly tested on the following displays, but occasionally there are tests with other displays * Samsung G8 Neo 4k240hz * Samsung QN55QN95B 4k 120hz * Acer XV322QKKV 4k144hz * HP U27 4k Wireless 4k60hz * LG 27UD58B 4k60hz * LG 32UN650WA 4k60hz * LG Ultrafine 5k 5k60hz * AU Optronics B140HAN01.1 1080p 60hz eDP * AU Optronics B160UAN01.J 1920x1200 165hz eDP * AU Optronics B160QAN02.L 2560x1600 120hz eDP The patchset consists of the amd-staging-drm-next branch (Head commit - 5bb7cf8ad45fe218929c0fd78ae8adef1616a5fa -> drm/amdkfd: only flush the validate MES contex) with new patches added on top of it. Tested on Ubuntu 24.04.1, 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: Tuesday, January 28, 2025 9:42 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>; Chung, ChiaHsuan (Tom) <ChiaHsuan.Chung@xxxxxxx>; Zuo, Jerry <Jerry.Zuo@xxxxxxx>; Mohamed, Zaeem <Zaeem.Mohamed@xxxxxxx>; Chiu, Solomon <Solomon.Chiu@xxxxxxx>; Wheeler, Daniel <Daniel.Wheeler@xxxxxxx>; Hung, Alex <Alex.Hung@xxxxxxx> Subject: [PATCH 00/10] DC Patches Jan 28, 2025 This DC patchset brings improvements in multiple areas. In summary, we highlight: * Fixes on DCN3.2 and DCN4 * Code factoring for SPL module * Various bug fixes Cc: Daniel Wheeler <daniel.wheeler@xxxxxxx> Ahmed, Muhammad (1): drm/amd/display: Enable odm 4:1 when debug key is set Alex Hung (1): drm/amd/display: Fix out-of-bound accesses Aric Cyr (1): drm/amd/display: Request HW cursor on DCN3.2 with SubVP Brandon Syu (1): Revert "drm/amd/display: Exit idle optimizations before attempt to access PHY" Dillon Varone (1): drm/amd/display: Fixes for mcache programming in DML21 Dmytro (1): drm/amd/display: Allow reuse of of DCN4x code Lo-an Chen (1): drm/amd/display: Fix seamless boot sequence Martin Tsai (1): drm/amd/display: Support multiple options during psr entry. Samson Tam (1): drm/amd/display: Move SPL to a new path Taimur Hassan (1): drm/amd/display: 3.2.319 drivers/gpu/drm/amd/display/dc/Makefile | 2 +- drivers/gpu/drm/amd/display/dc/core/dc.c | 2 +- drivers/gpu/drm/amd/display/dc/dc.h | 4 +- .../gpu/drm/amd/display/dc/dc_spl_translate.c | 1 - drivers/gpu/drm/amd/display/dc/dc_types.h | 7 ++++ .../amd/display/dc/dccg/dcn401/dcn401_dccg.c | 24 +++++------ .../amd/display/dc/dccg/dcn401/dcn401_dccg.h | 40 ++++++++++++++++++- drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c | 4 ++ .../dc/dio/dcn30/dcn30_dio_stream_encoder.c | 2 +- .../dc/dio/dcn30/dcn30_dio_stream_encoder.h | 6 ++- .../dc/dio/dcn401/dcn401_dio_stream_encoder.c | 12 +++--- .../dc/dio/dcn401/dcn401_dio_stream_encoder.h | 18 +++++++++ .../amd/display/dc/dml/dcn314/dcn314_fpu.c | 3 ++ .../drm/amd/display/dc/dml/dcn32/dcn32_fpu.c | 1 + .../dc/dml2/dml21/dml21_translation_helper.c | 4 +- .../amd/display/dc/dml2/dml21/dml21_utils.c | 1 - .../amd/display/dc/dml2/dml21/dml21_wrapper.c | 14 +++++++ .../display/dc/dml2/dml21/inc/dml_top_types.h | 1 + .../dml2/dml21/src/dml2_core/dml2_core_dcn4.c | 30 +++++++++++++- .../src/dml2_core/dml2_core_dcn4_calcs.c | 3 ++ .../dml21/src/dml2_pmo/dml2_pmo_dcn4_fams2.c | 21 ++++++++++ .../dml2/dml21/src/dml2_top/dml2_top_soc15.c | 8 ---- .../display/dc/dml2/dml2_translation_helper.c | 6 +-- .../drm/amd/display/dc/dml2/dml2_wrapper.c | 5 ++- .../drm/amd/display/dc/dpp/dcn20/dcn20_dpp.h | 1 - .../drm/amd/display/dc/dpp/dcn32/dcn32_dpp.h | 1 - .../amd/display/dc/dsc/dcn401/dcn401_dsc.c | 19 +++------ .../amd/display/dc/dsc/dcn401/dcn401_dsc.h | 7 ++++ .../dc/hpo/dcn32/dcn32_hpo_dp_link_encoder.c | 2 +- .../dc/hpo/dcn32/dcn32_hpo_dp_link_encoder.h | 1 + .../display/dc/hubbub/dcn30/dcn30_hubbub.c | 3 +- .../display/dc/hubbub/dcn31/dcn31_hubbub.c | 3 +- .../display/dc/hubbub/dcn32/dcn32_hubbub.c | 3 +- .../display/dc/hubbub/dcn35/dcn35_hubbub.c | 17 ++++---- .../display/dc/hubbub/dcn35/dcn35_hubbub.h | 16 ++++++++ .../amd/display/dc/hubp/dcn20/dcn20_hubp.h | 5 +-- .../amd/display/dc/hubp/dcn30/dcn30_hubp.c | 2 + .../amd/display/dc/hubp/dcn32/dcn32_hubp.c | 2 + .../amd/display/dc/hubp/dcn35/dcn35_hubp.c | 2 +- .../amd/display/dc/hubp/dcn35/dcn35_hubp.h | 1 + .../drm/amd/display/dc/hwss/dce/dce_hwseq.h | 8 ++++ .../amd/display/dc/hwss/dce110/dce110_hwseq.c | 5 --- .../amd/display/dc/hwss/dcn20/dcn20_hwseq.c | 3 +- .../amd/display/dc/hwss/dcn32/dcn32_hwseq.c | 3 +- .../amd/display/dc/hwss/dcn35/dcn35_hwseq.c | 3 +- .../gpu/drm/amd/display/dc/inc/core_types.h | 2 +- .../gpu/drm/amd/display/dc/inc/hw/transform.h | 2 +- drivers/gpu/drm/amd/display/dc/inc/resource.h | 1 - .../gpu/drm/amd/display/dc/mmhubbub/Makefile | 2 +- drivers/gpu/drm/amd/display/dc/mpc/Makefile | 2 +- .../amd/display/dc/mpc/dcn401/dcn401_mpc.c | 4 +- .../amd/display/dc/mpc/dcn401/dcn401_mpc.h | 5 ++- .../amd/display/dc/optc/dcn10/dcn10_optc.h | 14 +++++-- .../amd/display/dc/optc/dcn401/dcn401_optc.c | 22 +++++----- .../amd/display/dc/optc/dcn401/dcn401_optc.h | 19 +++++++++ .../dc/resource/dcn401/dcn401_resource.c | 4 +- .../drm/amd/display/dc/{spl => sspl}/Makefile | 2 +- .../drm/amd/display/dc/{spl => sspl}/dc_spl.c | 0 .../drm/amd/display/dc/{spl => sspl}/dc_spl.h | 0 .../display/dc/{spl => sspl}/dc_spl_filters.c | 0 .../display/dc/{spl => sspl}/dc_spl_filters.h | 0 .../dc/{spl => sspl}/dc_spl_isharp_filters.c | 0 .../dc/{spl => sspl}/dc_spl_isharp_filters.h | 0 .../{spl => sspl}/dc_spl_scl_easf_filters.c | 0 .../{spl => sspl}/dc_spl_scl_easf_filters.h | 0 .../dc/{spl => sspl}/dc_spl_scl_filters.c | 0 .../dc/{spl => sspl}/dc_spl_scl_filters.h | 0 .../display/dc/{spl => sspl}/dc_spl_types.h | 0 .../dc/{spl => sspl}/spl_custom_float.c | 0 .../dc/{spl => sspl}/spl_custom_float.h | 0 .../amd/display/dc/{spl => sspl}/spl_debug.h | 0 .../display/dc/{spl => sspl}/spl_fixpt31_32.c | 0 .../display/dc/{spl => sspl}/spl_fixpt31_32.h | 0 .../display/dc/{spl => sspl}/spl_os_types.h | 0 .../gpu/drm/amd/display/dmub/inc/dmub_cmd.h | 6 +++ 75 files changed, 304 insertions(+), 107 deletions(-) rename drivers/gpu/drm/amd/display/dc/{spl => sspl}/Makefile (96%) rename drivers/gpu/drm/amd/display/dc/{spl => sspl}/dc_spl.c (100%) rename drivers/gpu/drm/amd/display/dc/{spl => sspl}/dc_spl.h (100%) rename drivers/gpu/drm/amd/display/dc/{spl => sspl}/dc_spl_filters.c (100%) rename drivers/gpu/drm/amd/display/dc/{spl => sspl}/dc_spl_filters.h (100%) rename drivers/gpu/drm/amd/display/dc/{spl => sspl}/dc_spl_isharp_filters.c (100%) rename drivers/gpu/drm/amd/display/dc/{spl => sspl}/dc_spl_isharp_filters.h (100%) rename drivers/gpu/drm/amd/display/dc/{spl => sspl}/dc_spl_scl_easf_filters.c (100%) rename drivers/gpu/drm/amd/display/dc/{spl => sspl}/dc_spl_scl_easf_filters.h (100%) rename drivers/gpu/drm/amd/display/dc/{spl => sspl}/dc_spl_scl_filters.c (100%) rename drivers/gpu/drm/amd/display/dc/{spl => sspl}/dc_spl_scl_filters.h (100%) rename drivers/gpu/drm/amd/display/dc/{spl => sspl}/dc_spl_types.h (100%) rename drivers/gpu/drm/amd/display/dc/{spl => sspl}/spl_custom_float.c (100%) rename drivers/gpu/drm/amd/display/dc/{spl => sspl}/spl_custom_float.h (100%) rename drivers/gpu/drm/amd/display/dc/{spl => sspl}/spl_debug.h (100%) rename drivers/gpu/drm/amd/display/dc/{spl => sspl}/spl_fixpt31_32.c (100%) rename drivers/gpu/drm/amd/display/dc/{spl => sspl}/spl_fixpt31_32.h (100%) rename drivers/gpu/drm/amd/display/dc/{spl => sspl}/spl_os_types.h (100%) -- 2.43.0