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 - 
75a5e1b6b3661c3f946885d01eebeb6b031035ef drm/amdkfd: guard against NULL 
restore_mqd in CRIU queue restore) 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: Hung, Alex <[email protected]>
Sent: Wednesday, August 26, 2026 7:05 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]>
Subject: [PATCH 00/59] DC Patches Aug 26, 2026

This DC patchset brings improvements in multiple areas. In summary, we
have:

* Move the DML wrapper into its own component.
* Fix DCN5/6 DML2 compilation warnings.
* Fix DCN60 DPP PRE_GAM offset, HDMI link rate and DSC handling.
* Fix backlight control for luminance-capable OLED.
* Restore native cursor mode early return for disabled CRTCs.
* Fix NULL hubp deref and CalculateFlipSchedule ordering.
* Remove duplicated fixpt and custom float code.
* Drop pipe_ctx param from MPC_VISUAL_CONFIRM.
* Move cursor SDR white level calc out of the hwss executor.
* Set gpuvm min page size to 4K on DCN35/36.
* Update RBBMIF timeout control conditions.
* Guard DAL port idle optimizations by ASIC rev.
* Re-enable multi-dwb support and clean up per-DPM struct.
* Add max_downscale_src_width debugfs for IGT validation.
* Expand amdgpu_dm KUnit coverage.

Cc: Dan Wheeler <[email protected]>

Alex Hung (34):
  drm/amd/display: Test ISM idle commit
  drm/amd/display: Test ISM idle exit arms
  drm/amd/display: Test ISM delayed workers
  drm/amd/display: Test colorop error paths
  drm/amd/display: Model ASSERT as path terminator
  drm/amd/display: Test backlight caps validation
  drm/amd/display: Skip ACPI backlight caps test
  drm/amd/display: Test vblank counter and scanout position
  drm/amd/display: Test DM atomic private state helpers
  drm/amd/display: Test affected MST DSC CRTC selection
  drm/amd/display: Test cursor commit
  drm/amd/display: Test vblank event arming
  drm/amd/display: Test page flip interrupt state update
  drm/amd/display: Test CRTC memory domain change detection
  drm/amd/display: Test PSR dirty rectangle filling
  drm/amd/display: Test plane reset decision
  drm/amd/display: Test link and sink dump
  drm/amd/display: Test HDCP update
  drm/amd/display: Test global modeset lock acquisition
  drm/amd/display: Test timing sync trigger
  drm/amd/display: Test IP block teardown and link emulation
  drm/amd/display: Test mod_power stream updates on modeset
  drm/amd/display: Test atomic commit setup
  drm/amd/display: Test MMHUB config read
  drm/amd/display: Test power module init
  drm/amd/display: Test vline0 irq control
  drm/amd/display: Test DMCU firmware load
  drm/amd/display: Test SW init and fini
  drm/amd/display: Test DM late init
  drm/amd/display: Test mode and plane init
  drm/amd/display: Test DM early init
  drm/amd/display: Test DC plane info fill
  drm/amd/display: Test DC plane attributes
  drm/amd/display: Test MST VCPI slot calc

Alvin Lee (1):
  drm/amd/display: Fix DPP PRE_GAM register offset on DCN60

Austin Zheng (5):
  drm/amd/display: Preparations To Move DML Wrapper Out Of DML
  drm/amd/display: Clean up Per-DPM Struct
  drm/amd/display: Fix Order Of Operation In Calculate Flip Schedule
  drm/amd/display: Remove const Qualifier From Non-Pointer Fields
  drm/amd/display: Move DML Wrapper into its own Component

Dillon Varone (3):
  drm/amd/display: Guard DAL port idle optimizations by ASIC rev
  drm/amd/display: Re-enable multi-dwb support
  drm/amd/display: Change RBBMIF timeout control conditions

Hansen Dsouza (1):
  drm/amd/display: Add debug bit for force p2cpm

Ivan Lipski (1):
  drm/amd/display: Fix DCN5/6 DML2 compilation warnings

James Lin (1):
  drm/amd/display: Avoid NULL hubp deref for remaining mpcc_id
    assignment

Peichen Huang (1):
  drm/amd/display: Do not use panel_inst in pr

Relja Vojvodic (1):
  drm/amd/display: Update HDMI link rate and DSC handling for DCN60

Roman Li (3):
  drm/amd/display: Set gpuvm min page size to 4K on dcn35/36
  drm/amd/display: Fix backlight control for luminance-capable OLED
  drm/amd/display: Apply debug bit for force p2cpm

Samson Tam (3):
  drm/amd/display: Move custom float structures from opp.h to
    custom_float.h
  drm/amd/display: Remove fixpt and custom float duplicated code
  drm/amd/display: Remove internal references

