From: Gabe Teeger Date: Thu, 28 Sep 2023 21:00:35 +0000 (-0400) Subject: drm/amd/display: add check in validate_only in dml2 X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=647cf5151986ce981d55bba198612667eacf8a8b;p=linux.git 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 Acked-by: Qingqing Zhuo Signed-off-by: Qingqing Zhuo Signed-off-by: Gabe Teeger Signed-off-by: Alex Deucher --- 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 2283daa453186..828846538a929 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 11c131f6cf26e..9a5e145168bcb 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; }