[PATCH 00/50] DC Patches July 10th, 2024
Wheeler, Daniel
Daniel.Wheeler at amd.com
Fri Jul 12 17:56:23 UTC 2024
[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 - drm/amdgpu: add ras event state device attribute support) 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 at amd.com>
Thank you,
Dan Wheeler
Sr. Technologist | AMD
SW Display
------------------------------------------------------------------------------------------------------------------
1 Commerce Valley Dr E, Thornhill, ON L3T 7X6
amd.com
-----Original Message-----
From: Fangzhi Zuo <Jerry.Zuo at amd.com>
Sent: Wednesday, July 10, 2024 3:36 PM
To: amd-gfx at lists.freedesktop.org
Cc: Wentland, Harry <Harry.Wentland at amd.com>; Li, Sun peng (Leo) <Sunpeng.Li at amd.com>; Siqueira, Rodrigo <Rodrigo.Siqueira at amd.com>; Pillai, Aurabindo <Aurabindo.Pillai at amd.com>; Li, Roman <Roman.Li at amd.com>; Lin, Wayne <Wayne.Lin at amd.com>; Gutierrez, Agustin <Agustin.Gutierrez at amd.com>; Chung, ChiaHsuan (Tom) <ChiaHsuan.Chung at amd.com>; Zuo, Jerry <Jerry.Zuo at amd.com>; Zuo, Jerry <Jerry.Zuo at amd.com>; Wheeler, Daniel <Daniel.Wheeler at amd.com>
Subject: [PATCH 00/50] DC Patches July 10th, 2024
This DC patchset brings improvements in multiple areas.
* FW Release 0.0.225.0
* DML2 fixes
* Re-enable panel replay feature
* Allow display DCC for DCN401
* Refactor DWB, OPP, MPC, MMHUBBUB
* Fix dscclk Programming issue on DCN401
Cc: Daniel Wheeler <daniel.wheeler at amd.com>
Alex Hung (11):
drm/amd/display: Revert "Check HDCP returned status"
drm/amd/display: Initialize denominators' default to 1
drm/amd/display: Check null-initialized variables
drm/amd/display: Check phantom_stream before it is used
drm/amd/display: Pass non-null to
dcn20_validate_apply_pipe_split_flags
drm/amd/display: Check null pointers before using them
drm/amd/display: Check stream before comparing them
drm/amd/display: Check link_res->hpo_dp_link_enc before using it
drm/amd/display: Check null pointers before used
drm/amd/display: Check null pointers before multiple uses
drm/amd/display: Increase array size of dummy_boolean
Alvin Lee (5):
drm/amd/display: Disable HBR audio for DP2 for certain ASICs
drm/amd/display: Don't consider cursor for no plane case in DML1
drm/amd/display: When resync fifo ensure to use correct pipe ctx
drm/amd/display: Disable subvp based on HW cursor requirement
drm/amd/display: Calculate ODM width using odm slice rect, not recout
Aric Cyr (1):
drm/amd/display: 3.2.292
Aurabindo Pillai (3):
drm/amd/display: free bo used for dmub bounding box
drm/amd/display: Allow display DCC for DCN401
drm/amd/display: improve logic for addition of modifers
Chaitanya Dhere (1):
drm/amd/display: DML2.1 resynchronization
Chris Park (1):
drm/amd/display: Deallocate DML memory if allocation fails
Daniel Sa (1):
drm/amd/display: Set Cursor Matrix to bypass instead of Input Plane
Dillon Varone (3):
drm/amd/display: Add blanked streams override to DML2.1
drm/amd/display: Add P-State Keepout to dcn401 Global Sync
drm/amd/display: Export additional FAMS2 global configuration options
from DML
Duncan Ma (1):
drm/amd/display: Add visual confirm for Idle State
Fudongwang (1):
drm/amd/display: add dmcub support check
Gabe Teeger (1):
drm/amd/display: Fix DP-DVI dongle hotplug
Jingwen Zhu (1):
drm/amd/display: avoid disable otg when dig was disabled
Joshua Aberback (1):
drm/amd/display: Remove unnecessary DSC power gating for DCN401
Mounika Adhuri (1):
drm/amd/display: Refactoring MPC
Mudimela (1):
drm/amd/display: Refactoring DWB related files from dcn30 Files
Nevenko Stupar (1):
drm/amd/display: Issue with 3 or more mcaches per surface
Relja Vojvodic (1):
drm/amd/display: Implement bias and scale pre scl
Revalla Hari Krishna (2):
drm/amd/display: Refactoring OPP
drm/amd/display: Refactoring MMHUBBUB
Rodrigo Siqueira (1):
drm/amd/display: Remove unused dml2_core_ip_params struct
Roman Li (1):
drm/amd/display: Replace assert with error message in
dp_retrieve_lttpr_cap()
Ryan Seto (1):
drm/amd/display: Added logging for automated DPM testing
Samson Tam (2):
drm/amd/display: quality improvements for EASF and ISHARP
drm/amd/display: remove dc dependencies from SPL library
Sridevi Arvindekar (1):
drm/amd/display: Add option to allow transition when odm is forced
Sung Joon Kim (2):
drm/amd/display: Do 1-to-1 mapping between OPP and DSC in DML2
drm/amd/display: Check stream pointer is initialized before accessing
Tom Chung (3):
drm/amd/display: Disable replay if VRR capability is false
drm/amd/display: Fix VRR cannot enable
drm/amd/display: Re-enable panel replay feature
Wenjing Liu (2):
drm/amd/display: fix dscclk programming sequence on DCN401
drm/amd/display: apply vmin optimization even if it doesn't reach vmin
level
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 74 +-
.../amd/display/amdgpu_dm/amdgpu_dm_helpers.c | 12 +
.../amd/display/amdgpu_dm/amdgpu_dm_plane.c | 31 +-
.../drm/amd/display/dc/basics/fixpt31_32.c | 27 +
.../dc/clk_mgr/dce110/dce110_clk_mgr.c | 2 +-
.../display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c | 18 +-
.../dc/clk_mgr/dcn401/dcn401_clk_mgr.c | 250 ++-
drivers/gpu/drm/amd/display/dc/core/dc.c | 22 +-
.../drm/amd/display/dc/core/dc_hw_sequencer.c | 102 +-
.../gpu/drm/amd/display/dc/core/dc_resource.c | 6 +-
.../gpu/drm/amd/display/dc/core/dc_state.c | 14 +-
drivers/gpu/drm/amd/display/dc/dc.h | 6 +-
drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c | 34 +-
drivers/gpu/drm/amd/display/dc/dc_hw_types.h | 7 -
.../gpu/drm/amd/display/dc/dc_spl_translate.c | 48 +-
.../gpu/drm/amd/display/dc/dc_spl_translate.h | 1 +
drivers/gpu/drm/amd/display/dc/dc_stream.h | 9 +
.../amd/display/dc/dccg/dcn20/dcn20_dccg.h | 6 +-
.../amd/display/dc/dccg/dcn401/dcn401_dccg.c | 32 +-
.../amd/display/dc/dccg/dcn401/dcn401_dccg.h | 4 -
.../gpu/drm/amd/display/dc/dce/dce_audio.c | 6 +
.../gpu/drm/amd/display/dc/dce/dce_audio.h | 1 +
drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c | 1 +
.../gpu/drm/amd/display/dc/dce/dmub_replay.c | 2 +
.../dc/dce110/dce110_timing_generator.c | 1 +
.../dc/dce110/dce110_timing_generator.h | 1 +
.../dc/dce110/dce110_timing_generator_v.c | 1 +
.../dc/dce120/dce120_timing_generator.c | 1 +
.../display/dc/dce60/dce60_timing_generator.c | 3 +-
.../display/dc/dce80/dce80_timing_generator.c | 3 +-
drivers/gpu/drm/amd/display/dc/dcn10/Makefile | 2 -
drivers/gpu/drm/amd/display/dc/dcn20/Makefile | 3 +-
drivers/gpu/drm/amd/display/dc/dcn30/Makefile | 4 +-
.../amd/display/dc/dcn30/dcn30_cm_common.c | 2 +-
.../dc/dio/dcn35/dcn35_dio_stream_encoder.c | 9 +
drivers/gpu/drm/amd/display/dc/dm_helpers.h | 3 +
.../drm/amd/display/dc/dml/dcn20/dcn20_fpu.c | 2 +
.../dc/dml/dcn20/display_rq_dlg_calc_20.c | 2 +-
.../drm/amd/display/dc/dml/dcn32/dcn32_fpu.c | 7 +-
.../amd/display/dc/dml/display_mode_structs.h | 1 +
.../display/dc/dml/dml1_display_rq_dlg_calc.c | 2 +-
drivers/gpu/drm/amd/display/dc/dml2/Makefile | 3 -
.../dc/dml2/dml21/dml21_translation_helper.c | 45 +-
.../dc/dml2/dml21/dml21_translation_helper.h | 1 +
.../amd/display/dc/dml2/dml21/dml21_utils.c | 145 +-
.../dml21/inc/bounding_boxes/dcn4_soc_bb.h | 13 +-
.../amd/display/dc/dml2/dml21/inc/dml_top.h | 1 -
.../dml2/dml21/inc/dml_top_dchub_registers.h | 1 -
.../dml21/inc/dml_top_display_cfg_types.h | 2 +-
.../dc/dml2/dml21/inc/dml_top_policy_types.h | 1 -
.../dml21/inc/dml_top_soc_parameter_types.h | 6 +-
.../display/dc/dml2/dml21/inc/dml_top_types.h | 2 +
.../dml2/dml21/src/dml2_core/dml2_core_dcn4.c | 124 +-
.../dml2/dml21/src/dml2_core/dml2_core_dcn4.h | 1 -
.../src/dml2_core/dml2_core_dcn4_calcs.c | 189 +-
.../src/dml2_core/dml2_core_dcn4_calcs.h | 2 +-
.../dml21/src/dml2_core/dml2_core_factory.c | 1 -
.../dml21/src/dml2_core/dml2_core_factory.h | 1 -
.../dml21/src/dml2_core/dml2_core_shared.c | 44 +-
.../dml21/src/dml2_core/dml2_core_shared.h | 1 -
.../src/dml2_core/dml2_core_shared_types.h | 8 +-
.../dml2/dml21/src/dml2_dpmm/dml2_dpmm_dcn4.c | 3 +-
.../dml2/dml21/src/dml2_dpmm/dml2_dpmm_dcn4.h | 1 -
.../dml21/src/dml2_dpmm/dml2_dpmm_factory.c | 1 -
.../dml21/src/dml2_dpmm/dml2_dpmm_factory.h | 1 -
.../dml2/dml21/src/dml2_mcg/dml2_mcg_dcn4.c | 1 -
.../dml2/dml21/src/dml2_mcg/dml2_mcg_dcn4.h | 1 -
.../dml21/src/dml2_mcg/dml2_mcg_factory.c | 1 -
.../dml21/src/dml2_mcg/dml2_mcg_factory.h | 1 -
.../dml2/dml21/src/dml2_pmo/dml2_pmo_dcn3.c | 1 -
.../dml2/dml21/src/dml2_pmo/dml2_pmo_dcn3.h | 1 -
.../dml2/dml21/src/dml2_pmo/dml2_pmo_dcn4.c | 1250 ------------
.../dml2/dml21/src/dml2_pmo/dml2_pmo_dcn4.h | 25 -
.../dml21/src/dml2_pmo/dml2_pmo_dcn4_fams2.c | 553 +++---
.../dml21/src/dml2_pmo/dml2_pmo_dcn4_fams2.h | 1 -
.../dml21/src/dml2_pmo/dml2_pmo_factory.c | 6 +-
.../dml21/src/dml2_pmo/dml2_pmo_factory.h | 1 -
.../lib_float_math.c | 1 -
.../lib_float_math.h | 1 -
.../src/dml2_top/dml2_top_optimization.c | 1 -
.../src/dml2_top/dml2_top_optimization.h | 1 -
.../dc/dml2/dml21/src/dml2_top/dml_top.c | 17 +-
.../dml2/dml21/src/dml2_top/dml_top_mcache.c | 23 +-
.../dml2/dml21/src/dml2_top/dml_top_mcache.h | 1 -
.../dc/dml2/dml21/src/inc/dml2_debug.c | 1 -
.../dc/dml2/dml21/src/inc/dml2_debug.h | 1 -
.../src/inc/dml2_internal_shared_types.h | 27 +-
.../drm/amd/display/dc/dpp/dcn35/dcn35_dpp.c | 27 +-
.../drm/amd/display/dc/dpp/dcn35/dcn35_dpp.h | 3 +
.../amd/display/dc/dpp/dcn401/dcn401_dpp.c | 3 +-
.../amd/display/dc/dpp/dcn401/dcn401_dpp_cm.c | 14 +-
.../display/dc/dpp/dcn401/dcn401_dpp_dscl.c | 540 +++---
drivers/gpu/drm/amd/display/dc/dwb/Makefile | 9 +
.../dc/{ => dwb}/dcn30/dcn30_cm_common.h | 0
.../display/dc/{ => dwb}/dcn30/dcn30_dwb.c | 0
.../display/dc/{ => dwb}/dcn30/dcn30_dwb.h | 0
.../display/dc/{ => dwb}/dcn30/dcn30_dwb_cm.c | 0
.../drm/amd/display/dc/dwb/dcn35/dcn35_dwb.c | 1 -
.../amd/display/dc/hubp/dcn10/dcn10_hubp.c | 3 +-
.../amd/display/dc/hubp/dcn20/dcn20_hubp.c | 3 +-
.../amd/display/dc/hwss/dce110/dce110_hwseq.c | 13 +-
.../amd/display/dc/hwss/dcn10/dcn10_hwseq.c | 8 +-
.../amd/display/dc/hwss/dcn20/dcn20_hwseq.c | 20 +-
.../amd/display/dc/hwss/dcn31/dcn31_hwseq.c | 4 +-
.../amd/display/dc/hwss/dcn314/dcn314_hwseq.c | 13 +-
.../amd/display/dc/hwss/dcn314/dcn314_hwseq.h | 2 +-
.../amd/display/dc/hwss/dcn32/dcn32_hwseq.c | 41 +-
.../amd/display/dc/hwss/dcn32/dcn32_hwseq.h | 2 +-
.../amd/display/dc/hwss/dcn35/dcn35_hwseq.c | 15 +-
.../amd/display/dc/hwss/dcn401/dcn401_hwseq.c | 19 +-
.../amd/display/dc/hwss/dcn401/dcn401_init.c | 2 -
.../display/dc/hwss/hw_sequencer_private.h | 3 +-
.../gpu/drm/amd/display/dc/inc/core_types.h | 2 +-
drivers/gpu/drm/amd/display/dc/inc/hw/audio.h | 2 +
.../gpu/drm/amd/display/dc/inc/hw/clk_mgr.h | 1 +
.../amd/display/dc/inc/hw/clk_mgr_internal.h | 4 +-
drivers/gpu/drm/amd/display/dc/inc/hw/dccg.h | 5 +-
.../gpu/drm/amd/display/dc/inc/hw/hw_shared.h | 13 +-
drivers/gpu/drm/amd/display/dc/inc/hw/optc.h | 5 +-
.../amd/display/dc/inc/hw/stream_encoder.h | 1 +
.../amd/display/dc/inc/hw/timing_generator.h | 4 +-
.../display/dc/link/accessories/link_dp_cts.c | 5 +-
.../amd/display/dc/link/hwss/link_hwss_dio.c | 5 +-
.../display/dc/link/hwss/link_hwss_hpo_dp.c | 7 +
.../drm/amd/display/dc/link/link_detection.c | 5 +-
.../gpu/drm/amd/display/dc/link/link_dpms.c | 41 +-
.../dc/link/protocols/link_dp_capability.c | 8 +-
.../gpu/drm/amd/display/dc/mmhubbub/Makefile | 9 +
.../dc/{ => mmhubbub}/dcn20/dcn20_mmhubbub.c | 0
.../dc/{ => mmhubbub}/dcn20/dcn20_mmhubbub.h | 0
drivers/gpu/drm/amd/display/dc/mpc/Makefile | 27 +
.../display/dc/{ => mpc}/dcn10/dcn10_mpc.c | 0
.../display/dc/{ => mpc}/dcn10/dcn10_mpc.h | 0
.../display/dc/{ => mpc}/dcn20/dcn20_mpc.c | 0
.../display/dc/{ => mpc}/dcn20/dcn20_mpc.h | 0
.../display/dc/{ => mpc}/dcn30/dcn30_mpc.c | 2 +-
.../display/dc/{ => mpc}/dcn30/dcn30_mpc.h | 0
drivers/gpu/drm/amd/display/dc/opp/Makefile | 16 +
.../display/dc/{ => opp}/dcn10/dcn10_opp.c | 0
.../display/dc/{ => opp}/dcn10/dcn10_opp.h | 0
.../display/dc/{ => opp}/dcn20/dcn20_opp.c | 0
.../display/dc/{ => opp}/dcn20/dcn20_opp.h | 0
.../amd/display/dc/optc/dcn10/dcn10_optc.c | 9 +-
.../amd/display/dc/optc/dcn10/dcn10_optc.h | 7 +-
.../amd/display/dc/optc/dcn401/dcn401_optc.c | 36 +-
.../amd/display/dc/optc/dcn401/dcn401_optc.h | 6 +-
.../dc/resource/dce110/dce110_resource.c | 1 +
.../dc/resource/dce112/dce112_resource.c | 5 +-
.../dc/resource/dcn20/dcn20_resource.c | 3 +-
.../dc/resource/dcn21/dcn21_resource.c | 3 +-
.../dc/resource/dcn31/dcn31_resource.c | 1 +
.../dc/resource/dcn32/dcn32_resource.c | 7 +
.../resource/dcn32/dcn32_resource_helpers.c | 10 +-
.../dc/resource/dcn321/dcn321_resource.c | 1 +
.../dc/resource/dcn35/dcn35_resource.c | 1 +
.../dc/resource/dcn401/dcn401_resource.c | 7 +
.../dc/resource/dcn401/dcn401_resource.h | 3 +-
drivers/gpu/drm/amd/display/dc/spl/Makefile | 2 +-
drivers/gpu/drm/amd/display/dc/spl/dc_spl.c | 1306 ++++++++-----
.../drm/amd/display/dc/spl/dc_spl_filters.c | 15 +
.../drm/amd/display/dc/spl/dc_spl_filters.h | 15 +
.../display/dc/spl/dc_spl_isharp_filters.c | 426 +++-
.../display/dc/spl/dc_spl_isharp_filters.h | 33 +-
.../display/dc/spl/dc_spl_scl_easf_filters.c | 1726 +++++++++++++++++
.../display/dc/spl/dc_spl_scl_easf_filters.h | 38 +
.../amd/display/dc/spl/dc_spl_scl_filters.c | 91 +-
.../amd/display/dc/spl/dc_spl_scl_filters.h | 55 +-
.../gpu/drm/amd/display/dc/spl/dc_spl_types.h | 51 +-
.../gpu/drm/amd/display/dc/spl/spl_debug.h | 23 +
.../drm/amd/display/dc/spl/spl_fixpt31_32.c | 518 +++++
.../drm/amd/display/dc/spl/spl_fixpt31_32.h | 546 ++++++
.../gpu/drm/amd/display/dc/spl/spl_os_types.h | 77 +
.../gpu/drm/amd/display/dmub/inc/dmub_cmd.h | 4 +
.../gpu/drm/amd/display/include/fixed31_32.h | 6 +
.../display/modules/hdcp/hdcp1_execution.c | 18 +-
175 files changed, 6110 insertions(+), 3122 deletions(-) delete mode 100644 drivers/gpu/drm/amd/display/dc/dml2/dml21/src/dml2_pmo/dml2_pmo_dcn4.c
delete mode 100644 drivers/gpu/drm/amd/display/dc/dml2/dml21/src/dml2_pmo/dml2_pmo_dcn4.h
rename drivers/gpu/drm/amd/display/dc/{ => dwb}/dcn30/dcn30_cm_common.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => dwb}/dcn30/dcn30_dwb.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => dwb}/dcn30/dcn30_dwb.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => dwb}/dcn30/dcn30_dwb_cm.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => mmhubbub}/dcn20/dcn20_mmhubbub.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => mmhubbub}/dcn20/dcn20_mmhubbub.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => mpc}/dcn10/dcn10_mpc.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => mpc}/dcn10/dcn10_mpc.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => mpc}/dcn20/dcn20_mpc.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => mpc}/dcn20/dcn20_mpc.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => mpc}/dcn30/dcn30_mpc.c (99%) rename drivers/gpu/drm/amd/display/dc/{ => mpc}/dcn30/dcn30_mpc.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => opp}/dcn10/dcn10_opp.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => opp}/dcn10/dcn10_opp.h (100%) rename drivers/gpu/drm/amd/display/dc/{ => opp}/dcn20/dcn20_opp.c (100%) rename drivers/gpu/drm/amd/display/dc/{ => opp}/dcn20/dcn20_opp.h (100%) create mode 100644 drivers/gpu/drm/amd/display/dc/spl/dc_spl_filters.c
create mode 100644 drivers/gpu/drm/amd/display/dc/spl/dc_spl_filters.h
create mode 100644 drivers/gpu/drm/amd/display/dc/spl/dc_spl_scl_easf_filters.c
create mode 100644 drivers/gpu/drm/amd/display/dc/spl/dc_spl_scl_easf_filters.h
create mode 100644 drivers/gpu/drm/amd/display/dc/spl/spl_debug.h
create mode 100644 drivers/gpu/drm/amd/display/dc/spl/spl_fixpt31_32.c
create mode 100644 drivers/gpu/drm/amd/display/dc/spl/spl_fixpt31_32.h
create mode 100644 drivers/gpu/drm/amd/display/dc/spl/spl_os_types.h
--
2.34.1
More information about the amd-gfx
mailing list