summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorDmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>2019-04-23 16:02:45 -0400
committerAlex Deucher <alexander.deucher@amd.com>2019-06-22 09:34:11 -0500
commit02ce5a799aae6519a6f6183a6a9773e3564f7584 (patch)
treeb27f9cb48493aad5a0ebdca8494df7c0ccced790 /drivers
parent72c6473a6aff9112dc213558bbe55b673f56d161 (diff)
downloadlinux-stable-02ce5a799aae6519a6f6183a6a9773e3564f7584.tar.gz
linux-stable-02ce5a799aae6519a6f6183a6a9773e3564f7584.tar.bz2
linux-stable-02ce5a799aae6519a6f6183a6a9773e3564f7584.zip
drm/amd/display: fix odm mpo disable
It looks like mpo isn't properly disabled during odm, this change is meant to fix that. Signed-off-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com> Reviewed-by: Nikola Cornij <Nikola.Cornij@amd.com> Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
index 46e7f76a6553..1daf4029b566 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c
@@ -2153,6 +2153,11 @@ bool dcn20_validate_bandwidth(struct dc *dc, struct dc_state *context,
} else
need_split = context->bw_ctx.dml.vba.NoOfDPP[vlevel][context->bw_ctx.dml.vba.maxMpcComb][pipe_idx] == 2;
+ /* We do not support mpo + odm at the moment */
+ if (hsplit_pipe && hsplit_pipe->plane_state != pipe->plane_state
+ && context->bw_ctx.dml.vba.ODMCombineEnabled[pipe_idx])
+ goto validate_fail;
+
if (need_split3d || need_split || force_split) {
if (!hsplit_pipe || hsplit_pipe->plane_state != pipe->plane_state) {
/* pipe not split previously needs split */
@@ -2168,11 +2173,7 @@ bool dcn20_validate_bandwidth(struct dc *dc, struct dc_state *context,
goto validate_fail;
pipe_split_from[hsplit_pipe->pipe_idx] = pipe_idx;
}
- } else if (hsplit_pipe && hsplit_pipe->plane_state != pipe->plane_state) {
- /* We do not support mpo + odm at the moment */
- if (context->bw_ctx.dml.vba.ODMCombineEnabled[pipe_idx])
- goto validate_fail;
- } else if (hsplit_pipe) {
+ } else if (hsplit_pipe && hsplit_pipe->plane_state == pipe->plane_state) {
/* merge should already have been done */
ASSERT(0);
}