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