summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGabe Teeger <gabe.teeger@amd.com>2023-09-28 17:00:35 -0400
committerAlex Deucher <alexander.deucher@amd.com>2023-10-09 16:51:28 -0400
commit647cf5151986ce981d55bba198612667eacf8a8b (patch)
treea9f1ba476325bdb2b8b552a27ab2a3fb19ffe85d
parentcbe069f5e60f6c64944d65a2676fec23769bd189 (diff)
downloadlinux-stable-647cf5151986ce981d55bba198612667eacf8a8b.tar.gz
linux-stable-647cf5151986ce981d55bba198612667eacf8a8b.tar.bz2
linux-stable-647cf5151986ce981d55bba198612667eacf8a8b.zip
drm/amd/display: add check in validate_only in dml2
[what] does_configuration_meet_sw_policies check was not done in the validate_only portion of dml2, so some unsupported modes were passing bw validation, only to fail the same check later in validate_and_build. now we add the check to validate_only. Also add line in dcn35_resource to ensure that value set for enable_windowed_mpo_odm gets passed to dml. [why] Immediate black screen during video playback at 4k144hz. The debugger showed that we were failing validation in dml on every updateplanes(). Reviewed-by: Wenjing Liu <wenjing.liu@amd.com> Acked-by: Qingqing Zhuo <qingqing.zhuo@amd.com> Signed-off-by: Qingqing Zhuo <Qingqing.Zhuo@amd.com> Signed-off-by: Gabe Teeger <gabe.teeger@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/amd/display/dc/dcn35/dcn35_resource.c1
-rw-r--r--drivers/gpu/drm/amd/display/dc/dml2/dml2_wrapper.c3
2 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/dcn35/dcn35_resource.c b/drivers/gpu/drm/amd/display/dc/dcn35/dcn35_resource.c
index 2283daa45318..828846538a92 100644
--- a/drivers/gpu/drm/amd/display/dc/dcn35/dcn35_resource.c
+++ b/drivers/gpu/drm/amd/display/dc/dcn35/dcn35_resource.c
@@ -2072,6 +2072,7 @@ static bool dcn35_resource_construct(
dc->dml2_options.use_native_soc_bb_construction = true;
if (dc->config.EnableMinDispClkODM)
dc->dml2_options.minimize_dispclk_using_odm = true;
+ dc->dml2_options.enable_windowed_mpo_odm = dc->config.enable_windowed_mpo_odm;
dc->dml2_options.callbacks.dc = dc;
dc->dml2_options.callbacks.build_scaling_params = &resource_build_scaling_params;
diff --git a/drivers/gpu/drm/amd/display/dc/dml2/dml2_wrapper.c b/drivers/gpu/drm/amd/display/dc/dml2/dml2_wrapper.c
index 11c131f6cf26..9a5e145168bc 100644
--- a/drivers/gpu/drm/amd/display/dc/dml2/dml2_wrapper.c
+++ b/drivers/gpu/drm/amd/display/dc/dml2/dml2_wrapper.c
@@ -659,6 +659,9 @@ static bool dml2_validate_only(const struct dc_state *context)
&dml2->v20.scratch.cur_display_config,
&dml2->v20.scratch.mode_support_info);
+ if (result)
+ result = does_configuration_meet_sw_policies(dml2, &dml2->v20.scratch.cur_display_config, &dml2->v20.scratch.mode_support_info);
+
return (result == 1) ? true : false;
}