From c236b72b86f24d361b03e203998bc69c74f295a1 Mon Sep 17 00:00:00 2001 From: Harry Wentland Date: Thu, 28 Jan 2016 16:26:18 -0500 Subject: [PATCH 0749/1110] drm/amd/dal: Don't try to do bandwidth validation on DCE 10 Currently bandwidth calculation isn't implemented for DCE 10. Make sure we're not calling wrong bandwidth calc code. Signed-off-by: Harry Wentland Acked-by: Harry Wentland --- .../gpu/drm/amd/dal/dc/dce100/dce100_resource.c | 170 +-------------------- 1 file changed, 2 insertions(+), 168 deletions(-) diff --git a/drivers/gpu/drm/amd/dal/dc/dce100/dce100_resource.c b/drivers/gpu/drm/amd/dal/dc/dce100/dce100_resource.c index 0c1757b..9d438a9 100644 --- a/drivers/gpu/drm/amd/dal/dc/dce100/dce100_resource.c +++ b/drivers/gpu/drm/amd/dal/dc/dce100/dce100_resource.c @@ -772,176 +772,10 @@ enum dc_status dce100_validate_bandwidth( const struct dc *dc, struct validate_context *context) { - 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; - - memset(&context->bw_mode_data, 0, sizeof(context->bw_mode_data)); + /* TODO implement when needed */ - for (i = 0; i < context->target_count; i++) { - struct core_target *target = context->targets[i]; - - for (j = 0; j < target->public.stream_count; j++) { - struct core_stream *stream = - DC_STREAM_TO_CORE(target->public.streams[j]); - struct bw_calcs_input_single_display *disp = &context-> - bw_mode_data.displays_data[number_of_displays]; - - if (target->status.surface_count == 0) { - disp->graphics_scale_ratio = bw_int_to_fixed(1); - 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 = - fixed31_32_to_bw_fixed( - 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 = - stream->public.timing.h_addressable; - disp->graphics_src_height = - stream->public.timing.v_addressable; - disp->h_total = stream->public.timing.h_total; - disp->pixel_rate = bw_frc_to_fixed( - stream->public.timing.pix_clk_khz, 1000); - - /*TODO: get from surface*/ - disp->graphics_bytes_per_pixel = 4; - disp->graphics_tiling_mode = bw_def_tiled; - - /* DCE11 defaults*/ - disp->graphics_lb_bpc = 10; - disp->graphics_interlace_mode = false; - disp->fbc_enable = false; - disp->lpt_enable = false; - disp->graphics_stereo_mode = bw_def_mono; - disp->underlay_mode = bw_def_none; - - /*All displays will be synchronized if timings are all - * the same - */ - if (number_of_displays != 0 && all_displays_in_sync) - if (dal_memcmp(&prev_timing, - &stream->public.timing, - sizeof(struct dc_crtc_timing)) != 0) - all_displays_in_sync = false; - if (number_of_displays == 0) - prev_timing = stream->public.timing; - - number_of_displays++; - } - } + return DC_OK; - /* 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, - LOG_MAJOR_BWM, - LOG_MINOR_BWM_REQUIRED_BANDWIDTH_CALCS, - "%s: start\n", - __func__); - - if (!bw_calcs( - dc->ctx, - &dc->bw_dceip, - &dc->bw_vbios, - &context->bw_mode_data, - &context->bw_results)) - result = DC_FAIL_BANDWIDTH_VALIDATE; - else - result = DC_OK; - - if (result == DC_FAIL_BANDWIDTH_VALIDATE) - dal_logger_write(dc->ctx->logger, - LOG_MAJOR_BWM, - LOG_MINOR_BWM_MODE_VALIDATION, - "%s: Bandwidth validation failed!", - __func__); - - 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; } static void set_target_unchanged( -- 2.7.4