diff options
author | Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com> | 2018-06-05 07:19:08 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2018-07-05 17:38:42 -0400 |
commit | 69d6bb171fe15f564adfbc485e77dd8c5ca953d5 (patch) | |
tree | 6489d5bb8b617e5bc4d3ed407654d82acb625126 /drivers/gpu/drm/amd/display/dc/calcs | |
parent | 33a6a7eb8014cb7089570534ef4d502efe4372ed (diff) |
drm/amd/display: remove dcn1 watermark sets b, c and d
Currently dcn1 will not switch between watermark sets so we can
save time by not calculating 3 extra sets.
Signed-off-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
Acked-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/dc/calcs')
-rw-r--r-- | drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c | 21 |
1 files changed, 20 insertions, 1 deletions
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 8dc0773b285e..12261fbc25e0 100644 --- a/drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c +++ b/drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c | |||
@@ -505,6 +505,7 @@ static void split_stream_across_pipes( | |||
505 | resource_build_scaling_params(secondary_pipe); | 505 | resource_build_scaling_params(secondary_pipe); |
506 | } | 506 | } |
507 | 507 | ||
508 | #if 0 | ||
508 | static void calc_wm_sets_and_perf_params( | 509 | static void calc_wm_sets_and_perf_params( |
509 | struct dc_state *context, | 510 | struct dc_state *context, |
510 | struct dcn_bw_internal_vars *v) | 511 | struct dcn_bw_internal_vars *v) |
@@ -586,6 +587,7 @@ static void calc_wm_sets_and_perf_params( | |||
586 | if (v->voltage_level >= 3) | 587 | if (v->voltage_level >= 3) |
587 | context->bw.dcn.watermarks.d = context->bw.dcn.watermarks.a; | 588 | context->bw.dcn.watermarks.d = context->bw.dcn.watermarks.a; |
588 | } | 589 | } |
590 | #endif | ||
589 | 591 | ||
590 | static bool dcn_bw_apply_registry_override(struct dc *dc) | 592 | static bool dcn_bw_apply_registry_override(struct dc *dc) |
591 | { | 593 | { |
@@ -980,7 +982,24 @@ bool dcn_validate_bandwidth( | |||
980 | bw_consumed = v->fabric_and_dram_bandwidth; | 982 | bw_consumed = v->fabric_and_dram_bandwidth; |
981 | 983 | ||
982 | display_pipe_configuration(v); | 984 | display_pipe_configuration(v); |
983 | calc_wm_sets_and_perf_params(context, v); | 985 | /*calc_wm_sets_and_perf_params(context, v);*/ |
986 | /* Only 1 set is used by dcn since no noticeable | ||
987 | * performance improvement was measured and due to hw bug DEGVIDCN10-254 | ||
988 | */ | ||
989 | dispclkdppclkdcfclk_deep_sleep_prefetch_parameters_watermarks_and_performance_calculation(v); | ||
990 | |||
991 | context->bw.dcn.watermarks.a.cstate_pstate.cstate_exit_ns = | ||
992 | v->stutter_exit_watermark * 1000; | ||
993 | context->bw.dcn.watermarks.a.cstate_pstate.cstate_enter_plus_exit_ns = | ||
994 | v->stutter_enter_plus_exit_watermark * 1000; | ||
995 | context->bw.dcn.watermarks.a.cstate_pstate.pstate_change_ns = | ||
996 | v->dram_clock_change_watermark * 1000; | ||
997 | context->bw.dcn.watermarks.a.pte_meta_urgent_ns = v->ptemeta_urgent_watermark * 1000; | ||
998 | context->bw.dcn.watermarks.a.urgent_ns = v->urgent_watermark * 1000; | ||
999 | context->bw.dcn.watermarks.b = context->bw.dcn.watermarks.a; | ||
1000 | context->bw.dcn.watermarks.c = context->bw.dcn.watermarks.a; | ||
1001 | context->bw.dcn.watermarks.d = context->bw.dcn.watermarks.a; | ||
1002 | |||
984 | context->bw.dcn.clk.fclk_khz = (int)(bw_consumed * 1000000 / | 1003 | context->bw.dcn.clk.fclk_khz = (int)(bw_consumed * 1000000 / |
985 | (ddr4_dram_factor_single_Channel * v->number_of_channels)); | 1004 | (ddr4_dram_factor_single_Channel * v->number_of_channels)); |
986 | if (bw_consumed == v->fabric_and_dram_bandwidth_vmin0p65) { | 1005 | if (bw_consumed == v->fabric_and_dram_bandwidth_vmin0p65) { |