drm/amd/display: reset stream slice count for new ODM policy
authorWenjing Liu <wenjing.liu@amd.com>
Mon, 28 Aug 2023 19:43:03 +0000 (15:43 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 26 Sep 2023 21:00:21 +0000 (17:00 -0400)
[why]
ODM combine could prevent us from supporting more planes
we will reset ODM slice count back to 1 when all planes have
been removed to maximize the amount of planes supported when
new planes are added.

[how]
reset ODM slice count when all planes are removed.

Reviewed-by: Aric Cyr <aric.cyr@amd.com>
Acked-by: Wayne Lin <wayne.lin@amd.com>
Signed-off-by: Wenjing Liu <wenjing.liu@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/core/dc_resource.c

index 5810cf7..4368924 100644 (file)
@@ -2874,6 +2874,15 @@ bool dc_remove_plane_from_context(
 
        stream_status->plane_states[stream_status->plane_count] = NULL;
 
+       if (stream_status->plane_count == 0 && dc->config.enable_windowed_mpo_odm)
+               /* ODM combine could prevent us from supporting more planes
+                * we will reset ODM slice count back to 1 when all planes have
+                * been removed to maximize the amount of planes supported when
+                * new planes are added.
+                */
+               resource_update_pipes_for_stream_with_slice_count(
+                               context, dc->current_state, dc->res_pool, stream, 1);
+
        return true;
 }