[PATCH v2 00/12] Update DC commit sequence

Rodrigo Siqueira Rodrigo.Siqueira at amd.com
Tue Oct 18 12:28:14 UTC 2022


Year after year, DC adds new features and expands its support to
components already available for multiple users. As a result of this
constant growth, we start to see some issues associated with the current
commit state, which is a little bit simplistic for DC needs and lacks
robustness. It is time to expand the current commit state to represent
the DC organization better and make it more robust.

This patchset evolves the function dc_commit_state to a new function
named dc_commit_streams by adding a step-by-step change. Current,
amdgpu_dm tries to commit a validation state directly into update_planes
and commit_streams. However, we want to avoid committing the state
directly into DC; instead, we only want to pass streams/plane pointers
into DC and let it manage the commit state entirely. This behavior is
more future-proof because it keeps the state manipulation inside DC,
which can benefit some specific features that might want to play with
the context state.

This patchset is organized in the following manner:

1. It starts with some adjustments in a generic function to address some
edge cases and a function rework to enable the transition for the new
commit sequence.
2. It adds one commit that duplicates dc_commit_state into a new
function named dc_commit_streams and a code patch change in case of
ASICs based on DCN32x or superior.
3. It added a series of commit that expand the dc_commit_streams to
handing multiple scenarios.
4. Finally, the last part of this series adds patches required to make
SubVP work as expected on DC32x and above

Thanks
Siqueira

Aurabindo Pillai (1):
  drm/amd/display: Move dc_state copy in commit_tail after
    dc_commit_state

Rodrigo Siqueira (11):
  drm/amd/display: Check if link state is valid
  drm/amd/display: Rework context change check
  drm/amd/display: Enable new commit sequence only for DCN32x
  drm/amd/display: Copy DC context in the commit streams
  drm/amd/display: Include surface of unaffected streams
  drm/amd/display: Handle virtual hardware detect
  drm/amd/display: Add function for validate and update new stream
  drm/amd/display: Handle seamless boot stream
  drm/amd/display: Update OTG instance in the commit stream
  drm/amd/display: Avoid ABM when ODM combine is enabled for eDP
  drm/amd/display: Use update plane and stream routine for DCN32x

 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |  17 +-
 drivers/gpu/drm/amd/display/dc/core/dc.c      | 122 ++++++++-
 .../gpu/drm/amd/display/dc/core/dc_resource.c | 234 +++++++++++++++++-
 drivers/gpu/drm/amd/display/dc/dc.h           |  36 ++-
 drivers/gpu/drm/amd/display/dc/dc_stream.h    |   4 +
 5 files changed, 384 insertions(+), 29 deletions(-)

-- 
2.38.0



More information about the amd-gfx mailing list