diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0786-drm-amd-dal-Consolidate-safe-and-generic-watermark-p.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0786-drm-amd-dal-Consolidate-safe-and-generic-watermark-p.patch | 261 |
1 files changed, 0 insertions, 261 deletions
diff --git a/common/recipes-kernel/linux/files/0786-drm-amd-dal-Consolidate-safe-and-generic-watermark-p.patch b/common/recipes-kernel/linux/files/0786-drm-amd-dal-Consolidate-safe-and-generic-watermark-p.patch deleted file mode 100644 index 006b9bd8..00000000 --- a/common/recipes-kernel/linux/files/0786-drm-amd-dal-Consolidate-safe-and-generic-watermark-p.patch +++ /dev/null @@ -1,261 +0,0 @@ -From dfb0581b9d72f656d93249b3e92b39b719410139 Mon Sep 17 00:00:00 2001 -From: David Rokhvarg <David.Rokhvarg@amd.com> -Date: Tue, 9 Feb 2016 14:28:31 -0500 -Subject: [PATCH 0786/1110] drm/amd/dal: Consolidate "safe" and "generic" - watermark programming. - -Signed-off-by: David Rokhvarg <David.Rokhvarg@amd.com> -Acked-by: Jordan Lazare <Jordan.Lazare@amd.com> ---- - .../drm/amd/dal/dc/dce110/dce110_hw_sequencer.c | 64 ++++++++++++++++------ - .../gpu/drm/amd/dal/dc/dce110/dce110_mem_input.c | 24 +------- - .../gpu/drm/amd/dal/dc/dce110/dce110_mem_input.h | 12 +--- - drivers/gpu/drm/amd/dal/dc/inc/mem_input.h | 7 +-- - 4 files changed, 52 insertions(+), 55 deletions(-) - -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 43840c1..a815a6d 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 -@@ -102,6 +102,9 @@ static const struct dce110_hw_seq_reg_offsets reg_offsets[] = { - (reg + reg_offsets[id].crtc) - - -+#define MAX_WATERMARK 0xFFFF -+#define SAFE_NBP_MARK 0x7FFF -+ - /******************************************************************************* - * Private definitions - ******************************************************************************/ -@@ -1129,41 +1132,64 @@ static void set_display_clock(struct validate_context *context) - /* TODO: Start GTC counter */ - } - -+static uint32_t compute_pstate_blackout_duration( -+ const struct dc *dc, -+ const struct core_stream *stream) -+{ -+ uint32_t total_dest_line_time_ns; -+ uint32_t pstate_blackout_duration_ns; -+ -+ pstate_blackout_duration_ns = 1000 * -+ dc->bw_vbios.blackout_duration.value >> 24; -+ -+ total_dest_line_time_ns = 1000000UL * -+ stream->public.timing.h_total / -+ stream->public.timing.pix_clk_khz + -+ pstate_blackout_duration_ns; -+ -+ return total_dest_line_time_ns; -+} -+ - static void set_displaymarks( -- const struct dc *dc, struct validate_context *context) -+ const struct dc *dc, -+ struct validate_context *context) - { - uint8_t i, j; - uint8_t total_streams = 0; - uint8_t target_count = context->target_count; -+ uint32_t pstate_blackout_duration_ns; - - for (i = 0; i < target_count; i++) { -- struct core_target *target = context->targets[i]; -+ const struct core_target *target = context->targets[i]; - - for (j = 0; j < target->public.stream_count; j++) { -- struct core_stream *stream = -+ const struct core_stream *stream = - DC_STREAM_TO_CORE(target->public.streams[j]); - -+ pstate_blackout_duration_ns = -+ compute_pstate_blackout_duration(dc, stream); -+ - stream->mi->funcs->mem_input_program_display_marks( - stream->mi, - context->bw_results -- .nbp_state_change_wm_ns[total_streams], -+ .nbp_state_change_wm_ns[total_streams], - context->bw_results - .stutter_exit_wm_ns[total_streams], -- context->bw_results -- .urgent_wm_ns[total_streams], -- stream->public.timing.h_total, -- stream->public.timing.pix_clk_khz, -- 1000 * dc->bw_vbios.blackout_duration -- .value >> 24); -+ context->bw_results. -+ urgent_wm_ns[total_streams], -+ pstate_blackout_duration_ns); -+ - total_streams++; -- } -- } -+ } /* for ()*/ -+ } /* for() */ - } - --static void set_safe_displaymarks(struct validate_context *context) -+static void set_safe_displaymarks(const struct dc *dc, struct validate_context *context) - { - uint8_t i, j; - uint8_t target_count = context->target_count; -+ struct bw_watermarks max_marks = { MAX_WATERMARK, MAX_WATERMARK }; -+ struct bw_watermarks nbp_marks = { SAFE_NBP_MARK, SAFE_NBP_MARK }; - - for (i = 0; i < target_count; i++) { - struct core_target *target = context->targets[i]; -@@ -1172,15 +1198,19 @@ static void set_safe_displaymarks(struct validate_context *context) - struct core_stream *stream = - DC_STREAM_TO_CORE(target->public.streams[j]); - -- stream->mi->funcs->mem_input_program_safe_display_marks( -- stream->mi); -+ stream->mi->funcs->mem_input_program_display_marks( -+ stream->mi, -+ nbp_marks, -+ max_marks, -+ max_marks, -+ MAX_WATERMARK); - } - } - } - - static void program_bw(struct dc *dc, struct validate_context *context) - { -- set_safe_displaymarks(context); -+ set_safe_displaymarks(dc, context); - /*TODO: when pplib works*/ - /*dc_set_clocks_and_clock_state(context);*/ - -@@ -1252,7 +1282,7 @@ static enum dc_status apply_ctx_to_hw( - PIPE_GATING_CONTROL_DISABLE); - } - -- set_safe_displaymarks(context); -+ set_safe_displaymarks(dc, context); - /*TODO: when pplib works*/ - /*dc_set_clocks_and_clock_state(context);*/ - -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 b718ac1..f640552 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 -@@ -36,8 +36,6 @@ - - #include "dce110_mem_input.h" - --#define MAX_WATERMARK 0xFFFF --#define SAFE_NBP_MARK 0x7FFF - - #define DCP_REG(reg) (reg + mem_input110->offsets.dcp) - #define DMIF_REG(reg) (reg + mem_input110->offsets.dmif) -@@ -677,40 +675,26 @@ static void program_nbp_watermark( - dm_write_reg(ctx, addr, value); - } - --void dce110_mem_input_program_safe_display_marks(struct mem_input *mi) --{ -- struct dce110_mem_input *bm_dce110 = TO_DCE110_MEM_INPUT(mi); -- struct bw_watermarks max_marks = { MAX_WATERMARK, MAX_WATERMARK }; -- struct bw_watermarks nbp_marks = { SAFE_NBP_MARK, SAFE_NBP_MARK }; -- -- program_urgency_watermark( -- mi->ctx, bm_dce110->offsets.dmif, max_marks, MAX_WATERMARK); -- program_stutter_watermark(mi->ctx, bm_dce110->offsets.dmif, max_marks); -- program_nbp_watermark(mi->ctx, bm_dce110->offsets.dmif, nbp_marks); --} -- - void dce110_mem_input_program_display_marks( - struct mem_input *mem_input, - struct bw_watermarks nbp, - struct bw_watermarks stutter, - struct bw_watermarks urgent, -- uint32_t h_total, -- uint32_t pixel_clk_in_khz, -- uint32_t pstate_blackout_duration_ns) -+ uint32_t total_dest_line_time_ns) - { - struct dce110_mem_input *bm_dce110 = TO_DCE110_MEM_INPUT(mem_input); -- uint32_t total_dest_line_time_ns = 1000000UL * h_total -- / pixel_clk_in_khz + pstate_blackout_duration_ns; - - program_urgency_watermark( - mem_input->ctx, - bm_dce110->offsets.dmif, - urgent, - total_dest_line_time_ns); -+ - program_nbp_watermark( - mem_input->ctx, - bm_dce110->offsets.dmif, - nbp); -+ - program_stutter_watermark( - mem_input->ctx, - bm_dce110->offsets.dmif, -@@ -930,8 +914,6 @@ void dce110_free_mem_input( - } - - static struct mem_input_funcs dce110_mem_input_funcs = { -- .mem_input_program_safe_display_marks = -- dce110_mem_input_program_safe_display_marks, - .mem_input_program_display_marks = - dce110_mem_input_program_display_marks, - .allocate_mem_input = dce110_allocate_mem_input, -diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input.h b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input.h -index 232d7fb..a0db7aa 100644 ---- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input.h -+++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_mem_input.h -@@ -51,14 +51,6 @@ bool dce110_mem_input_construct( - /* - * dce110_mem_input_program_display_marks - * -- * This function will program nbp stutter and urgency watermarks to maximum -- * safe values -- */ --void dce110_mem_input_program_safe_display_marks(struct mem_input *mi); -- --/* -- * dce110_mem_input_program_display_marks -- * - * This function will program nbp stutter and urgency watermarks to minimum - * allowable values - */ -@@ -67,9 +59,7 @@ void dce110_mem_input_program_display_marks( - struct bw_watermarks nbp, - struct bw_watermarks stutter, - struct bw_watermarks urgent, -- uint32_t h_total, -- uint32_t pixel_clk_in_khz, -- uint32_t pstate_blackout_duration_ns); -+ uint32_t total_dest_line_time_ns); - - /* - * dce110_allocate_mem_input -diff --git a/drivers/gpu/drm/amd/dal/dc/inc/mem_input.h b/drivers/gpu/drm/amd/dal/dc/inc/mem_input.h -index 747e5dc..9cd9905 100644 ---- a/drivers/gpu/drm/amd/dal/dc/inc/mem_input.h -+++ b/drivers/gpu/drm/amd/dal/dc/inc/mem_input.h -@@ -35,17 +35,12 @@ struct mem_input { - }; - - struct mem_input_funcs { -- void (*mem_input_program_safe_display_marks)( -- struct mem_input *mi); -- - void (*mem_input_program_display_marks)( - struct mem_input *mem_input, - struct bw_watermarks nbp, - struct bw_watermarks stutter, - struct bw_watermarks urgent, -- uint32_t h_total, -- uint32_t pixel_clk_in_khz, -- uint32_t pstate_blackout_duration_ns); -+ uint32_t total_dest_line_time_ns); - - void (*allocate_mem_input)( - struct mem_input *mem_input, --- -2.7.4 - |