Taimur Hassan (1):
  drm/amd/display: Promote DC to 3.2.396

Tom Chung (1):
  drm/amd/display: Restore the native cursor mode early return for
    disabled CRTCs

Tomasz Siemek (2):
  drm/amd/display: Move cursor SDR white level calculation out of hwss
    executor
  drm/amd/display: Remove pipe_ctx param from MPC_VISUAL_CONFIRM

Tony Qi (1):
  drm/amd/display: Add max_downscale_src_width debugfs for IGT
    validation

 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |  187 +-
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h |   77 +
 .../display/amdgpu_dm/amdgpu_dm_backlight.c   |   41 +-
 .../display/amdgpu_dm/amdgpu_dm_backlight.h   |    1 +
 .../amd/display/amdgpu_dm/amdgpu_dm_colorop.c |  110 +-
 .../amd/display/amdgpu_dm/amdgpu_dm_colorop.h |   28 +
 .../amd/display/amdgpu_dm/amdgpu_dm_crtc.c    |   40 +-
 .../amd/display/amdgpu_dm/amdgpu_dm_crtc.h    |    1 +
 .../amd/display/amdgpu_dm/amdgpu_dm_cursor.c  |   17 +-
 .../amd/display/amdgpu_dm/amdgpu_dm_debugfs.c |   20 +
 .../amd/display/amdgpu_dm/amdgpu_dm_helpers.c |    8 +
 .../tests/amdgpu_dm_backlight_test.c          |   53 +-
 .../amdgpu_dm/tests/amdgpu_dm_colorop_test.c  |  232 +-
 .../amdgpu_dm/tests/amdgpu_dm_crtc_test.c     |  101 +
 .../amdgpu_dm/tests/amdgpu_dm_ism_test.c      |  367 +-
 .../display/amdgpu_dm/tests/amdgpu_dm_test.c  | 3552 +++++++++++++++++
 drivers/gpu/drm/amd/display/dc/Makefile       |    1 +
 .../display/dc/clk_mgr/dcn60/dcn60_clk_mgr.c  |    3 +
 drivers/gpu/drm/amd/display/dc/core/dc.c      |    5 +-
 .../drm/amd/display/dc/core/dc_hw_sequencer.c |   75 +-
 .../drm/amd/display/dc/core/dc_link_exports.c |    3 +-
 .../gpu/drm/amd/display/dc/core/dc_resource.c |    2 +-
 .../gpu/drm/amd/display/dc/core/dc_state.c    |    4 +-
 drivers/gpu/drm/amd/display/dc/dc.h           |    5 +-
 drivers/gpu/drm/amd/display/dc/dc_types.h     |    3 +-
 .../drm/amd/display/dc/dml/dcn30/dcn30_fpu.c  |   18 +-
 .../drm/amd/display/dc/dml/dml1_frl_cap_chk.c |    8 +-
 .../gpu/drm/amd/display/dc/dml2_0/Makefile    |   13 +-
 .../display/dc/dml2_0/dml21/dml21_wrapper.h   |  106 -
 .../dml21/inc/dml_top_soc_parameter_types.h   |   32 +-
 .../dml2_core/dml2_core_dcn5_calcs_dchub.c    |    8 +-
 .../dml2_core_dcn5_funcs_mode_programming.c   |    4 +-
 .../dml2_core_dcn5_funcs_mode_support.c       |    5 -
 .../dml2_core/dml2_core_dcn6_calcs_dchub.c    |    4 +-
 .../dml2_core_dcn6_funcs_mode_support.c       |    4 -
 .../src/dml2_core/dml2_core_shared_types.h    |    4 +-
 .../dml2_pmo/dml2_pmo_dcn6_stage_optimizers.c |    2 +-
 .../drm/amd/display/dc/dml2_wrapper/Makefile  |   61 +
 .../dml21_wrapper}/dml21_translation_helper.c |   15 +-
 .../dml21_wrapper}/dml21_translation_helper.h |    7 +-
 .../dml21_wrapper}/dml21_utils.c              |   11 +-
 .../dml21_wrapper}/dml21_utils.h              |    7 +-
 .../dml21_wrapper}/dml21_wrapper.c            |    2 +-
 .../dml21_wrapper/dml21_wrapper.h             |  107 +
 .../dml21_wrapper}/dml21_wrapper_fpu.c        |   19 +-
 .../dml21_wrapper}/dml21_wrapper_fpu.h        |    7 +-
 .../dml2_dc_resource_mgmt.c                   |   60 +-
 .../dml2_dc_resource_mgmt.h                   |    0
 .../{dml2_0 => dml2_wrapper}/dml2_dc_types.h  |    0
 .../dml2_internal_types.h                     |    2 +-
 .../dml2_mall_phantom.c                       |   70 +-
 .../dml2_mall_phantom.h                       |    0
 .../dc/{dml2_0 => dml2_wrapper}/dml2_policy.c |    2 +-
 .../dc/{dml2_0 => dml2_wrapper}/dml2_policy.h |    0
 .../dml2_translation_helper.c                 |   21 +-
 .../dml2_translation_helper.h                 |    0
 .../dc/{dml2_0 => dml2_wrapper}/dml2_utils.c  |   28 +-
 .../dc/{dml2_0 => dml2_wrapper}/dml2_utils.h  |    0
 .../{dml2_0 => dml2_wrapper}/dml2_wrapper.c   |    6 +-
 .../{dml2_0 => dml2_wrapper}/dml2_wrapper.h   |    0
 .../dml2_wrapper_fpu.c                        |   45 +-
 .../dml2_wrapper_fpu.h                        |    0
 .../drm/amd/display/dc/dpp/dcn50/dcn50_dpp.h  |   11 +-
 .../drm/amd/display/dc/dpp/dcn60/dcn60_dpp.h  |    7 +-
 drivers/gpu/drm/amd/display/dc/dsc/dc_dsc.c   |    8 +
 .../drm/amd/display/dc/dsc/dcn60/dcn60_dsc.c  |    4 +-
 .../hpo/dcn60/dcn60_hpo_frl_stream_encoder.c  |  131 +-
 .../amd/display/dc/hubp/dcn21/dcn21_hubp.c    |    6 +-
 .../amd/display/dc/hubp/dcn21/dcn21_hubp.h    |    2 +-
 .../amd/display/dc/hubp/dcn30/dcn30_hubp.c    |    2 +-
 .../amd/display/dc/hwss/dcn10/dcn10_hwseq.c   |   26 +-
 .../amd/display/dc/hwss/dcn20/dcn20_hwseq.c   |    4 -
 .../amd/display/dc/hwss/dcn401/dcn401_hwseq.c |    3 +-
 .../amd/display/dc/hwss/dcn50/dcn50_hwseq.c   |    3 +-
 .../drm/amd/display/dc/hwss/hw_sequencer.h    |   11 +-
 .../gpu/drm/amd/display/dc/inc/custom_float.h |   21 +-
 drivers/gpu/drm/amd/display/dc/inc/hw/opp.h   |   14 +-
 .../gpu/drm/amd/display/dc/inc/link_service.h |    2 +-
 .../drm/amd/display/dc/link/link_detection.c  |    2 +
 .../drm/amd/display/dc/link/link_factory.c    |    2 +-
 .../dc/link/protocols/link_dp_panel_replay.c  |   36 +-
 .../dc/link/protocols/link_dp_panel_replay.h  |    2 +-
 .../link/protocols/link_edp_panel_control.c   |   47 +-
 drivers/gpu/drm/amd/display/dc/os_types.h     |   18 +
 .../dc/resource/dcn32/dcn32_resource.c        |    2 +-
 .../dc/resource/dcn35/dcn35_resource.c        |    2 +-
 .../dc/resource/dcn351/dcn351_resource.c      |    2 +-
 .../dc/resource/dcn36/dcn36_resource.c        |    2 +-
 .../dc/resource/dcn401/dcn401_resource.c      |    2 +-
 .../dc/resource/dcn42/dcn42_resource.c        |    2 +-
 .../dc/resource/dcn42b/dcn42b_resource.c      |    2 +-
 .../dc/resource/dcn60/dcn60_resource.c        |    4 +-
 drivers/gpu/drm/amd/display/dc/sspl/Makefile  |    5 +-
 drivers/gpu/drm/amd/display/dc/sspl/dc_spl.c  |  130 +-
 .../display/dc/sspl/dc_spl_isharp_filters.c   |   10 +-
 .../display/dc/sspl/dc_spl_scl_easf_filters.c |   88 +-
 .../amd/display/dc/sspl/dc_spl_scl_filters.c  |   24 +-
 .../drm/amd/display/dc/sspl/dc_spl_types.h    |   60 +-
 .../amd/display/dc/sspl/spl_custom_float.c    |  152 -
 .../amd/display/dc/sspl/spl_custom_float.h    |   29 -
 .../drm/amd/display/dc/sspl/spl_fixpt31_32.c  |  495 ---  
