aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0891-drm-amd-dal-Use-fine-grained-watermarks-for-support-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0891-drm-amd-dal-Use-fine-grained-watermarks-for-support-.patch')
-rw-r--r--common/recipes-kernel/linux/files/0891-drm-amd-dal-Use-fine-grained-watermarks-for-support-.patch263
1 files changed, 0 insertions, 263 deletions
diff --git a/common/recipes-kernel/linux/files/0891-drm-amd-dal-Use-fine-grained-watermarks-for-support-.patch b/common/recipes-kernel/linux/files/0891-drm-amd-dal-Use-fine-grained-watermarks-for-support-.patch
deleted file mode 100644
index bf7269c0..00000000
--- a/common/recipes-kernel/linux/files/0891-drm-amd-dal-Use-fine-grained-watermarks-for-support-.patch
+++ /dev/null
@@ -1,263 +0,0 @@
-From 7821e089e8f8d7ec06df41a2e4ca7453f0c1af79 Mon Sep 17 00:00:00 2001
-From: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
-Date: Tue, 8 Mar 2016 17:35:27 -0500
-Subject: [PATCH 0891/1110] drm/amd/dal: Use fine-grained watermarks for
- support new ASICs
-
-Signed-off-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
-Acked-by: Harry Wentland <harry.wentland@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
----
- drivers/gpu/drm/amd/dal/dc/calcs/bandwidth_calcs.c | 89 +++++++++++++++++++---
- .../drm/amd/dal/dc/dce110/dce110_hw_sequencer.c | 6 +-
- .../gpu/drm/amd/dal/dc/dce110/dce110_mem_input.c | 13 ++--
- drivers/gpu/drm/amd/dal/dc/inc/bandwidth_calcs.h | 2 +
- drivers/gpu/drm/amd/dal/dc/inc/hw/mem_input.h | 3 +-
- 5 files changed, 94 insertions(+), 19 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/dal/dc/calcs/bandwidth_calcs.c b/drivers/gpu/drm/amd/dal/dc/calcs/bandwidth_calcs.c
-index 52557db..c64efe6 100644
---- a/drivers/gpu/drm/amd/dal/dc/calcs/bandwidth_calcs.c
-+++ b/drivers/gpu/drm/amd/dal/dc/calcs/bandwidth_calcs.c
-@@ -3879,6 +3879,41 @@ bool bw_calcs(struct dc_context *ctx, const struct bw_calcs_dceip *dceip,
- bw_mul(high_yclk, bw_int_to_fixed(1000)));
-
- /* units: nanosecond, 16bit storage. */
-+ calcs_output->nbp_state_change_wm_ns[0].a_mark =
-+ bw_fixed_to_int(bw_mul(bw_results_internal->
-+ nbp_state_change_watermark[4], bw_int_to_fixed(1000)));
-+ calcs_output->nbp_state_change_wm_ns[1].a_mark =
-+ bw_fixed_to_int(bw_mul(bw_results_internal->
-+ nbp_state_change_watermark[5], bw_int_to_fixed(1000)));
-+ calcs_output->nbp_state_change_wm_ns[2].a_mark =
-+ bw_fixed_to_int(bw_mul(bw_results_internal->
-+ nbp_state_change_watermark[6], bw_int_to_fixed(1000)));
-+
-+ calcs_output->stutter_exit_wm_ns[0].a_mark =
-+ bw_fixed_to_int(bw_mul(bw_results_internal->
-+ stutter_exit_watermark[4], bw_int_to_fixed(1000)));
-+ calcs_output->stutter_exit_wm_ns[1].a_mark =
-+ bw_fixed_to_int(bw_mul(bw_results_internal->
-+ stutter_exit_watermark[5], bw_int_to_fixed(1000)));
-+ calcs_output->stutter_exit_wm_ns[2].a_mark =
-+ bw_fixed_to_int(bw_mul(bw_results_internal->
-+ stutter_exit_watermark[6], bw_int_to_fixed(1000)));
-+
-+ calcs_output->urgent_wm_ns[0].a_mark =
-+ bw_fixed_to_int(bw_mul(bw_results_internal->
-+ urgent_watermark[4], bw_int_to_fixed(1000)));
-+ calcs_output->urgent_wm_ns[1].a_mark =
-+ bw_fixed_to_int(bw_mul(bw_results_internal->
-+ urgent_watermark[5], bw_int_to_fixed(1000)));
-+ calcs_output->urgent_wm_ns[2].a_mark =
-+ bw_fixed_to_int(bw_mul(bw_results_internal->
-+ urgent_watermark[6], bw_int_to_fixed(1000)));
-+
-+ /*TODO check correctness*/
-+ ((struct bw_calcs_vbios *)vbios)->low_sclk = mid_sclk;
-+ calculate_bandwidth(dceip, vbios, bw_data_internal,
-+ bw_results_internal);
-+
- calcs_output->nbp_state_change_wm_ns[0].b_mark =
- bw_fixed_to_int(bw_mul(bw_results_internal->
- nbp_state_change_watermark[4],bw_int_to_fixed(1000)));
-@@ -3909,6 +3944,42 @@ bool bw_calcs(struct dc_context *ctx, const struct bw_calcs_dceip *dceip,
- bw_fixed_to_int(bw_mul(bw_results_internal->
- urgent_watermark[6], bw_int_to_fixed(1000)));
-
-+ /*TODO check correctness*/
-+ ((struct bw_calcs_vbios *)vbios)->low_sclk = low_sclk;
-+ ((struct bw_calcs_vbios *)vbios)->low_yclk = mid_yclk;
-+ calculate_bandwidth(dceip, vbios, bw_data_internal,
-+ bw_results_internal);
-+
-+ calcs_output->nbp_state_change_wm_ns[0].c_mark =
-+ bw_fixed_to_int(bw_mul(bw_results_internal->
-+ nbp_state_change_watermark[4], bw_int_to_fixed(1000)));
-+ calcs_output->nbp_state_change_wm_ns[1].c_mark =
-+ bw_fixed_to_int(bw_mul(bw_results_internal->
-+ nbp_state_change_watermark[5], bw_int_to_fixed(1000)));
-+ calcs_output->nbp_state_change_wm_ns[2].c_mark =
-+ bw_fixed_to_int(bw_mul(bw_results_internal->
-+ nbp_state_change_watermark[6], bw_int_to_fixed(1000)));
-+
-+ calcs_output->stutter_exit_wm_ns[0].c_mark =
-+ bw_fixed_to_int(bw_mul(bw_results_internal->
-+ stutter_exit_watermark[4], bw_int_to_fixed(1000)));
-+ calcs_output->stutter_exit_wm_ns[1].c_mark =
-+ bw_fixed_to_int(bw_mul(bw_results_internal->
-+ stutter_exit_watermark[5], bw_int_to_fixed(1000)));
-+ calcs_output->stutter_exit_wm_ns[2].c_mark =
-+ bw_fixed_to_int(bw_mul(bw_results_internal->
-+ stutter_exit_watermark[6], bw_int_to_fixed(1000)));
-+
-+ calcs_output->urgent_wm_ns[0].c_mark =
-+ bw_fixed_to_int(bw_mul(bw_results_internal->
-+ urgent_watermark[4], bw_int_to_fixed(1000)));
-+ calcs_output->urgent_wm_ns[1].c_mark =
-+ bw_fixed_to_int(bw_mul(bw_results_internal->
-+ urgent_watermark[5], bw_int_to_fixed(1000)));
-+ calcs_output->urgent_wm_ns[2].c_mark =
-+ bw_fixed_to_int(bw_mul(bw_results_internal->
-+ urgent_watermark[6], bw_int_to_fixed(1000)));
-+
- ((struct bw_calcs_vbios *)vbios)->low_yclk = high_yclk;
- ((struct bw_calcs_vbios *)vbios)->mid_yclk = high_yclk;
- ((struct bw_calcs_vbios *)vbios)->low_sclk = high_sclk;
-@@ -3917,33 +3988,33 @@ bool bw_calcs(struct dc_context *ctx, const struct bw_calcs_dceip *dceip,
- calculate_bandwidth(dceip, vbios, bw_data_internal,
- bw_results_internal);
-
-- calcs_output->nbp_state_change_wm_ns[0].a_mark =
-+ calcs_output->nbp_state_change_wm_ns[0].d_mark =
- bw_fixed_to_int(bw_mul(bw_results_internal->
- nbp_state_change_watermark[4], bw_int_to_fixed(1000)));
-- calcs_output->nbp_state_change_wm_ns[1].a_mark =
-+ calcs_output->nbp_state_change_wm_ns[1].d_mark =
- bw_fixed_to_int(bw_mul(bw_results_internal->
- nbp_state_change_watermark[5], bw_int_to_fixed(1000)));
-- calcs_output->nbp_state_change_wm_ns[2].a_mark =
-+ calcs_output->nbp_state_change_wm_ns[2].d_mark =
- bw_fixed_to_int(bw_mul(bw_results_internal->
- nbp_state_change_watermark[6], bw_int_to_fixed(1000)));
-
-- calcs_output->stutter_exit_wm_ns[0].a_mark =
-+ calcs_output->stutter_exit_wm_ns[0].d_mark =
- bw_fixed_to_int(bw_mul(bw_results_internal->
- stutter_exit_watermark[4], bw_int_to_fixed(1000)));
-- calcs_output->stutter_exit_wm_ns[1].a_mark =
-+ calcs_output->stutter_exit_wm_ns[1].d_mark =
- bw_fixed_to_int(bw_mul(bw_results_internal->
- stutter_exit_watermark[5], bw_int_to_fixed(1000)));
-- calcs_output->stutter_exit_wm_ns[2].a_mark =
-+ calcs_output->stutter_exit_wm_ns[2].d_mark =
- bw_fixed_to_int(bw_mul(bw_results_internal->
- stutter_exit_watermark[6], bw_int_to_fixed(1000)));
-
-- calcs_output->urgent_wm_ns[0].a_mark =
-+ calcs_output->urgent_wm_ns[0].d_mark =
- bw_fixed_to_int(bw_mul(bw_results_internal->
- urgent_watermark[4], bw_int_to_fixed(1000)));
-- calcs_output->urgent_wm_ns[1].a_mark =
-+ calcs_output->urgent_wm_ns[1].d_mark =
- bw_fixed_to_int(bw_mul(bw_results_internal->
- urgent_watermark[5], bw_int_to_fixed(1000)));
-- calcs_output->urgent_wm_ns[2].a_mark =
-+ calcs_output->urgent_wm_ns[2].d_mark =
- bw_fixed_to_int(bw_mul(bw_results_internal->
- urgent_watermark[6], bw_int_to_fixed(1000)));
-
-diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_hw_sequencer.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_hw_sequencer.c
-index defaac4..80faa98 100644
---- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_hw_sequencer.c
-+++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_hw_sequencer.c
-@@ -1172,8 +1172,10 @@ static void set_displaymarks(
- static void set_safe_displaymarks(struct resource_context *res_ctx)
- {
- uint8_t i;
-- struct bw_watermarks max_marks = { MAX_WATERMARK, MAX_WATERMARK };
-- struct bw_watermarks nbp_marks = { SAFE_NBP_MARK, SAFE_NBP_MARK };
-+ struct bw_watermarks max_marks = {
-+ MAX_WATERMARK, MAX_WATERMARK, MAX_WATERMARK, MAX_WATERMARK };
-+ struct bw_watermarks nbp_marks = {
-+ SAFE_NBP_MARK, SAFE_NBP_MARK, SAFE_NBP_MARK, SAFE_NBP_MARK };
-
- for (i = 0; i < MAX_PIPES; i++) {
- if (res_ctx->pipe_ctx[i].stream == NULL)
-diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input.c
-index e7fc5bd..6f3ca2d 100644
---- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input.c
-+++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input.c
-@@ -32,7 +32,6 @@
-
- #include "include/logger_interface.h"
- #include "adapter_service_interface.h"
--#include "inc/bandwidth_calcs.h"
-
- #include "dce110_mem_input.h"
-
-@@ -442,7 +441,7 @@ static void program_urgency_watermark(
-
- set_reg_field_value(
- urgency_cntl,
-- marks_low.a_mark,
-+ marks_low.d_mark,
- DPG_PIPE_URGENCY_CONTROL,
- URGENCY_LOW_WATERMARK);
-
-@@ -464,7 +463,7 @@ static void program_urgency_watermark(
- urgency_cntl = dm_read_reg(ctx, urgency_addr);
-
- set_reg_field_value(urgency_cntl,
-- marks_low.b_mark,
-+ marks_low.a_mark,
- DPG_PIPE_URGENCY_CONTROL,
- URGENCY_LOW_WATERMARK);
-
-@@ -509,7 +508,7 @@ static void program_stutter_watermark(
-
- /*Write watermark set A*/
- set_reg_field_value(stutter_cntl,
-- marks.a_mark,
-+ marks.d_mark,
- DPG_PIPE_STUTTER_CONTROL,
- STUTTER_EXIT_SELF_REFRESH_WATERMARK);
- dm_write_reg(ctx, stutter_addr, stutter_cntl);
-@@ -534,7 +533,7 @@ static void program_stutter_watermark(
-
- /*Write watermark set B*/
- set_reg_field_value(stutter_cntl,
-- marks.b_mark,
-+ marks.a_mark,
- DPG_PIPE_STUTTER_CONTROL,
- STUTTER_EXIT_SELF_REFRESH_WATERMARK);
- dm_write_reg(ctx, stutter_addr, stutter_cntl);
-@@ -580,7 +579,7 @@ static void program_nbp_watermark(
- value = dm_read_reg(ctx, addr);
- set_reg_field_value(
- value,
-- marks.a_mark,
-+ marks.d_mark,
- DPG_PIPE_NB_PSTATE_CHANGE_CONTROL,
- NB_PSTATE_CHANGE_WATERMARK);
- dm_write_reg(ctx, addr, value);
-@@ -618,7 +617,7 @@ static void program_nbp_watermark(
- value = dm_read_reg(ctx, addr);
- set_reg_field_value(
- value,
-- marks.b_mark,
-+ marks.a_mark,
- DPG_PIPE_NB_PSTATE_CHANGE_CONTROL,
- NB_PSTATE_CHANGE_WATERMARK);
- dm_write_reg(ctx, addr, value);
-diff --git a/drivers/gpu/drm/amd/dal/dc/inc/bandwidth_calcs.h b/drivers/gpu/drm/amd/dal/dc/inc/bandwidth_calcs.h
-index ff1ea09..023efd3 100644
---- a/drivers/gpu/drm/amd/dal/dc/inc/bandwidth_calcs.h
-+++ b/drivers/gpu/drm/amd/dal/dc/inc/bandwidth_calcs.h
-@@ -465,6 +465,8 @@ struct bw_calcs_results {
- struct bw_watermarks {
- uint32_t a_mark;
- uint32_t b_mark;
-+ uint32_t c_mark;
-+ uint32_t d_mark;
- };
-
- struct bw_calcs_output {
-diff --git a/drivers/gpu/drm/amd/dal/dc/inc/hw/mem_input.h b/drivers/gpu/drm/amd/dal/dc/inc/hw/mem_input.h
-index 3829694..6d7412c 100644
---- a/drivers/gpu/drm/amd/dal/dc/inc/hw/mem_input.h
-+++ b/drivers/gpu/drm/amd/dal/dc/inc/hw/mem_input.h
-@@ -25,8 +25,9 @@
- #ifndef __DAL_MEM_INPUT_H__
- #define __DAL_MEM_INPUT_H__
-
--#include "include/grph_object_id.h"
- #include "dc.h"
-+#include "include/grph_object_id.h"
-+#include "inc/bandwidth_calcs.h"
-
- struct mem_input {
- struct mem_input_funcs *funcs;
---
-2.7.4
-