aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVladimir Stempen <vladimir.stempen@amd.com>2022-08-19 18:32:01 -0400
committerAlex Deucher <alexander.deucher@amd.com>2022-08-30 17:09:31 -0400
commit7b471c32e4cbfdd7a673b79321f6a26abecbf33b (patch)
tree59f20045da5275e34369fc6a08c64c9fea2d1842
parentdrm/amd/display: Fix check for stream and plane (diff)
downloadlinux-rng-7b471c32e4cbfdd7a673b79321f6a26abecbf33b.tar.xz
linux-rng-7b471c32e4cbfdd7a673b79321f6a26abecbf33b.zip
drm/amd/display: Fix black flash when switching from ODM2to1 to ODMBypass
[Why] On secondary display hotplug we switch primary stream from ODM2to1 to ODMBypass mode. Current logic will trigger disabling front end for this stream. [How] We need to check if prev_odm_pipe is equal to NULL in order to disable dangling planes in this scenario. Reviewed-by: Ariel Bernstein <Eric.Bernstein@amd.com> Acked-by: Brian Chang <Brian.Chang@amd.com> Signed-off-by: Vladimir Stempen <vladimir.stempen@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/display/dc/core/dc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c
index aeecca68dea7..fb22c3d70528 100644
--- a/drivers/gpu/drm/amd/display/dc/core/dc.c
+++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
@@ -1094,7 +1094,8 @@ static void disable_dangling_plane(struct dc *dc, struct dc_state *context)
dc->current_state->stream_count != context->stream_count)
should_disable = true;
- if (old_stream && !dc->current_state->res_ctx.pipe_ctx[i].top_pipe) {
+ if (old_stream && !dc->current_state->res_ctx.pipe_ctx[i].top_pipe &&
+ !dc->current_state->res_ctx.pipe_ctx[i].prev_odm_pipe) {
struct pipe_ctx *old_pipe, *new_pipe;
old_pipe = &dc->current_state->res_ctx.pipe_ctx[i];