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, 1920x1200 165hz, 3840x2400 60hz
        * 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
        * Samsung ATNA60YV02-0 3840x2400 60Hz OLED eDP


The patchset consists of the amd-staging-drm-next branch (Head commit -> 
c9c3b6a85b346a8aba4b4009c2cd66a37e6bc0b9 -> drm/amdgpu/sdma: Fix executing 
duplicate commands after recovery on SDMA v4.4.2) with new patches added on top 
of it.

Tested on Ubuntu 26.04, on Gnome Wayland.

Tested-by: Dan Wheeler <[email protected]>

Thank you,

Dan Wheeler
Sr. Technologist | AMD
SW Display
------------------------------------------------------------------------------------------------------------------
1 Commerce Valley Dr E, Thornhill, ON L3T 7X6
amd.com


-----Original Message-----
From: Zhang, George <[email protected]>
Sent: Wednesday, September 16, 2026 1:51 PM
To: [email protected]
Cc: Wentland, Harry <[email protected]>; Li, Sun peng (Leo) 
<[email protected]>; Pillai, Aurabindo <[email protected]>; Li, Roman 
<[email protected]>; Lin, Wayne <[email protected]>; Chung, ChiaHsuan (Tom) 
<[email protected]>; Zuo, Jerry <[email protected]>; Wheeler, Daniel 
<[email protected]>; Wu, Ray <[email protected]>; LIPSKI, IVAN 
<[email protected]>; Hung, Alex <[email protected]>; Lin, Ping Lei 
<[email protected]>; Chen, Chen-Yu <[email protected]>; Zhang, George 
<[email protected]>
Subject: [PATCH 00/64] DC Patches for September 16, 2026

This DC patchset brings improvements in multiple areas. In summary, we have:
- Increased KUnit coverage
- Reverts a patch causing regression on DCN42
- Fixes for cursor
- Imporvements for ABM


Alex Hung (33):
  drm/amd/display: Select KUnit helpers
  drm/amd/display: Fold blending tests into two cases
  drm/amd/display: Fold universal overlay format test
  drm/amd/display: Fold plane modifier list tests
  drm/amd/display: Fold modifier append tests
  drm/amd/display: Fold GFX9 tiling info tests
  drm/amd/display: Fold GFX6-8 tiling and modifier tests
  drm/amd/display: Fold DCC validation tests
  drm/amd/display: Fold DCC block mode tests
  drm/amd/display: Fold plane scaling and cursor tests
  drm/amd/display: Fold plane state check tests
  drm/amd/display: Fix amdgpu_dm's kernel-doc warnings
  drm/amd/display: Test EDID helper paths
  drm/amd/display: Test AUX transfer paths
  drm/amd/display: Test MST topology start
  drm/amd/display: Test unassigned OTG CRTC lookup
  drm/amd/display: Test VRR pageflip completion
  drm/amd/display: Test HPD RX offload work branches
  drm/amd/display: Test HDMI HPD debounce re-detect
  drm/amd/display: Test HPD handler HDCP and detect
  drm/amd/display: Test HPD RX downstream handling
  drm/amd/display: Drop redundant amdgpu_dm_irq tests
  drm/amd/display: Fix KUnit connector warnings
  drm/amd/display: Fix KUnit CRTC warnings
  drm/amd/display: Fix KUnit cursor warning
  drm/amd/display: Fix KUnit VRR warnings
  drm/amd/display: Fix KUnit helper warnings
  drm/amd/display: Fix KUnit IRQ warnings
  drm/amd/display: Fix KUnit MST warnings
  drm/amd/display: Fix KUnit DM warnings
  drm/amd/display: Fix KUnit writeback warnings
  drm/amd/display: Fix KUnit checkpatch warnings
  drm/amd/display: Fix LSDMA divide by zero

Alvin Lee (3):
  drm/amd/display: Enable double buffering for DSCCLK updates
  drm/amd/display: Wait response should be based on fw_based_mclk_switch
  drm/amd/display: Re-enable P-State message to SMU

