]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
drm/amd/display: do not skip ODM minimal transition based on new state
authorWenjing Liu <wenjing.liu@amd.com>
Thu, 24 Aug 2023 18:21:11 +0000 (14:21 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 11 Sep 2023 21:18:36 +0000 (17:18 -0400)
[why]
During 8k video plane resizing we could transition from MPC combine mode
back to ODM combine 2:1 + 8k video plane. In this transition minimal
transition state is based on new state with ODM combine enabled.
We are skipping this and it causes corruption because we have to reassign
a current DPP pipe to a different MPC blending tree which is not supported
seamlessly.

Reviewed-by: Dillon Varone <dillon.varone@amd.com>
Acked-by: Stylon Wang <stylon.wang@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.c

index fcba9ae6e0f21d3e6d390bed49183b0c7994afde..a71ce673612e182b32fc82e2a86f7d82cd773801 100644 (file)
@@ -4048,10 +4048,10 @@ static bool commit_minimal_transition_state(struct dc *dc,
         * pipe, we must use the minimal transition.
         */
        for (i = 0; i < dc->res_pool->pipe_count; i++) {
-               struct pipe_ctx *pipe = &dc->current_state->res_ctx.pipe_ctx[i];
+               struct pipe_ctx *pipe = &transition_base_context->res_ctx.pipe_ctx[i];
 
-               if (pipe->stream && pipe->next_odm_pipe) {
-                       odm_in_use = true;
+               if (resource_is_pipe_type(pipe, OTG_MASTER)) {
+                       odm_in_use = resource_get_odm_slice_count(pipe) > 1;
                        break;
                }
        }