This patchset introduces a new version of DML that will be used for some already available ASIC based on DCN3x and future devices. This new version of the DML is more reliable, provide a better programming model for hardware/software, and is more flexible for creating new tools for automation/validation (e.g., unit test). This first version is a transition step for new ASICs, meaning that we will keep improving this new component. Finally, it is important to highlight that a large part of the DML code is generated. This patchset starts with a code refactor in the DML to improve the code isolation and avoid compilation issues when using some 32-bit architecture such as ARM and PPC. Next, it is introduced the basic code for DML2. Finally, the end of this patchset enables DML2 for some specific ASICs followed by patches that improve DML when used with specific devices. Thanks Siqueira Charlene Liu (2): drm/amd/display: Add z8_marks in dml drm/amd/display: correct dml2 input and dlg_refclk Daniel Miess (1): drm/amd/display: Port replay vblank logic to DML2 Gabe Teeger (1): drm/amd/display: add check in validate_only in dml2 Qingqing Zhuo (2): drm/amd/display: Introduce DML2 drm/amd/display: Add DCN35 DML2 support Rodrigo Siqueira (4): drm/amd/display: Move dce_calcs from DML folder drm/amd/display: Move custom_float outside DML drm/amd/display: Move bw_fixed outside DML folder drm/amd/display: Move dml code under CONFIG_DRM_AMD_DC_FP guard Saaem Rizvi (1): drm/amd/display: Modify Pipe Selection for Policy for ODM Sung Joon Kim (3): drm/amd/display: Handle multiple streams sourcing same surface drm/amd/display: Use fixed DET Buffer Size drm/amd/display: Fix Chroma Surface height/width initialization Taimur Hassan (2): drm/amd/display: Split pipe for stereo timings drm/amd/display: Move stereo timing check to helper drivers/gpu/drm/amd/display/dc/Makefile | 6 +- .../gpu/drm/amd/display/dc/basics/Makefile | 9 +- .../dc/{dml/calcs => basics}/bw_fixed.c | 13 +- .../dc/{dml/calcs => basics}/calcs_logger.h | 0 .../dc/{dml/calcs => basics}/custom_float.c | 90 +- .../dc/{dml/calcs => basics}/dce_calcs.c | 0 drivers/gpu/drm/amd/display/dc/core/dc.c | 39 + .../gpu/drm/amd/display/dc/core/dc_resource.c | 20 + drivers/gpu/drm/amd/display/dc/dc.h | 5 + .../drm/amd/display/dc/dcn32/dcn32_resource.c | 61 +- .../amd/display/dc/dcn321/dcn321_resource.c | 41 + .../drm/amd/display/dc/dcn35/dcn35_resource.c | 24 +- drivers/gpu/drm/amd/display/dc/dml/Makefile | 2 - .../drm/amd/display/dc/dml/dcn32/dcn32_fpu.c | 80 + .../amd/display/dc/dml/dcn321/dcn321_fpu.c | 81 + drivers/gpu/drm/amd/display/dc/dml2/Makefile | 91 + .../gpu/drm/amd/display/dc/dml2/cmntypes.h | 92 + .../amd/display/dc/dml2/display_mode_core.c | 10296 ++++++++++++++++ .../amd/display/dc/dml2/display_mode_core.h | 201 + .../dc/dml2/display_mode_core_structs.h | 1970 +++ .../dc/dml2/display_mode_lib_defines.h | 75 + .../amd/display/dc/dml2/display_mode_util.c | 796 ++ .../amd/display/dc/dml2/display_mode_util.h | 74 + .../display/dc/dml2/dml2_dc_resource_mgmt.c | 861 ++ .../display/dc/dml2/dml2_dc_resource_mgmt.h | 48 + .../drm/amd/display/dc/dml2/dml2_dc_types.h | 40 + .../amd/display/dc/dml2/dml2_internal_types.h | 121 + .../amd/display/dc/dml2/dml2_mall_phantom.c | 913 ++ .../amd/display/dc/dml2/dml2_mall_phantom.h | 50 + .../gpu/drm/amd/display/dc/dml2/dml2_policy.c | 308 + .../gpu/drm/amd/display/dc/dml2/dml2_policy.h | 47 + .../display/dc/dml2/dml2_translation_helper.c | 1201 ++ .../display/dc/dml2/dml2_translation_helper.h | 39 + .../gpu/drm/amd/display/dc/dml2/dml2_utils.c | 480 + .../gpu/drm/amd/display/dc/dml2/dml2_utils.h | 144 + .../drm/amd/display/dc/dml2/dml2_wrapper.c | 745 ++ .../drm/amd/display/dc/dml2/dml2_wrapper.h | 212 + .../gpu/drm/amd/display/dc/dml2/dml_assert.h | 30 + .../drm/amd/display/dc/dml2/dml_depedencies.h | 31 + .../display/dc/dml2/dml_display_rq_dlg_calc.c | 585 + .../display/dc/dml2/dml_display_rq_dlg_calc.h | 63 + .../gpu/drm/amd/display/dc/dml2/dml_logging.h | 29 + .../gpu/drm/amd/display/dc/inc/core_types.h | 1 + 43 files changed, 19931 insertions(+), 83 deletions(-) rename drivers/gpu/drm/amd/display/dc/{dml/calcs => basics}/bw_fixed.c (94%) rename drivers/gpu/drm/amd/display/dc/{dml/calcs => basics}/calcs_logger.h (100%) rename drivers/gpu/drm/amd/display/dc/{dml/calcs => basics}/custom_float.c (66%) rename drivers/gpu/drm/amd/display/dc/{dml/calcs => basics}/dce_calcs.c (100%) create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/Makefile create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/cmntypes.h create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/display_mode_core.c create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/display_mode_core.h create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/display_mode_core_structs.h create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/display_mode_lib_defines.h create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/display_mode_util.c create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/display_mode_util.h create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/dml2_dc_resource_mgmt.c create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/dml2_dc_resource_mgmt.h create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/dml2_dc_types.h create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/dml2_internal_types.h create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/dml2_mall_phantom.c create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/dml2_mall_phantom.h create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/dml2_policy.c create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/dml2_policy.h create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/dml2_translation_helper.c create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/dml2_translation_helper.h create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/dml2_utils.c create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/dml2_utils.h create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/dml2_wrapper.c create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/dml2_wrapper.h create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/dml_assert.h create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/dml_depedencies.h create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/dml_display_rq_dlg_calc.c create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/dml_display_rq_dlg_calc.h create mode 100644 drivers/gpu/drm/amd/display/dc/dml2/dml_logging.h -- 2.40.1