[PATCH 00/43] Add support for DCN 3.2

Alex Deucher alexander.deucher at amd.com
Wed May 25 16:18:59 UTC 2022


These patches add support for DCN (Display Core Next) version
3.2.x.  Patch 4 adds new register headers and is too big for
the mailing list.

Alvin Lee (4):
  drm/amd/display: Add missing instance for clock source register
  drm/amd/display: Implement WM table transfer for DCN32/DCN321
  drm/amd/display: Remove W/A for ODM memory pins
  drm/amd/display: Implement DTBCLK ref switching on dcn32

Aurabindo Pillai (17):
  drm/amd/display: remove stale config guards
  drm/amd: Add atomfirmware.h definitions needed for DCN32/321
  drm/amd/display: Add DCN32/321 version identifiers
  drm/amd: add register headers for DCN32/321
  drm/amd/display: Add DMCUB source files and changes for DCN32/321
  drm/amd/display: add dcn32 IRQ changes
  drm/amd/display: add GPIO changes for DCN32/321
  drm/amd/display: DML changes for DCN32/321
  drm/amd/display: add CLKMGR changes for DCN32/321
  drm/amd/display: add DCN32/321 specific files for Display Core
  drm/amd/display: Add dependant changes for DCN32/321
  drm/amd/display: Add DM support for DCN32/DCN321
  drm/amd/display: add DCN32 to IP discovery table
  drm/amd: Add GFX11 modifiers support to AMDGPU
  drm/amd/display: add missing interrupt handlers for DCN32/DCN321
  drm/amd/display: disable idle optimizations
  drm/amd/display: update disp pattern generator routine for DCN30

Chaitanya Dhere (1):
  drm/amd/display: FCLK P-state support updates

Charlene Liu (1):
  drm/amd/display: use updated clock source init routine

Dillon Varone (9):
  drm/amd/display: Fix USBC link creation
  drm/amd/display: Add guard for FCLK pstate message to PMFW for DCN321
  drm/amd/display: Various DML fixes to enable higher timings
  drm/amd/display: Select correct DTO source
  drm/amd/display: Ensure that DMCUB fw in use is loaded by DC and not
    VBIOS
  drm/amd/display: Add additional guard for FCLK pstate message for
    DCN321
  drm/amd/display: set dram speed for all states
  drm/amd/display: Disable DTB Ref Clock Switching in dcn32
  drm/amd/display: change dsc image width cap for dcn32 and dcn321

Duncan Ma (1):
  drm/amd/display: Add ODM seamless boot support

Eric Bernstein (1):
  drm/amd/display: Use DTBCLK for valid pixel clock

Fangzhi Zuo (1):
  drm/amd/display: Halve DTB Clock Value for DCN32

Jingwen Zhu (1):
  drm/amd/display: set link fec status during init for DCN32

Jun Lei (2):
  drm/amd/display: add new pixel rate programming
  drm/amd/display: Introduce new update_clocks logic

Martin Leung (1):
  drm/amd/display: cleaning up smu_if to add future flexibility

Rodrigo Siqueira (1):
  drm/amd/display: Drop unnecessary guard from DC resource

