drm/amd/display: Minimize wait for pending updates
authorIlya Bakoulin <Ilya.Bakoulin@amd.com>
Wed, 9 Oct 2024 19:26:48 +0000 (15:26 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 4 Nov 2024 16:39:11 +0000 (11:39 -0500)
[Why/How]
Move the wait for pending updates past prepare_bandwidth if the previous
update was not a full update to reduce the average time it takes to
complete a full update.

Reviewed-by: Dillon Varone <dillon.varone@amd.com>
Reviewed-by: Alvin Lee <alvin.lee2@amd.com>
Signed-off-by: Ilya Bakoulin <Ilya.Bakoulin@amd.com>
Signed-off-by: Zaeem Mohamed <zaeem.mohamed@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.c

index 8a52fef..7872c6c 100644 (file)
@@ -3835,7 +3835,7 @@ static void commit_planes_for_stream(struct dc *dc,
        dc_exit_ips_for_hw_access(dc);
 
        dc_z10_restore(dc);
-       if (update_type == UPDATE_TYPE_FULL)
+       if (update_type == UPDATE_TYPE_FULL && dc->optimized_required)
                hwss_process_outstanding_hw_updates(dc, dc->current_state);
 
        for (i = 0; i < dc->res_pool->pipe_count; i++) {
@@ -3862,6 +3862,9 @@ static void commit_planes_for_stream(struct dc *dc,
                context_clock_trace(dc, context);
        }
 
+       if (update_type == UPDATE_TYPE_FULL)
+               hwss_wait_for_outstanding_hw_updates(dc, dc->current_state);
+
        top_pipe_to_program = resource_get_otg_master_for_stream(
                                &context->res_ctx,
                                stream);