Austin Zheng (1):
  drm/amd/display: Add Back Unified CalculateFlipSchedule

Dillon Varone (1):
  drm/amd/display: Add more diagnostic logs for DMU

Fangzhi Zuo (1):
  drm/amd/display: Restore FreeSync VCP code check for HDMI/PCON sinks

Huang, Leon (1):
  drm/amd/display: Forward periodic ABM keep-alive scenario to DMU

Ivan Lipski (3):
  drm/amd/display: Expose 3 overlay planes on DCN6
  drm/amd/display: Remove DCN6 DCFCLK num assert
  drm/amd/display: Resync cursor cache after offload abort on DCN60

Matthew Stewart (1):
  drm/amd/display: Fix DCN42B plane alpha

Nicholas Kazlauskas (1):
  drm/amd/display: Fix missing gaps for link lock with inbox0

Piotr Maziarz (5):
  drm/amd/display: Refactor DPP_PROGRAM_UPSP to drop pipe_ctx
  drm/amd/display: Remove phantom SW state ops from block sequence
  drm/amd/display: fix cursor refactor fallout and sync UT headers
  drm/amd/display: clamp cursor hotspot at the register write
  drm/amd/display: Rename build_cursor_position to
    dcn10_build_cursor_pos_update_params

Rafal Ostrowski (2):
  drm/amd/display: Drop pipe_ctx from hwss block sequence operations
  drm/amd/display: refactor hwss SET_CURSOR_POSITION block sequence

Taimur Hassan (2):
  drm/amd/display: [FW Promotion] Release 0.1.76.0
  drm/amd/display: Promote DC to 3.2.399

Tony Cheng (9):
  drm/amd/display: add SPDX-License-Identifier
  drm/amd/display: Add inst field to struct hubbub
  drm/amd/display: Add inst field to struct clk_mgr
  drm/amd/display: Add inst field to struct abm
  drm/amd/display: Add inst field to struct dmub_psr
  drm/amd/display: Add inst field to struct dmub_replay
  drm/amd/display: Add inst field to struct pg_cntl
  drm/amd/display: Add inst field to encoder structs
  drm/amd/display: Add inst field to clock_source and dio

