[PATCH 00/45] DC Patches May 06 2024

Tom Chung chiahsuan.chung at amd.com
Wed May 1 07:16:06 UTC 2024


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

- Fix some problems reported by Coverity
- Fix idle optimization checks for multi-display and dual eDP
- Fix incorrect size calculation for loop
- Fix DSC-re-computing
- Add Replay capability and state in debugfs
- Refactor DCCG into component folder
- Refactor input mode programming for DIG FIFO
- Reset DSC clock in post unlock update
- Clean-up recout calculation for visual confirm
- Enable urgent latency adjustments for DCN35

Cc: Daniel Wheeler <daniel.wheeler at amd.com>


Agustin Gutierrez (2):
  drm/amd/display: Fix DSC-re-computing
  drm/amd/display: MST DSC check for older devices

Alex Hung (14):
  drm/amd/display: Skip accessing array for unknown eng_id
  drm/amd/display: Ensure array index tg_inst won't be -1
  drm/amd/display: Check gpio_id before used as array index
  drm/amd/display: Fix incorrect size calculation for loop
  drm/amd/display: Check index for aux_rd_interval before using
  drm/amd/display: Check num_valid_sets before accessing
    reader_wm_sets[]
  drm/amd/display: Skip updating link encoder for unknown eng_id
  drm/amd/display: Check msg_id before processing transcation
  drm/amd/display: Check link_index before accessing dc->links[]
  drm/amd/display: Limit clock assignments by size of clk tables
  drm/amd/display: Spinlock before reading event
  drm/amd/display: Limit array index according to architecture
  drm/amd/display: Avoid overflow dc_clk_table->entries by limit to
    MAX_NUM_DPM_LVL
  drm/amd/display: Skip plane when not found by stream id

Alvin Lee (1):
  Revert "drm/amd/display: Only program P-State force if pipe config
    changed"

Anthony Koo (1):
  drm/amd/display: [FW Promotion] Release 0.0.216.0

Aric Cyr (1):
  drm/amd/display: 3.2.284

Bhuvana Chandra Pinninti (1):
  drm/amd/display: Refactor HUBP into component folder.

Dillon Varone (2):
  drm/amd/display: Refactor input mode programming for DIG FIFO
  drm/amd/display: Reset input mode for DIG on encoder reset

Hersen Wu (13):
  drm/amd/display: Add NULL pointer and OVERRUN check within amdgpu_dm
    irq register
  drm/amd/display: Stop amdgpu_dm initialize when stream nums greater
    than 6
  drm/amd/display: Stop amdgpu_dm initialize when link nums greater than
    max_links
  drm/amd/display: Add missing NULL pointer check within
    dpcd_extend_address_range
  drm/amd/display: Add array index check for hdcp ddc access
  drm/amd/display: Release state memory if
    amdgpu_dm_create_color_properties fail
  drm/amd/display: Add otg_master NULL check within
    resource_log_pipe_topology_update
  drm/amd/display: Fix Coverity INTERGER_OVERFLOW within
    construct_integrated_info
  drm/amd/display: Fix Coverity INTEGER_OVERFLOW within
    dal_gpio_service_create
  drm/amd/display: Add NULL pointer check for kzalloc
  drm/amd/display: Fix wrong array size dummy_boolean of
    dml2_core_calcs_mode_support_locals
  drm/amd/display: Release clck_src memory if clk_src_construct fails
  drm/amd/display: Fix Coverity INTEGER_OVERFLOW within
    decide_fallback_link_setting_max_bw_policy

Leo Ma (1):
  drm/amd/display: Fix invalid Copyright notice

Nicholas Kazlauskas (1):
  drm/amd/display: Fix idle optimization checks for multi-display and
    dual eDP

Nicholas Susanto (1):
  drm/amd/display: Enable urgent latency adjustments for DCN35

Revalla Hari Krishna (1):
  drm/amd/display: Refactor DCCG into component folder

Samson Tam (1):
  drm/amd/display: Clean-up recout calculation for visual confirm

Sreeja Golui (1):
  drm/amd/display: Providing a mechanism to have a custom pwm frequency

