diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0658-drm-amd-dal-add-bw_result-logging.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0658-drm-amd-dal-add-bw_result-logging.patch | 225 |
1 files changed, 0 insertions, 225 deletions
diff --git a/common/recipes-kernel/linux/files/0658-drm-amd-dal-add-bw_result-logging.patch b/common/recipes-kernel/linux/files/0658-drm-amd-dal-add-bw_result-logging.patch deleted file mode 100644 index ec95e491..00000000 --- a/common/recipes-kernel/linux/files/0658-drm-amd-dal-add-bw_result-logging.patch +++ /dev/null @@ -1,225 +0,0 @@ -From b96d5c9da90d267519257bf183d48e3442af4dd9 Mon Sep 17 00:00:00 2001 -From: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com> -Date: Tue, 5 Jan 2016 12:02:31 -0500 -Subject: [PATCH 0658/1110] drm/amd/dal: add bw_result logging - -Also fixed number of taps used for multi-sisplay config bw calculations. -Utils part of the change fixes line endings. - -Signed-off-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com> -Signed-off-by: Harry Wentland <harry.wentland@amd.com> -Acked-by: Harry Wentland <Harry.Wentland@amd.com> ---- - drivers/gpu/drm/amd/dal/dc/basics/logger.c | 18 +++-- - .../drm/amd/dal/dc/dce110/dce110_hw_sequencer.c | 4 +- - .../gpu/drm/amd/dal/dc/dce110/dce110_resource.c | 92 +++++++++++++++++++--- - 3 files changed, 96 insertions(+), 18 deletions(-) - -diff --git a/drivers/gpu/drm/amd/dal/dc/basics/logger.c b/drivers/gpu/drm/amd/dal/dc/basics/logger.c -index 5aadda7..b2bf14f 100644 ---- a/drivers/gpu/drm/amd/dal/dc/basics/logger.c -+++ b/drivers/gpu/drm/amd/dal/dc/basics/logger.c -@@ -241,7 +241,8 @@ struct log_major_mask_info { - - #define LG_SYNC_MSK (1 << LOG_MINOR_SYNC_TIMING) - --#define LG_BWM_MSK (1 << LOG_MINOR_BWM_MODE_VALIDATION) -+#define LG_BWM_MSK (1 << LOG_MINOR_BWM_MODE_VALIDATION) | \ -+ (1 << LOG_MINOR_BWM_REQUIRED_BANDWIDTH_CALCS) - - - static const struct log_major_mask_info log_major_mask_info_tbl[] = { -@@ -620,7 +621,8 @@ void dal_logger_write( - /* Concatenate onto end of entry buffer */ - append_entry(&entry, buffer, size); - } else { -- append_entry(&entry, "LOG_ERROR\n", 12); -+ append_entry(&entry, -+ "LOG_ERROR, line too long or null\n", 35); - } - - dal_logger_close(&entry); -@@ -658,7 +660,12 @@ void dal_logger_append( - - size = dal_log_to_buffer( - buffer, DAL_LOGGER_BUFFER_MAX_LOG_LINE_SIZE, msg, args); -- append_entry(entry, buffer, size); -+ -+ if (size < DAL_LOGGER_BUFFER_MAX_LOG_LINE_SIZE - 1) { -+ append_entry(entry, buffer, size); -+ } else { -+ append_entry(entry, "LOG_ERROR, line too long\n", 27); -+ } - - va_end(args); - } -@@ -758,11 +765,10 @@ void dal_logger_open( - - entry->buf = dc_service_alloc( - logger->ctx, -- DAL_LOGGER_BUFFER_MAX_LOG_LINE_SIZE * sizeof(char)); -+ DAL_LOGGER_BUFFER_MAX_SIZE * sizeof(char)); - - entry->buf_offset = 0; -- entry->max_buf_bytes = -- DAL_LOGGER_BUFFER_MAX_LOG_LINE_SIZE * sizeof(char); -+ entry->max_buf_bytes = DAL_LOGGER_BUFFER_MAX_SIZE * sizeof(char); - - logger->open_count++; - entry->major = major; -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 b71f7e7..fa6b9b4 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 -@@ -1286,7 +1286,9 @@ static enum dc_status apply_ctx_to_hw( - /*TODO: when pplib works*/ - /*dc_set_clocks_and_clock_state(context);*/ - -- set_display_clock(context); -+ if (context->bw_results.dispclk_khz -+ > dc->current_context.bw_results.dispclk_khz) -+ set_display_clock(context); - - for (i = 0; i < pool->controller_count; i++) { - struct controller_ctx *ctlr_ctx -diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_resource.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_resource.c -index 0e38513..cb084da 100644 ---- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_resource.c -+++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_resource.c -@@ -489,6 +489,8 @@ enum dc_status dce110_validate_bandwidth( - uint8_t i, j; - enum dc_status result = DC_ERROR_UNEXPECTED; - uint8_t number_of_displays = 0; -+ uint8_t max_htaps = 1; -+ uint8_t max_vtaps = 1; - bool all_displays_in_sync = true; - struct dc_crtc_timing prev_timing; - -@@ -504,8 +506,16 @@ enum dc_status dce110_validate_bandwidth( - - if (target->status.surface_count == 0) { - disp->graphics_scale_ratio = bw_int_to_fixed(1); -- disp->graphics_h_taps = 4; -- disp->graphics_v_taps = 4; -+ disp->graphics_h_taps = 2; -+ disp->graphics_v_taps = 2; -+ -+ /* TODO: remove when bw formula accepts taps per -+ * display -+ */ -+ if (max_vtaps < 2) -+ max_vtaps = 2; -+ if (max_htaps < 2) -+ max_htaps = 2; - - } else { - disp->graphics_scale_ratio = -@@ -513,6 +523,14 @@ enum dc_status dce110_validate_bandwidth( - stream->ratios.vert.value); - disp->graphics_h_taps = stream->taps.h_taps; - disp->graphics_v_taps = stream->taps.v_taps; -+ -+ /* TODO: remove when bw formula accepts taps per -+ * display -+ */ -+ if (max_vtaps < stream->taps.v_taps) -+ max_vtaps = stream->taps.v_taps; -+ if (max_htaps < stream->taps.h_taps) -+ max_htaps = stream->taps.h_taps; - } - - disp->graphics_src_width = -@@ -550,15 +568,23 @@ enum dc_status dce110_validate_bandwidth( - } - } - -+ /* TODO: remove when bw formula accepts taps per -+ * display -+ */ -+ context->bw_mode_data.displays_data[0].graphics_v_taps = max_vtaps; -+ context->bw_mode_data.displays_data[0].graphics_h_taps = max_htaps; -+ - context->bw_mode_data.number_of_displays = number_of_displays; - context->bw_mode_data.display_synchronization_enabled = - all_displays_in_sync; - -- dal_logger_write(dc->ctx->logger, -+ dal_logger_write( -+ dc->ctx->logger, - LOG_MAJOR_BWM, - LOG_MINOR_BWM_REQUIRED_BANDWIDTH_CALCS, -- "%s: Start bandwidth calculations", -+ "%s: start", - __func__); -+ - if (!bw_calcs( - dc->ctx, - &dc->bw_dceip, -@@ -576,13 +602,57 @@ enum dc_status dce110_validate_bandwidth( - "%s: Bandwidth validation failed!", - __func__); - -- dal_logger_write(dc->ctx->logger, -- LOG_MAJOR_BWM, -- LOG_MINOR_BWM_REQUIRED_BANDWIDTH_CALCS, -- "%s: Finish bandwidth calculations\n nbpMark: %d", -- __func__, -- context->bw_results.nbp_state_change_wm_ns[0].b_mark); -- -+ if (dal_memcmp(&dc->current_context.bw_results, -+ &context->bw_results, sizeof(context->bw_results))) { -+ struct log_entry log_entry; -+ dal_logger_open( -+ dc->ctx->logger, -+ &log_entry, -+ LOG_MAJOR_BWM, -+ LOG_MINOR_BWM_REQUIRED_BANDWIDTH_CALCS); -+ dal_logger_append(&log_entry, "%s: finish, numDisplays: %d\n" -+ "nbpMark_b: %d nbpMark_a: %d urgentMark_b: %d urgentMark_a: %d\n" -+ "stutMark_b: %d stutMark_a: %d\n", -+ __func__, number_of_displays, -+ context->bw_results.nbp_state_change_wm_ns[0].b_mark, -+ context->bw_results.nbp_state_change_wm_ns[0].a_mark, -+ context->bw_results.urgent_wm_ns[0].b_mark, -+ context->bw_results.urgent_wm_ns[0].a_mark, -+ context->bw_results.stutter_exit_wm_ns[0].b_mark, -+ context->bw_results.stutter_exit_wm_ns[0].a_mark); -+ dal_logger_append(&log_entry, -+ "nbpMark_b: %d nbpMark_a: %d urgentMark_b: %d urgentMark_a: %d\n" -+ "stutMark_b: %d stutMark_a: %d\n", -+ context->bw_results.nbp_state_change_wm_ns[1].b_mark, -+ context->bw_results.nbp_state_change_wm_ns[1].a_mark, -+ context->bw_results.urgent_wm_ns[1].b_mark, -+ context->bw_results.urgent_wm_ns[1].a_mark, -+ context->bw_results.stutter_exit_wm_ns[1].b_mark, -+ context->bw_results.stutter_exit_wm_ns[1].a_mark); -+ dal_logger_append(&log_entry, -+ "nbpMark_b: %d nbpMark_a: %d urgentMark_b: %d urgentMark_a: %d\n" -+ "stutMark_b: %d stutMark_a: %d stutter_mode_enable: %d\n", -+ context->bw_results.nbp_state_change_wm_ns[2].b_mark, -+ context->bw_results.nbp_state_change_wm_ns[2].a_mark, -+ context->bw_results.urgent_wm_ns[2].b_mark, -+ context->bw_results.urgent_wm_ns[2].a_mark, -+ context->bw_results.stutter_exit_wm_ns[2].b_mark, -+ context->bw_results.stutter_exit_wm_ns[2].a_mark, -+ context->bw_results.stutter_mode_enable); -+ dal_logger_append(&log_entry, -+ "cstate: %d pstate: %d nbpstate: %d sync: %d dispclk: %d\n" -+ "sclk: %d sclk_sleep: %d yclk: %d blackout_duration: %d\n", -+ context->bw_results.cpuc_state_change_enable, -+ context->bw_results.cpup_state_change_enable, -+ context->bw_results.nbp_state_change_enable, -+ context->bw_results.all_displays_in_sync, -+ context->bw_results.dispclk_khz, -+ context->bw_results.required_sclk, -+ context->bw_results.required_sclk_deep_sleep, -+ context->bw_results.required_yclk, -+ context->bw_results.required_blackout_duration_us); -+ dal_logger_close(&log_entry); -+ } - return result; - } - --- -2.7.4 - |