Tony Qi (1):
  drm/amd/display: Revert "request DMUB HW cursor offload"

 drivers/gpu/drm/amd/display/Kconfig           |    3 +-
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |   10 -
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h |    7 +-
 .../display/amdgpu_dm/amdgpu_dm_connector.c   |    6 +
 .../drm/amd/display/amdgpu_dm/amdgpu_dm_irq.h |    9 +
 .../display/amdgpu_dm/amdgpu_dm_mst_types.h   |    2 +-
 .../amd/display/amdgpu_dm/amdgpu_dm_plane.c   |    1 +
 .../amd/display/amdgpu_dm/tests/.kunitconfig  |    1 -
 .../tests/amdgpu_dm_connector_test.c          |   64 +-
 .../amdgpu_dm/tests/amdgpu_dm_crtc_test.c     |   50 +-
 .../amdgpu_dm/tests/amdgpu_dm_cursor_test.c   |    4 +
 .../amdgpu_dm/tests/amdgpu_dm_freesync_test.c |   22 +
 .../amdgpu_dm/tests/amdgpu_dm_helpers_test.c  |  250 ++
 .../amdgpu_dm/tests/amdgpu_dm_irq_test.c      | 1066 +++++----
 .../tests/amdgpu_dm_mst_types_test.c          |    9 +
 .../amdgpu_dm/tests/amdgpu_dm_plane_test.c    | 2036 +++++------------
 .../amdgpu_dm/tests/amdgpu_dm_services_test.c |    2 +-
 .../display/amdgpu_dm/tests/amdgpu_dm_test.c  |   43 +-
 .../amdgpu_dm/tests/amdgpu_dm_wb_test.c       |    4 +
 .../dc/clk_mgr/dcn401/dcn401_clk_mgr.c        |    1 +
 .../display/dc/clk_mgr/dcn42/dcn42_clk_mgr.c  |    7 +-
 .../dc/clk_mgr/dcn42b/dcn42b_clk_mgr.c        |    3 +-
 .../drm/amd/display/dc/clk_mgr/dcn60/dalsmc.h |    3 +-
 .../display/dc/clk_mgr/dcn60/dcn60_clk_mgr.c  |    4 +-
 .../dc/clk_mgr/dcn60/dcn60_clk_mgr_smu_msg.c  |   36 +-
 drivers/gpu/drm/amd/display/dc/core/dc.c      |    4 +-
 .../drm/amd/display/dc/core/dc_hw_sequencer.c |  301 +--
 .../gpu/drm/amd/display/dc/core/dc_resource.c |    6 +-
 .../gpu/drm/amd/display/dc/core/dc_stream.c   |   23 +-
 drivers/gpu/drm/amd/display/dc/dc.h           |    2 +-
 drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c  |  134 +-
 drivers/gpu/drm/amd/display/dc/dc_hw_types.h  |    3 +
 drivers/gpu/drm/amd/display/dc/dc_types.h     |    2 +
 .../amd/display/dc/dccg/dcn20/dcn20_dccg.h    |    4 +
 .../amd/display/dc/dccg/dcn60/dcn60_dccg.c    |    4 +
 .../amd/display/dc/dccg/dcn60/dcn60_dccg.h    |    4 +
 drivers/gpu/drm/amd/display/dc/dce/dce_abm.c  |    2 +
 .../drm/amd/display/dc/dce/dce_clock_source.c |    5 +-
 drivers/gpu/drm/amd/display/dc/dce/dmub_abm.c |    1 +
 .../drm/amd/display/dc/dce/dmub_hw_lock_mgr.c |   10 +-
 drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c |    1 +
 drivers/gpu/drm/amd/display/dc/dce/dmub_psr.h |    1 +
 .../gpu/drm/amd/display/dc/dce/dmub_replay.c  |    3 +-
 .../gpu/drm/amd/display/dc/dce/dmub_replay.h  |    1 +
 .../amd/display/dc/dcn301/dcn301_panel_cntl.c |    1 +
 .../amd/display/dc/dcn31/dcn31_panel_cntl.c   |    1 +
 .../drm/amd/display/dc/dio/dcn10/dcn10_dio.c  |    1 +
 .../display/dc/dio/dcn10/dcn10_link_encoder.c |    2 +
 .../dc/dio/dcn10/dcn10_stream_encoder.c       |    2 +
 .../display/dc/dio/dcn20/dcn20_link_encoder.c |    2 +
 .../dc/dio/dcn20/dcn20_stream_encoder.c       |    2 +
 .../dc/dio/dcn30/dcn30_dio_link_encoder.c     |    2 +
 .../dc/dio/dcn30/dcn30_dio_stream_encoder.c   |    2 +
 .../dc/dio/dcn301/dcn301_dio_link_encoder.c   |    2 +
 .../dc/dio/dcn31/dcn31_dio_link_encoder.c     |    2 +
 .../dc/dio/dcn314/dcn314_dio_stream_encoder.c |    2 +
 .../dc/dio/dcn32/dcn32_dio_link_encoder.c     |    2 +
 .../dc/dio/dcn32/dcn32_dio_stream_encoder.c   |    2 +
 .../dc/dio/dcn321/dcn321_dio_link_encoder.c   |    2 +
 .../dc/dio/dcn35/dcn35_dio_link_encoder.c     |    2 +
 .../dc/dio/dcn35/dcn35_dio_stream_encoder.c   |    2 +
 .../dc/dio/dcn401/dcn401_dio_link_encoder.c   |    2 +
 .../dc/dio/dcn401/dcn401_dio_stream_encoder.c |    1 +
 .../dc/dio/dcn42/dcn42_dio_link_encoder.c     |    2 +
 .../dc/dio/dcn42/dcn42_dio_stream_encoder.c   |    2 +
 .../dc/dio/dcn60/dcn60_dio_link_encoder.c     |    2 +
 .../dc/dio/dcn60/dcn60_dio_stream_encoder.c   |    2 +
 .../dc/dio/virtual/virtual_link_encoder.c     |    3 +
 .../dc/dio/virtual/virtual_stream_encoder.c   |    1 +
 .../dml21/inc/bounding_boxes/dcn4_soc_bb.h    |    2 +-
 .../src/dml2_core/dml2_core_dcn4_calcs.c      |  164 +-
 .../src/dml2_core/dml2_core_shared_types.h    |    3 +
 .../alternate_pstate_shared_lib.c             |   22 +-
 .../dml2_utm_soc_bb/dml2_utm_soc_bb_dcn6.c    |    2 -
 .../amd/display/dc/dpp/dcn401/dcn401_dpp.h    |    2 +
 .../amd/display/dc/dpp/dcn401/dcn401_dpp_cm.c |   19 +
 .../drm/amd/display/dc/dpp/dcn60/dcn60_dpp.c  |    1 +
 .../hpo/dcn30/dcn30_hpo_frl_stream_encoder.c  |    2 +
 .../dcn401/dcn401_hpo_frl_stream_encoder.c    |    2 +
 .../hpo/dcn42/dcn42_hpo_frl_stream_encoder.c  |    2 +
 .../hpo/dcn60/dcn60_hpo_frl_stream_encoder.c  |    2 +
 .../display/dc/hubbub/dcn10/dcn10_hubbub.c    |    2 +
 .../display/dc/hubbub/dcn20/dcn20_hubbub.c    |    2 +
 .../display/dc/hubbub/dcn201/dcn201_hubbub.c  |    2 +
 .../display/dc/hubbub/dcn21/dcn21_hubbub.c    |    2 +
 .../display/dc/hubbub/dcn30/dcn30_hubbub.c    |    2 +
 .../display/dc/hubbub/dcn301/dcn301_hubbub.c  |    2 +
 .../display/dc/hubbub/dcn31/dcn31_hubbub.c    |    1 +
 .../display/dc/hubbub/dcn32/dcn32_hubbub.c    |    2 +
 .../display/dc/hubbub/dcn35/dcn35_hubbub.c    |    2 +
 .../display/dc/hubbub/dcn401/dcn401_hubbub.c  |    2 +
 .../display/dc/hubbub/dcn42/dcn42_hubbub.c    |    2 +
 .../display/dc/hubbub/dcn60/dcn60_hubbub.c    |    2 +
 .../amd/display/dc/hubp/dcn31/dcn31_hubp.c    |    1 +
 .../amd/display/dc/hubp/dcn401/dcn401_hubp.c  |  105 +-
 .../amd/display/dc/hubp/dcn401/dcn401_hubp.h  |    2 +
 .../amd/display/dc/hubp/dcn60/dcn60_hubp.c    |    1 +
 .../amd/display/dc/hwss/dce110/dce110_hwseq.c |    2 +-
 .../amd/display/dc/hwss/dcn10/dcn10_hwseq.c   |   20 +-
 .../amd/display/dc/hwss/dcn10/dcn10_hwseq.h   |    7 +-
 .../amd/display/dc/hwss/dcn10/dcn10_init.c    |    1 +
 .../amd/display/dc/hwss/dcn20/dcn20_hwseq.c   |   14 +-
 .../amd/display/dc/hwss/dcn20/dcn20_hwseq.h   |    3 +-
 .../amd/display/dc/hwss/dcn20/dcn20_init.c    |    1 +
 .../amd/display/dc/hwss/dcn201/dcn201_init.c  |    1 +
 .../amd/display/dc/hwss/dcn21/dcn21_init.c    |    1 +
 .../amd/display/dc/hwss/dcn30/dcn30_init.c    |    1 +
 .../amd/display/dc/hwss/dcn301/dcn301_init.c  |    1 +
 .../amd/display/dc/hwss/dcn31/dcn31_init.c    |    1 +
 .../amd/display/dc/hwss/dcn314/dcn314_init.c  |    1 +
 .../amd/display/dc/hwss/dcn32/dcn32_init.c    |    1 +
 .../amd/display/dc/hwss/dcn35/dcn35_hwseq.c   |   11 +
 .../amd/display/dc/hwss/dcn35/dcn35_init.c    |    1 +
 .../amd/display/dc/hwss/dcn351/dcn351_init.c  |    1 +
 .../amd/display/dc/hwss/dcn401/dcn401_hwseq.c |   71 +-
 .../amd/display/dc/hwss/dcn401/dcn401_hwseq.h |    7 +-
 .../amd/display/dc/hwss/dcn401/dcn401_init.c  |    1 +
 .../amd/display/dc/hwss/dcn42/dcn42_init.c    |    1 +
 .../amd/display/dc/hwss/dcn50/dcn50_hwseq.c   |    6 +-
 .../amd/display/dc/hwss/dcn60/dcn60_init.c    |    1 +
 .../drm/amd/display/dc/hwss/hw_sequencer.h    |   75 +-
 .../display/dc/hwss/hw_sequencer_private.h    |    3 +
 .../gpu/drm/amd/display/dc/inc/clock_source.h |    2 +
 drivers/gpu/drm/amd/display/dc/inc/hw/abm.h   |    1 +
 .../gpu/drm/amd/display/dc/inc/hw/clk_mgr.h   |    1 +
 .../gpu/drm/amd/display/dc/inc/hw/dchubbub.h  |    1 +
 drivers/gpu/drm/amd/display/dc/inc/hw/dio.h   |    1 +
 drivers/gpu/drm/amd/display/dc/inc/hw/dpp.h   |    2 +
 drivers/gpu/drm/amd/display/dc/inc/hw/hubp.h  |    2 +
 .../drm/amd/display/dc/inc/hw/link_encoder.h  |    1 +
 .../gpu/drm/amd/display/dc/inc/hw/pg_cntl.h   |    1 +
 .../amd/display/dc/inc/hw/stream_encoder.h    |    2 +
 drivers/gpu/drm/amd/display/dc/inc/resource.h |    2 +-
 .../amd/display/dc/pg/dcn35/dcn35_pg_cntl.c   |    1 +
 .../amd/display/dc/pg/dcn42/dcn42_pg_cntl.c   |    1 +
 .../dc/resource/dcn60/dcn60_resource.c        |    6 +-
 drivers/gpu/drm/amd/display/dmub/dmub_srv.h   |   58 +-
 .../gpu/drm/amd/display/dmub/inc/dmub_cmd.h   |   53 +-
 .../gpu/drm/amd/display/dmub/src/dmub_dcn20.c |   84 +-
 .../gpu/drm/amd/display/dmub/src/dmub_dcn20.h |    2 +-
 .../gpu/drm/amd/display/dmub/src/dmub_dcn31.c |   94 +-
 .../gpu/drm/amd/display/dmub/src/dmub_dcn31.h |    2 +-
 .../gpu/drm/amd/display/dmub/src/dmub_dcn32.c |   94 +-
 .../gpu/drm/amd/display/dmub/src/dmub_dcn32.h |    2 +-
 .../gpu/drm/amd/display/dmub/src/dmub_dcn35.c |   94 +-
 .../gpu/drm/amd/display/dmub/src/dmub_dcn35.h |    2 +-
 .../drm/amd/display/dmub/src/dmub_dcn401.c    |   98 +-
 .../drm/amd/display/dmub/src/dmub_dcn401.h    |    2 +-
 .../gpu/drm/amd/display/dmub/src/dmub_dcn42.c |   98 +-
 .../gpu/drm/amd/display/dmub/src/dmub_dcn42.h |    2 +-
 .../gpu/drm/amd/display/dmub/src/dmub_dcn60.c |   98 +-
 .../gpu/drm/amd/display/dmub/src/dmub_dcn60.h |    2 +-
 .../gpu/drm/amd/display/dmub/src/dmub_srv.c   |   54 +-
 153 files changed, 2963 insertions(+), 2688 deletions(-)

--
2.55.0

Reply via email to