.../drm/amd/display/dc/sspl/spl_fixpt31_32.h  |  526 ---
 .../drm/amd/display/dc/sspl/spl_namespace.h   |   17 +
 .../drm/amd/display/dc/sspl/spl_os_types.h    |   43 +-
 104 files changed, 5459 insertions(+), 2114 deletions(-)  delete mode 100644 
drivers/gpu/drm/amd/display/dc/dml2_0/dml21/dml21_wrapper.h
 create mode 100644 drivers/gpu/drm/amd/display/dc/dml2_wrapper/Makefile
 rename drivers/gpu/drm/amd/display/dc/{dml2_0/dml21 => 
dml2_wrapper/dml21_wrapper}/dml21_translation_helper.c (99%)  rename 
drivers/gpu/drm/amd/display/dc/{dml2_0/dml21 => 
dml2_wrapper/dml21_wrapper}/dml21_translation_helper.h (94%)  rename 
drivers/gpu/drm/amd/display/dc/{dml2_0/dml21 => 
dml2_wrapper/dml21_wrapper}/dml21_utils.c (99%)  rename 
drivers/gpu/drm/amd/display/dc/{dml2_0/dml21 => 
dml2_wrapper/dml21_wrapper}/dml21_utils.h (96%)  rename 
drivers/gpu/drm/amd/display/dc/{dml2_0/dml21 => 
dml2_wrapper/dml21_wrapper}/dml21_wrapper.c (100%)  create mode 100644 
drivers/gpu/drm/amd/display/dc/dml2_wrapper/dml21_wrapper/dml21_wrapper.h
 rename drivers/gpu/drm/amd/display/dc/{dml2_0/dml21 => 
dml2_wrapper/dml21_wrapper}/dml21_wrapper_fpu.c (96%)  rename 
drivers/gpu/drm/amd/display/dc/{dml2_0/dml21 => 
dml2_wrapper/dml21_wrapper}/dml21_wrapper_fpu.h (95%)  rename 
drivers/gpu/drm/amd/display/dc/{dml2_0 => dml2_wrapper}/dml2_dc_resource_mgmt.c 
(96%)  rename drivers/gpu/drm/amd/display/dc/{dml2_0 => 
dml2_wrapper}/dml2_dc_resource_mgmt.h (100%)  rename 
drivers/gpu/drm/amd/display/dc/{dml2_0 => dml2_wrapper}/dml2_dc_types.h (100%)  
rename drivers/gpu/drm/amd/display/dc/{dml2_0 => 
dml2_wrapper}/dml2_internal_types.h (99%)  rename 
drivers/gpu/drm/amd/display/dc/{dml2_0 => dml2_wrapper}/dml2_mall_phantom.c 
(97%)  rename drivers/gpu/drm/amd/display/dc/{dml2_0 => 
dml2_wrapper}/dml2_mall_phantom.h (100%)  rename 
drivers/gpu/drm/amd/display/dc/{dml2_0 => dml2_wrapper}/dml2_policy.c (99%)  
rename drivers/gpu/drm/amd/display/dc/{dml2_0 => dml2_wrapper}/dml2_policy.h 
(100%)  rename drivers/gpu/drm/amd/display/dc/{dml2_0 => 
dml2_wrapper}/dml2_translation_helper.c (99%)  rename 
drivers/gpu/drm/amd/display/dc/{dml2_0 => 
dml2_wrapper}/dml2_translation_helper.h (100%)  rename 
drivers/gpu/drm/amd/display/dc/{dml2_0 => dml2_wrapper}/dml2_utils.c (98%)  
rename drivers/gpu/drm/amd/display/dc/{dml2_0 => dml2_wrapper}/dml2_utils.h 
(100%)  rename drivers/gpu/drm/amd/display/dc/{dml2_0 => 
dml2_wrapper}/dml2_wrapper.c (97%)  rename 
drivers/gpu/drm/amd/display/dc/{dml2_0 => dml2_wrapper}/dml2_wrapper.h (100%)  
rename drivers/gpu/drm/amd/display/dc/{dml2_0 => 
dml2_wrapper}/dml2_wrapper_fpu.c (93%)  rename 
drivers/gpu/drm/amd/display/dc/{dml2_0 => dml2_wrapper}/dml2_wrapper_fpu.h 
(100%)  delete mode 100644 
drivers/gpu/drm/amd/display/dc/sspl/spl_custom_float.c
 delete mode 100644 drivers/gpu/drm/amd/display/dc/sspl/spl_custom_float.h
 delete mode 100644 drivers/gpu/drm/amd/display/dc/sspl/spl_fixpt31_32.c
 delete mode 100644 drivers/gpu/drm/amd/display/dc/sspl/spl_fixpt31_32.h
 create mode 100644 drivers/gpu/drm/amd/display/dc/sspl/spl_namespace.h

--
2.43.0

Reply via email to