Tom Chung (2):
  drm/amd/display: Add Replay capability and state in debugfs
  drm/amd/display: remove panel replay initialization for DCN316

Wenjing Liu (1):
  drm/amd/display: reset DSC clock in post unlock update

Xi Liu (1):
  drm/amd/display: add support for force ODM override

 drivers/gpu/drm/amd/display/Kconfig           |   2 +
 drivers/gpu/drm/amd/display/Makefile          |   2 +
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 208 +++++++++++++-----
 .../amd/display/amdgpu_dm/amdgpu_dm_debugfs.c |  74 +++++++
 .../display/amdgpu_dm/amdgpu_dm_mst_types.c   |  16 +-
 .../amd/display/amdgpu_dm/amdgpu_dm_replay.c  |  12 +-
 .../amd/display/amdgpu_dm/amdgpu_dm_replay.h  |   2 +-
 drivers/gpu/drm/amd/display/dc/Makefile       |   2 +-
 .../gpu/drm/amd/display/dc/bios/bios_parser.c |   4 +-
 .../drm/amd/display/dc/bios/bios_parser2.c    |   7 +-
 .../amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c |   3 +-
 .../dc/clk_mgr/dcn30/dcn30_smu11_driver_if.h  |   2 +-
 .../dc/clk_mgr/dcn32/dcn32_smu13_driver_if.h  |   2 +-
 .../dc/clk_mgr/dcn401/dcn401_clk_mgr.c        |   2 +-
 .../drm/amd/display/dc/core/dc_link_enc_cfg.c |   9 +-
 .../drm/amd/display/dc/core/dc_link_exports.c |   3 +
 .../gpu/drm/amd/display/dc/core/dc_resource.c |  28 ++-
 drivers/gpu/drm/amd/display/dc/dc.h           |   3 +-
 drivers/gpu/drm/amd/display/dc/dccg/Makefile  |  98 +++++++++
 .../display/dc/{ => dccg}/dcn20/dcn20_dccg.c  |   0
 .../display/dc/{ => dccg}/dcn20/dcn20_dccg.h  |   0
 .../dc/{ => dccg}/dcn201/dcn201_dccg.c        |   0
 .../dc/{ => dccg}/dcn201/dcn201_dccg.h        |   0
 .../display/dc/{ => dccg}/dcn21/dcn21_dccg.c  |   0
 .../display/dc/{ => dccg}/dcn21/dcn21_dccg.h  |   0
 .../display/dc/{ => dccg}/dcn30/dcn30_dccg.c  |   0
 .../display/dc/{ => dccg}/dcn30/dcn30_dccg.h  |   0
 .../dc/{ => dccg}/dcn301/dcn301_dccg.c        |   0
 .../dc/{ => dccg}/dcn301/dcn301_dccg.h        |   0
 .../dc/{ => dccg}/dcn302/dcn302_dccg.h        |   0
 .../dc/{ => dccg}/dcn303/dcn303_dccg.h        |   0
 .../display/dc/{ => dccg}/dcn31/dcn31_dccg.c  |   0
 .../display/dc/{ => dccg}/dcn31/dcn31_dccg.h  |   0
 .../dc/{ => dccg}/dcn314/dcn314_dccg.c        |   0
 .../dc/{ => dccg}/dcn314/dcn314_dccg.h        |   0
 .../display/dc/{ => dccg}/dcn32/dcn32_dccg.c  |   0
 .../display/dc/{ => dccg}/dcn32/dcn32_dccg.h  |   0
 .../display/dc/{ => dccg}/dcn35/dcn35_dccg.c  |   2 +-
 .../display/dc/{ => dccg}/dcn35/dcn35_dccg.h  |   0
 drivers/gpu/drm/amd/display/dc/dcn10/Makefile |   2 +-
 .../dc/dcn10/dcn10_hw_sequencer_debug.c       |   2 +-
 drivers/gpu/drm/amd/display/dc/dcn20/Makefile |   8 +-
 .../gpu/drm/amd/display/dc/dcn201/Makefile    |   8 +-
 drivers/gpu/drm/amd/display/dc/dcn21/Makefile |   6 +-
 drivers/gpu/drm/amd/display/dc/dcn30/Makefile |   4 +-
 .../gpu/drm/amd/display/dc/dcn301/Makefile    |   3 +-
 drivers/gpu/drm/amd/display/dc/dcn31/Makefile |   3 +-
 .../amd/display/dc/dcn31/dcn31_panel_cntl.c   |  14 ++
 .../amd/display/dc/dcn31/dcn31_panel_cntl.h   |   3 +
 .../gpu/drm/amd/display/dc/dcn314/Makefile    |   2 +-
 drivers/gpu/drm/amd/display/dc/dcn32/Makefile |   3 +-
 drivers/gpu/drm/amd/display/dc/dcn35/Makefile |   3 +-
 .../drm/amd/display/dc/dcn401/dcn401_dccg.c   |  31 +--
 .../dc/dcn401/dcn401_dio_stream_encoder.c     | 113 ++++------
 .../drm/amd/display/dc/dml/dcn35/dcn35_fpu.c  |   4 +-
 .../amd/display/dc/dml2/display_mode_core.c   |   2 +-
 .../dc/dml2/dml21/dml21_translation_helper.c  |  14 +-
 .../amd/display/dc/dml2/dml21/dml21_utils.c   |   5 +-
 .../src/dml2_core/dml2_core_shared_types.h    |   2 +-
 .../display/dc/dml2/dml2_dc_resource_mgmt.c   |   6 +-
 drivers/gpu/drm/amd/display/dc/dsc/Makefile   |   3 +-
 .../drm/amd/display/dc/dsc/dcn20/dcn20_dsc.c  |  18 +-
 .../drm/amd/display/dc/dsc/dcn20/dcn20_dsc.h  |   3 +-
 .../amd/display/dc/dsc/dcn401/dcn401_dsc.c    |  17 +-
 drivers/gpu/drm/amd/display/dc/dsc/dsc.h      |   1 +
 .../drm/amd/display/dc/gpio/gpio_service.c    |  17 +-
 .../gpu/drm/amd/display/dc/hdcp/hdcp_msg.c    |  17 +-
 drivers/gpu/drm/amd/display/dc/hubp/Makefile  |  92 ++++++++
 .../display/dc/{ => hubp}/dcn10/dcn10_hubp.c  |   0
 .../display/dc/{ => hubp}/dcn10/dcn10_hubp.h  |   0
 .../display/dc/{ => hubp}/dcn20/dcn20_hubp.c  |   0
 .../display/dc/{ => hubp}/dcn20/dcn20_hubp.h  |   0
 .../dc/{ => hubp}/dcn201/dcn201_hubp.c        |   0
 .../dc/{ => hubp}/dcn201/dcn201_hubp.h        |   0
 .../display/dc/{ => hubp}/dcn21/dcn21_hubp.c  |   0
 .../display/dc/{ => hubp}/dcn21/dcn21_hubp.h  |   0
 .../display/dc/{ => hubp}/dcn30/dcn30_hubp.c  |   0
 .../display/dc/{ => hubp}/dcn30/dcn30_hubp.h  |   0
 .../display/dc/{ => hubp}/dcn31/dcn31_hubp.c  |   0
 .../display/dc/{ => hubp}/dcn31/dcn31_hubp.h  |   0
 .../display/dc/{ => hubp}/dcn32/dcn32_hubp.c  |   0
 .../display/dc/{ => hubp}/dcn32/dcn32_hubp.h  |   0
 .../display/dc/{ => hubp}/dcn35/dcn35_hubp.c  |   0
 .../display/dc/{ => hubp}/dcn35/dcn35_hubp.h  |   0
 .../amd/display/dc/hwss/dcn20/dcn20_hwseq.c   |  46 +++-
 .../amd/display/dc/hwss/dcn314/dcn314_hwseq.c |  17 --
 .../amd/display/dc/hwss/dcn314/dcn314_hwseq.h |   2 -
 .../amd/display/dc/hwss/dcn314/dcn314_init.c  |   1 -
 .../amd/display/dc/hwss/dcn32/dcn32_hwseq.c   |  69 ++----
 .../amd/display/dc/hwss/dcn32/dcn32_hwseq.h   |   4 +-
 .../amd/display/dc/hwss/dcn32/dcn32_init.c    |   1 -
 .../amd/display/dc/hwss/dcn35/dcn35_hwseq.c   |  33 ++-
 .../amd/display/dc/hwss/dcn35/dcn35_init.c    |   1 -
 .../amd/display/dc/hwss/dcn351/dcn351_init.c  |   1 -
 .../amd/display/dc/hwss/dcn401/dcn401_hwseq.c |  99 ++++++++-
 .../amd/display/dc/hwss/dcn401/dcn401_hwseq.h |   3 +
 .../amd/display/dc/hwss/dcn401/dcn401_init.c  |   6 +-
 .../display/dc/hwss/hw_sequencer_private.h    |   1 -
 .../gpu/drm/amd/display/dc/inc/clock_source.h |   1 +
 drivers/gpu/drm/amd/display/dc/inc/hw/dccg.h  |   3 +-
 .../amd/display/dc/inc/hw/stream_encoder.h    |   1 +
 .../amd/display/dc/link/hwss/link_hwss_dio.c  |   5 +
 .../gpu/drm/amd/display/dc/link/link_dpms.c   |  10 +-
 .../drm/amd/display/dc/link/link_factory.c    |   2 +-
 .../dc/link/protocols/link_dp_capability.c    |   2 +-
 .../dc/link/protocols/link_dp_training.c      |   4 +-
 .../amd/display/dc/link/protocols/link_dpcd.c |   1 +
 .../amd/display/dc/optc/dcn401/dcn401_optc.c  |   1 +
 .../dc/resource/dce80/dce80_resource.c        |   1 +
 .../dc/resource/dcn20/dcn20_resource.c        |   9 +
 .../dc/resource/dcn31/dcn31_resource.c        |   1 +
 .../dc/resource/dcn314/dcn314_resource.c      |   4 +-
 .../dc/resource/dcn35/dcn35_resource.c        |   1 +
 .../dc/resource/dcn351/dcn351_resource.c      |   1 +
 .../dc/resource/dcn401/dcn401_resource.c      |  20 +-
 .../gpu/drm/amd/display/dmub/inc/dmub_cmd.h   | 139 ++++++++++++
 .../drm/amd/display/modules/hdcp/hdcp_ddc.c   |  28 ++-
 117 files changed, 1059 insertions(+), 346 deletions(-)
 create mode 100644 drivers/gpu/drm/amd/display/dc/dccg/Makefile
 rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn20/dcn20_dccg.c (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn20/dcn20_dccg.h (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn201/dcn201_dccg.c (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn201/dcn201_dccg.h (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn21/dcn21_dccg.c (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn21/dcn21_dccg.h (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn30/dcn30_dccg.c (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn30/dcn30_dccg.h (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn301/dcn301_dccg.c (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn301/dcn301_dccg.h (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn302/dcn302_dccg.h (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn303/dcn303_dccg.h (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn31/dcn31_dccg.c (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn31/dcn31_dccg.h (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn314/dcn314_dccg.c (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn314/dcn314_dccg.h (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn32/dcn32_dccg.c (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn32/dcn32_dccg.h (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn35/dcn35_dccg.c (99%)
 rename drivers/gpu/drm/amd/display/dc/{ => dccg}/dcn35/dcn35_dccg.h (100%)
 create mode 100644 drivers/gpu/drm/amd/display/dc/hubp/Makefile
 rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn10/dcn10_hubp.c (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn10/dcn10_hubp.h (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn20/dcn20_hubp.c (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn20/dcn20_hubp.h (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn201/dcn201_hubp.c (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn201/dcn201_hubp.h (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn21/dcn21_hubp.c (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn21/dcn21_hubp.h (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn30/dcn30_hubp.c (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn30/dcn30_hubp.h (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn31/dcn31_hubp.c (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn31/dcn31_hubp.h (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn32/dcn32_hubp.c (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn32/dcn32_hubp.h (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn35/dcn35_hubp.c (100%)
 rename drivers/gpu/drm/amd/display/dc/{ => hubp}/dcn35/dcn35_hubp.h (100%)

-- 
2.34.1



More information about the amd-gfx mailing list