diff --git a/drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c b/drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c index 9cb08365e2b680824db93ee4aafe4b90897cc32e..3ec702fecfd12a74daac47a672e85bfaf933049f 100644 --- a/drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c +++ b/drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c @@ -906,11 +906,16 @@ bool dcn_validate_bandwidth( scaler_settings_calculation(v); mode_support_and_system_configuration(v); - if (v->voltage_level == 0) { + if (v->voltage_level == 0 && + (dc->public.debug.sr_exit_time_dpm0_ns + || dc->public.debug.sr_enter_plus_exit_time_dpm0_ns)) { struct core_dc *dc_core = DC_TO_CORE(&dc->public); - v->sr_enter_plus_exit_time = 9.466f; - v->sr_exit_time = 7.849f; + if (dc->public.debug.sr_enter_plus_exit_time_dpm0_ns) + v->sr_enter_plus_exit_time = + dc->public.debug.sr_enter_plus_exit_time_dpm0_ns / 1000.0f; + if (dc->public.debug.sr_exit_time_dpm0_ns) + v->sr_exit_time = dc->public.debug.sr_exit_time_dpm0_ns / 1000.0f; dc_core->dml.soc.sr_enter_plus_exit_time_us = v->sr_enter_plus_exit_time; dc_core->dml.soc.sr_exit_time_us = v->sr_exit_time; mode_support_and_system_configuration(v); diff --git a/drivers/gpu/drm/amd/display/dc/dc.h b/drivers/gpu/drm/amd/display/dc/dc.h index 62493c4a47d1516b78d783bf6b68eef0ce804d55..cb70b6d8be10b1cef1ad6001f7393796607f5cc7 100644 --- a/drivers/gpu/drm/amd/display/dc/dc.h +++ b/drivers/gpu/drm/amd/display/dc/dc.h @@ -171,6 +171,8 @@ struct dc_debug { bool disable_pplib_wm_range; bool use_dml_wm; bool disable_pipe_split; + int sr_exit_time_dpm0_ns; + int sr_enter_plus_exit_time_dpm0_ns; int sr_exit_time_ns; int sr_enter_plus_exit_time_ns; int urgent_latency_ns;