Samson Tam (3):
  drm/amd/display: do not override CURSOR_REQ_MODE when SubVP is not
    enabled
  drm/amd/display: Match dprefclk with clk registers
  drm/amd/display: Updates for OTG and DCCG clocks

 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c |      2 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_display.c   |     40 +-
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |     97 +-
 drivers/gpu/drm/amd/display/dc/Makefile       |      2 +
 .../drm/amd/display/dc/bios/bios_parser2.c    |    950 +-
 .../dc/bios/bios_parser_types_internal2.h     |      1 +
 .../drm/amd/display/dc/bios/command_table.c   |      4 +-
 .../display/dc/bios/command_table_helper2.c   |      2 +
 .../gpu/drm/amd/display/dc/clk_mgr/Makefile   |     35 +
 .../gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c  |     17 +-
 .../display/dc/clk_mgr/dcn30/dcn30_clk_mgr.c  |     15 +-
 .../display/dc/clk_mgr/dcn30/dcn30_clk_mgr.h  |     60 +
 .../display/dc/clk_mgr/dcn31/dcn31_clk_mgr.c  |      8 +-
 .../display/dc/clk_mgr/dcn31/dcn31_clk_mgr.h  |      2 +
 .../dc/clk_mgr/dcn315/dcn315_clk_mgr.c        |      7 +-
 .../dc/clk_mgr/dcn316/dcn316_clk_mgr.c        |      3 +-
 .../drm/amd/display/dc/clk_mgr/dcn32/dalsmc.h |     65 +
 .../display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c  |    725 +
 .../display/dc/clk_mgr/dcn32/dcn32_clk_mgr.h  |     39 +
 .../dc/clk_mgr/dcn32/dcn32_clk_mgr_smu_msg.c  |    134 +
 .../dc/clk_mgr/dcn32/dcn32_clk_mgr_smu_msg.h  |     46 +
 .../dc/clk_mgr/dcn32/dcn32_smu13_driver_if.h  |     63 +
 .../dc/clk_mgr/dcn32/smu13_driver_if.h        |    108 +
 drivers/gpu/drm/amd/display/dc/core/dc.c      |     14 +-
 .../gpu/drm/amd/display/dc/core/dc_link_dp.c  |      3 +
 .../gpu/drm/amd/display/dc/core/dc_resource.c |     27 +-
 drivers/gpu/drm/amd/display/dc/dc.h           |     24 +
 .../gpu/drm/amd/display/dc/dc_bios_types.h    |      5 +
 drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c  |     31 +
 drivers/gpu/drm/amd/display/dc/dc_dmub_srv.h  |      2 +
 drivers/gpu/drm/amd/display/dc/dc_hw_types.h  |      1 +
 drivers/gpu/drm/amd/display/dc/dc_stream.h    |     21 +
 drivers/gpu/drm/amd/display/dc/dce/dce_abm.h  |     45 +
 .../drm/amd/display/dc/dce/dce_clock_source.c |     27 +
 .../drm/amd/display/dc/dce/dce_clock_source.h |     15 +
 .../display/dc/dce110/dce110_hw_sequencer.c   |      6 +
 .../drm/amd/display/dc/dcn10/dcn10_hubbub.h   |     33 +
 .../amd/display/dc/dcn10/dcn10_link_encoder.h |      6 +
 .../gpu/drm/amd/display/dc/dcn10/dcn10_optc.h |      5 +
 .../display/dc/dcn10/dcn10_stream_encoder.h   |     32 +-
 .../gpu/drm/amd/display/dc/dcn20/dcn20_dccg.h |     34 +-
 .../gpu/drm/amd/display/dc/dcn20/dcn20_hubp.h |     25 +-
 .../drm/amd/display/dc/dcn20/dcn20_hwseq.c    |     46 +-
 .../dc/dcn30/dcn30_dio_stream_encoder.c       |     16 +-
 .../dc/dcn30/dcn30_dio_stream_encoder.h       |     35 +
 .../gpu/drm/amd/display/dc/dcn30/dcn30_dpp.c  |      8 +-
 .../gpu/drm/amd/display/dc/dcn30/dcn30_dpp.h  |     16 +
 .../drm/amd/display/dc/dcn30/dcn30_hwseq.c    |     33 +-
 .../gpu/drm/amd/display/dc/dcn30/dcn30_mpc.c  |     14 +-
 .../gpu/drm/amd/display/dc/dcn30/dcn30_mpc.h  |    147 +
 .../gpu/drm/amd/display/dc/dcn30/dcn30_optc.h |      9 +
 .../gpu/drm/amd/display/dc/dcn31/dcn31_dccg.c |    106 +-
 .../gpu/drm/amd/display/dc/dcn31/dcn31_dccg.h |     16 +-
 .../gpu/drm/amd/display/dc/dcn31/dcn31_optc.c |      1 +
 .../gpu/drm/amd/display/dc/dcn31/dcn31_optc.h |      6 +-
 drivers/gpu/drm/amd/display/dc/dcn32/Makefile |     37 +
 .../gpu/drm/amd/display/dc/dcn32/dcn32_dccg.c |    303 +
 .../gpu/drm/amd/display/dc/dcn32/dcn32_dccg.h |    159 +
 .../display/dc/dcn32/dcn32_dio_link_encoder.c |    294 +
 .../display/dc/dcn32/dcn32_dio_link_encoder.h |     60 +
 .../dc/dcn32/dcn32_dio_stream_encoder.c       |    461 +
 .../dc/dcn32/dcn32_dio_stream_encoder.h       |    266 +
 .../gpu/drm/amd/display/dc/dcn32/dcn32_dpp.c  |    164 +
 .../gpu/drm/amd/display/dc/dcn32/dcn32_dpp.h  |     38 +
 .../dc/dcn32/dcn32_hpo_dp_link_encoder.c      |     90 +
 .../dc/dcn32/dcn32_hpo_dp_link_encoder.h      |     63 +
 .../drm/amd/display/dc/dcn32/dcn32_hubbub.c   |    964 +
 .../drm/amd/display/dc/dcn32/dcn32_hubbub.h   |    172 +
 .../gpu/drm/amd/display/dc/dcn32/dcn32_hubp.c |    148 +
 .../gpu/drm/amd/display/dc/dcn32/dcn32_hubp.h |     69 +
 .../drm/amd/display/dc/dcn32/dcn32_hwseq.c    |    958 +
 .../drm/amd/display/dc/dcn32/dcn32_hwseq.h    |     66 +
 .../gpu/drm/amd/display/dc/dcn32/dcn32_init.c |    156 +
 .../dcn32_init.h}                             |     20 +-
 .../drm/amd/display/dc/dcn32/dcn32_mmhubbub.c |    239 +
 .../drm/amd/display/dc/dcn32/dcn32_mmhubbub.h |    225 +
 .../gpu/drm/amd/display/dc/dcn32/dcn32_mpc.c  |    810 +
 .../gpu/drm/amd/display/dc/dcn32/dcn32_mpc.h  |    213 +
 .../gpu/drm/amd/display/dc/dcn32/dcn32_optc.c |    268 +
 .../gpu/drm/amd/display/dc/dcn32/dcn32_optc.h |    254 +
 .../drm/amd/display/dc/dcn32/dcn32_resource.c |   4002 +
 .../drm/amd/display/dc/dcn32/dcn32_resource.h |     88 +
 .../gpu/drm/amd/display/dc/dcn321/Makefile    |     34 +
 .../dc/dcn321/dcn321_dio_link_encoder.c       |    199 +
 .../dc/dcn321/dcn321_dio_link_encoder.h       |     42 +
 .../amd/display/dc/dcn321/dcn321_resource.c   |   2335 +
 .../dcn321_resource.h}                        |     46 +-
 drivers/gpu/drm/amd/display/dc/dml/Makefile   |      7 +
 .../drm/amd/display/dc/dml/dcn20/dcn20_fpu.c  |     36 +-
 .../dc/dml/dcn30/display_mode_vba_30.c        |      8 +-
 .../dc/dml/dcn31/display_mode_vba_31.c        |      2 +-
 .../dc/dml/dcn32/display_mode_vba_32.c        |   3835 +
 .../dc/dml/dcn32/display_mode_vba_32.h        |     57 +
 .../dc/dml/dcn32/display_mode_vba_util_32.c   |   6254 +
 .../dc/dml/dcn32/display_mode_vba_util_32.h   |   1175 +
 .../dc/dml/dcn32/display_rq_dlg_calc_32.c     |    616 +
 .../dc/dml/dcn32/display_rq_dlg_calc_32.h     |     70 +
 .../amd/display/dc/dml/display_mode_enums.h   |     88 +-
 .../drm/amd/display/dc/dml/display_mode_lib.c |     12 +
 .../drm/amd/display/dc/dml/display_mode_lib.h |     15 +
 .../amd/display/dc/dml/display_mode_structs.h |    132 +
 .../drm/amd/display/dc/dml/display_mode_vba.c |    171 +
 .../drm/amd/display/dc/dml/display_mode_vba.h |    242 +-
 .../gpu/drm/amd/display/dc/dml/dml_wrapper.c  |     73 +-
 drivers/gpu/drm/amd/display/dc/gpio/Makefile  |      8 +-
 .../display/dc/gpio/dcn32/hw_factory_dcn32.c  |    255 +
 .../hw_factory_dcn32.h}                       |     13 +-
 .../dc/gpio/dcn32/hw_translate_dcn32.c        |    349 +
 .../hw_translate_dcn32.h}                     |     11 +-
 .../gpu/drm/amd/display/dc/gpio/hw_factory.c  |     16 +-
 .../drm/amd/display/dc/gpio/hw_translate.c    |     13 +-
 .../gpu/drm/amd/display/dc/inc/core_types.h   |     10 +
 .../gpu/drm/amd/display/dc/inc/hw/clk_mgr.h   |      3 +
 .../amd/display/dc/inc/hw/clk_mgr_internal.h  |     45 +-
 drivers/gpu/drm/amd/display/dc/inc/hw/dccg.h  |     44 +-
 .../gpu/drm/amd/display/dc/inc/hw/dchubbub.h  |      3 +
 drivers/gpu/drm/amd/display/dc/inc/hw/hubp.h  |      7 +
 .../drm/amd/display/dc/inc/hw/link_encoder.h  |      2 +
 .../gpu/drm/amd/display/dc/inc/hw/mem_input.h |      2 +
 .../amd/display/dc/inc/hw/stream_encoder.h    |      7 +
 .../amd/display/dc/inc/hw/timing_generator.h  |      8 +
 .../gpu/drm/amd/display/dc/inc/hw_sequencer.h |      2 +
 .../amd/display/dc/inc/hw_sequencer_private.h |      8 +
 drivers/gpu/drm/amd/display/dc/inc/resource.h |      7 +
 drivers/gpu/drm/amd/display/dc/irq/Makefile   |     10 +-
 .../display/dc/irq/dcn32/irq_service_dcn32.c  |    432 +
 .../display/dc/irq/dcn32/irq_service_dcn32.h  |     35 +
 .../amd/display/dc/link/link_hwss_hpo_dp.c    |     19 +-
 drivers/gpu/drm/amd/display/dmub/dmub_srv.h   |      8 +
 .../gpu/drm/amd/display/dmub/inc/dmub_cmd.h   |     26 +-
 drivers/gpu/drm/amd/display/dmub/src/Makefile |      1 +
 .../gpu/drm/amd/display/dmub/src/dmub_dcn32.c |    493 +
 .../gpu/drm/amd/display/dmub/src/dmub_dcn32.h |    256 +
 .../gpu/drm/amd/display/dmub/src/dmub_srv.c   |     51 +-
 .../amd/display/include/bios_parser_types.h   |     11 +
 .../gpu/drm/amd/display/include/dal_asic_id.h |      8 +
 .../gpu/drm/amd/display/include/dal_types.h   |      2 +
 .../include/asic_reg/dcn/dcn_3_2_0_offset.h   |  14675 +
 .../include/asic_reg/dcn/dcn_3_2_0_sh_mask.h  | 222890 +++++++++++++++
 .../include/asic_reg/dcn/dcn_3_2_1_offset.h   |  14559 +
 .../include/asic_reg/dcn/dcn_3_2_1_sh_mask.h  |  56578 ++++
 drivers/gpu/drm/amd/include/atomfirmware.h    |    209 +-
 include/uapi/drm/drm_fourcc.h                 |      2 +
 143 files changed, 339836 insertions(+), 512 deletions(-)
 create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dalsmc.h
 create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c
 create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.h
 create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr_smu_msg.c
 create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr_smu_msg.h
 create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_smu13_driver_if.h
 create mode 100644 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/smu13_driver_if.h
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/Makefile
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dccg.c
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dccg.h
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dio_link_encoder.c
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dio_link_encoder.h
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dio_stream_encoder.c
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dio_stream_encoder.h
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dpp.c
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_dpp.h
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hpo_dp_link_encoder.c
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hpo_dp_link_encoder.h
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hubbub.c
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hubbub.h
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hubp.c
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hubp.h
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.h
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_init.c
 rename drivers/gpu/drm/amd/display/dc/{gpio/diagnostics/hw_translate_diag.c => dcn32/dcn32_init.h} (74%)
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_mmhubbub.c
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_mmhubbub.h
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_mpc.c
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_mpc.h
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_optc.c
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_optc.h
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource.c
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource.h
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn321/Makefile
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn321/dcn321_dio_link_encoder.c
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn321/dcn321_dio_link_encoder.h
 create mode 100644 drivers/gpu/drm/amd/display/dc/dcn321/dcn321_resource.c
 rename drivers/gpu/drm/amd/display/dc/{gpio/diagnostics/hw_factory_diag.c => dcn321/dcn321_resource.h} (53%)
 create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.c
 create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_32.h
 create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_util_32.c
 create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn32/display_mode_vba_util_32.h
 create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn32/display_rq_dlg_calc_32.c
 create mode 100644 drivers/gpu/drm/amd/display/dc/dml/dcn32/display_rq_dlg_calc_32.h
 create mode 100644 drivers/gpu/drm/amd/display/dc/gpio/dcn32/hw_factory_dcn32.c
 rename drivers/gpu/drm/amd/display/dc/gpio/{diagnostics/hw_factory_diag.h => dcn32/hw_factory_dcn32.h} (81%)
 create mode 100644 drivers/gpu/drm/amd/display/dc/gpio/dcn32/hw_translate_dcn32.c
 rename drivers/gpu/drm/amd/display/dc/gpio/{diagnostics/hw_translate_diag.h => dcn32/hw_translate_dcn32.h} (82%)
 create mode 100644 drivers/gpu/drm/amd/display/dc/irq/dcn32/irq_service_dcn32.c
 create mode 100644 drivers/gpu/drm/amd/display/dc/irq/dcn32/irq_service_dcn32.h
 create mode 100644 drivers/gpu/drm/amd/display/dmub/src/dmub_dcn32.c
 create mode 100644 drivers/gpu/drm/amd/display/dmub/src/dmub_dcn32.h
 create mode 100644 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_3_2_0_offset.h
 create mode 100644 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_3_2_0_sh_mask.h
 create mode 100644 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_3_2_1_offset.h
 create mode 100644 drivers/gpu/drm/amd/include/asic_reg/dcn/dcn_3_2_1_sh_mask.h

-- 
2.35.3



More information about the amd-gfx mailing list