[PATCH 00/59] DC Patches Aug 26, 2026
Alex Hung <[email protected]>
| Newsgroups | org.freedesktop.lists.amd-gfx |
|---|---|
| Message-ID | <[email protected]> |
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