aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/display/dc/calcs
diff options
context:
space:
mode:
authorDmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>2018-06-05 07:19:08 -0400
committerAlex Deucher <alexander.deucher@amd.com>2018-07-05 17:38:42 -0400
commit69d6bb171fe15f564adfbc485e77dd8c5ca953d5 (patch)
tree6489d5bb8b617e5bc4d3ed407654d82acb625126 /drivers/gpu/drm/amd/display/dc/calcs
parent33a6a7eb8014cb7089570534ef4d502efe4372ed (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.c21
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
508static void calc_wm_sets_and_perf_params( 509static 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
590static bool dcn_bw_apply_registry_override(struct dc *dc) 592static 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) {