diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0904-drm-amd-dal-bw-calculations-fixed-for-displays-4-6.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0904-drm-amd-dal-bw-calculations-fixed-for-displays-4-6.patch | 362 |
1 files changed, 0 insertions, 362 deletions
diff --git a/common/recipes-kernel/linux/files/0904-drm-amd-dal-bw-calculations-fixed-for-displays-4-6.patch b/common/recipes-kernel/linux/files/0904-drm-amd-dal-bw-calculations-fixed-for-displays-4-6.patch deleted file mode 100644 index 00c36adf..00000000 --- a/common/recipes-kernel/linux/files/0904-drm-amd-dal-bw-calculations-fixed-for-displays-4-6.patch +++ /dev/null @@ -1,362 +0,0 @@ -From 4611e5b60b8b8beab49a192ea35d2a813088df34 Mon Sep 17 00:00:00 2001 -From: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com> -Date: Mon, 14 Mar 2016 15:20:31 -0400 -Subject: [PATCH 0904/1110] drm/amd/dal: bw calculations fixed for displays 4-6 - -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 | 191 ++++++++++++++++++++- - drivers/gpu/drm/amd/dal/dc/inc/bandwidth_calcs.h | 24 ++- - 2 files changed, 211 insertions(+), 4 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 c64efe6..f39499a 100644 ---- a/drivers/gpu/drm/amd/dal/dc/calcs/bandwidth_calcs.c -+++ b/drivers/gpu/drm/amd/dal/dc/calcs/bandwidth_calcs.c -@@ -357,7 +357,7 @@ static void calculate_bandwidth( - results->scale_ratio[i] = - mode_data->d1_graphics_scale_ratio; - stereo_mode[i] = mode_data->d1_graphics_stereo_mode; -- } else { -+ } else if (i == 6) { - results->compression_rate[i] = bw_int_to_fixed(1); - results->access_one_channel_only[i] = 0; - results->h_total[i] = bw_int_to_fixed( -@@ -372,6 +372,51 @@ static void calculate_bandwidth( - results->scale_ratio[i] = - mode_data->d2_graphics_scale_ratio; - stereo_mode[i] = mode_data->d2_graphics_stereo_mode; -+ } else if (i == 7) { -+ results->compression_rate[i] = bw_int_to_fixed(1); -+ results->access_one_channel_only[i] = 0; -+ results->h_total[i] = bw_int_to_fixed( -+ mode_data->d3_htotal); -+ results->pixel_rate[i] = mode_data->d3_pixel_rate; -+ results->src_width[i] = bw_int_to_fixed( -+ mode_data->d3_graphics_src_width); -+ results->src_height[i] = bw_int_to_fixed( -+ mode_data->d3_graphics_src_height); -+ results->pitch_in_pixels[i] = bw_int_to_fixed( -+ mode_data->d3_graphics_src_width); -+ results->scale_ratio[i] = -+ mode_data->d3_graphics_scale_ratio; -+ stereo_mode[i] = mode_data->d3_graphics_stereo_mode; -+ } else if (i == 8) { -+ results->compression_rate[i] = bw_int_to_fixed(1); -+ results->access_one_channel_only[i] = 0; -+ results->h_total[i] = bw_int_to_fixed( -+ mode_data->d4_htotal); -+ results->pixel_rate[i] = mode_data->d4_pixel_rate; -+ results->src_width[i] = bw_int_to_fixed( -+ mode_data->d4_graphics_src_width); -+ results->src_height[i] = bw_int_to_fixed( -+ mode_data->d4_graphics_src_height); -+ results->pitch_in_pixels[i] = bw_int_to_fixed( -+ mode_data->d4_graphics_src_width); -+ results->scale_ratio[i] = -+ mode_data->d4_graphics_scale_ratio; -+ stereo_mode[i] = mode_data->d4_graphics_stereo_mode; -+ } else { -+ results->compression_rate[i] = bw_int_to_fixed(1); -+ results->access_one_channel_only[i] = 0; -+ results->h_total[i] = bw_int_to_fixed( -+ mode_data->d5_htotal); -+ results->pixel_rate[i] = mode_data->d5_pixel_rate; -+ results->src_width[i] = bw_int_to_fixed( -+ mode_data->d5_graphics_src_width); -+ results->src_height[i] = bw_int_to_fixed( -+ mode_data->d5_graphics_src_height); -+ results->pitch_in_pixels[i] = bw_int_to_fixed( -+ mode_data->d5_graphics_src_width); -+ results->scale_ratio[i] = -+ mode_data->d5_graphics_scale_ratio; -+ stereo_mode[i] = mode_data->d5_graphics_stereo_mode; - } - results->cursor_width_pixels[i] = bw_int_to_fixed( - vbios->cursor_width); -@@ -3729,10 +3774,46 @@ bool bw_calcs(struct dc_context *ctx, const struct bw_calcs_dceip *dceip, - - switch (mode_data->number_of_displays) { - case (6): -+ bw_data_internal->d5_htotal = -+ mode_data->displays_data[5].h_total; -+ bw_data_internal->d5_pixel_rate = -+ mode_data->displays_data[5].pixel_rate; -+ bw_data_internal->d5_graphics_src_width = -+ mode_data->displays_data[5].graphics_src_width; -+ bw_data_internal->d5_graphics_src_height = -+ mode_data->displays_data[5].graphics_src_height; -+ bw_data_internal->d5_graphics_scale_ratio = -+ mode_data->displays_data[5].graphics_scale_ratio; -+ bw_data_internal->d5_graphics_stereo_mode = -+ mode_data->displays_data[5].graphics_stereo_mode; - /* fall through */ - case (5): -+ bw_data_internal->d4_htotal = -+ mode_data->displays_data[4].h_total; -+ bw_data_internal->d4_pixel_rate = -+ mode_data->displays_data[4].pixel_rate; -+ bw_data_internal->d4_graphics_src_width = -+ mode_data->displays_data[4].graphics_src_width; -+ bw_data_internal->d4_graphics_src_height = -+ mode_data->displays_data[4].graphics_src_height; -+ bw_data_internal->d4_graphics_scale_ratio = -+ mode_data->displays_data[4].graphics_scale_ratio; -+ bw_data_internal->d4_graphics_stereo_mode = -+ mode_data->displays_data[4].graphics_stereo_mode; - /* fall through */ - case (4): -+ bw_data_internal->d3_htotal = -+ mode_data->displays_data[3].h_total; -+ bw_data_internal->d3_pixel_rate = -+ mode_data->displays_data[3].pixel_rate; -+ bw_data_internal->d3_graphics_src_width = -+ mode_data->displays_data[3].graphics_src_width; -+ bw_data_internal->d3_graphics_src_height = -+ mode_data->displays_data[3].graphics_src_height; -+ bw_data_internal->d3_graphics_scale_ratio = -+ mode_data->displays_data[3].graphics_scale_ratio; -+ bw_data_internal->d3_graphics_stereo_mode = -+ mode_data->displays_data[3].graphics_stereo_mode; - /* fall through */ - case (3): - bw_data_internal->d2_htotal = -@@ -3888,6 +3969,15 @@ bool bw_calcs(struct dc_context *ctx, const struct bw_calcs_dceip *dceip, - 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->nbp_state_change_wm_ns[3].a_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ nbp_state_change_watermark[7], bw_int_to_fixed(1000))); -+ calcs_output->nbp_state_change_wm_ns[4].a_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ nbp_state_change_watermark[8], bw_int_to_fixed(1000))); -+ calcs_output->nbp_state_change_wm_ns[5].a_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ nbp_state_change_watermark[9], bw_int_to_fixed(1000))); - - calcs_output->stutter_exit_wm_ns[0].a_mark = - bw_fixed_to_int(bw_mul(bw_results_internal-> -@@ -3898,6 +3988,15 @@ bool bw_calcs(struct dc_context *ctx, const struct bw_calcs_dceip *dceip, - 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->stutter_exit_wm_ns[3].a_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ stutter_exit_watermark[7], bw_int_to_fixed(1000))); -+ calcs_output->stutter_exit_wm_ns[4].a_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ stutter_exit_watermark[8], bw_int_to_fixed(1000))); -+ calcs_output->stutter_exit_wm_ns[5].a_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ stutter_exit_watermark[9], bw_int_to_fixed(1000))); - - calcs_output->urgent_wm_ns[0].a_mark = - bw_fixed_to_int(bw_mul(bw_results_internal-> -@@ -3908,6 +4007,15 @@ bool bw_calcs(struct dc_context *ctx, const struct bw_calcs_dceip *dceip, - 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))); -+ calcs_output->urgent_wm_ns[3].a_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ urgent_watermark[7], bw_int_to_fixed(1000))); -+ calcs_output->urgent_wm_ns[4].a_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ urgent_watermark[8], bw_int_to_fixed(1000))); -+ calcs_output->urgent_wm_ns[5].a_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ urgent_watermark[9], bw_int_to_fixed(1000))); - - /*TODO check correctness*/ - ((struct bw_calcs_vbios *)vbios)->low_sclk = mid_sclk; -@@ -3923,6 +4031,15 @@ bool bw_calcs(struct dc_context *ctx, const struct bw_calcs_dceip *dceip, - calcs_output->nbp_state_change_wm_ns[2].b_mark = - bw_fixed_to_int(bw_mul(bw_results_internal-> - nbp_state_change_watermark[6], bw_int_to_fixed(1000))); -+ calcs_output->nbp_state_change_wm_ns[3].b_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ nbp_state_change_watermark[7], bw_int_to_fixed(1000))); -+ calcs_output->nbp_state_change_wm_ns[4].b_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ nbp_state_change_watermark[8], bw_int_to_fixed(1000))); -+ calcs_output->nbp_state_change_wm_ns[5].b_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ nbp_state_change_watermark[9], bw_int_to_fixed(1000))); - - calcs_output->stutter_exit_wm_ns[0].b_mark = - bw_fixed_to_int(bw_mul(bw_results_internal-> -@@ -3933,6 +4050,15 @@ bool bw_calcs(struct dc_context *ctx, const struct bw_calcs_dceip *dceip, - calcs_output->stutter_exit_wm_ns[2].b_mark = - bw_fixed_to_int(bw_mul(bw_results_internal-> - stutter_exit_watermark[6], bw_int_to_fixed(1000))); -+ calcs_output->stutter_exit_wm_ns[3].b_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ stutter_exit_watermark[7], bw_int_to_fixed(1000))); -+ calcs_output->stutter_exit_wm_ns[4].b_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ stutter_exit_watermark[8], bw_int_to_fixed(1000))); -+ calcs_output->stutter_exit_wm_ns[5].b_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ stutter_exit_watermark[9], bw_int_to_fixed(1000))); - - calcs_output->urgent_wm_ns[0].b_mark = - bw_fixed_to_int(bw_mul(bw_results_internal-> -@@ -3943,6 +4069,15 @@ bool bw_calcs(struct dc_context *ctx, const struct bw_calcs_dceip *dceip, - calcs_output->urgent_wm_ns[2].b_mark = - bw_fixed_to_int(bw_mul(bw_results_internal-> - urgent_watermark[6], bw_int_to_fixed(1000))); -+ calcs_output->urgent_wm_ns[3].b_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ urgent_watermark[7], bw_int_to_fixed(1000))); -+ calcs_output->urgent_wm_ns[4].b_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ urgent_watermark[8], bw_int_to_fixed(1000))); -+ calcs_output->urgent_wm_ns[5].b_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ urgent_watermark[9], bw_int_to_fixed(1000))); - - /*TODO check correctness*/ - ((struct bw_calcs_vbios *)vbios)->low_sclk = low_sclk; -@@ -3959,6 +4094,15 @@ bool bw_calcs(struct dc_context *ctx, const struct bw_calcs_dceip *dceip, - 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->nbp_state_change_wm_ns[3].c_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ nbp_state_change_watermark[7], bw_int_to_fixed(1000))); -+ calcs_output->nbp_state_change_wm_ns[4].c_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ nbp_state_change_watermark[8], bw_int_to_fixed(1000))); -+ calcs_output->nbp_state_change_wm_ns[5].c_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ nbp_state_change_watermark[9], bw_int_to_fixed(1000))); - - calcs_output->stutter_exit_wm_ns[0].c_mark = - bw_fixed_to_int(bw_mul(bw_results_internal-> -@@ -3969,6 +4113,15 @@ bool bw_calcs(struct dc_context *ctx, const struct bw_calcs_dceip *dceip, - 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->stutter_exit_wm_ns[3].c_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ stutter_exit_watermark[7], bw_int_to_fixed(1000))); -+ calcs_output->stutter_exit_wm_ns[4].c_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ stutter_exit_watermark[8], bw_int_to_fixed(1000))); -+ calcs_output->stutter_exit_wm_ns[5].c_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ stutter_exit_watermark[9], bw_int_to_fixed(1000))); - - calcs_output->urgent_wm_ns[0].c_mark = - bw_fixed_to_int(bw_mul(bw_results_internal-> -@@ -3979,6 +4132,15 @@ bool bw_calcs(struct dc_context *ctx, const struct bw_calcs_dceip *dceip, - 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))); -+ calcs_output->urgent_wm_ns[3].c_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ urgent_watermark[7], bw_int_to_fixed(1000))); -+ calcs_output->urgent_wm_ns[4].c_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ urgent_watermark[8], bw_int_to_fixed(1000))); -+ calcs_output->urgent_wm_ns[5].c_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ urgent_watermark[9], bw_int_to_fixed(1000))); - - ((struct bw_calcs_vbios *)vbios)->low_yclk = high_yclk; - ((struct bw_calcs_vbios *)vbios)->mid_yclk = high_yclk; -@@ -3997,6 +4159,15 @@ bool bw_calcs(struct dc_context *ctx, const struct bw_calcs_dceip *dceip, - 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->nbp_state_change_wm_ns[3].d_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ nbp_state_change_watermark[7], bw_int_to_fixed(1000))); -+ calcs_output->nbp_state_change_wm_ns[4].d_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ nbp_state_change_watermark[8], bw_int_to_fixed(1000))); -+ calcs_output->nbp_state_change_wm_ns[5].d_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ nbp_state_change_watermark[9], bw_int_to_fixed(1000))); - - calcs_output->stutter_exit_wm_ns[0].d_mark = - bw_fixed_to_int(bw_mul(bw_results_internal-> -@@ -4007,6 +4178,15 @@ bool bw_calcs(struct dc_context *ctx, const struct bw_calcs_dceip *dceip, - 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->stutter_exit_wm_ns[3].d_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ stutter_exit_watermark[7], bw_int_to_fixed(1000))); -+ calcs_output->stutter_exit_wm_ns[4].d_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ stutter_exit_watermark[8], bw_int_to_fixed(1000))); -+ calcs_output->stutter_exit_wm_ns[5].d_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ stutter_exit_watermark[9], bw_int_to_fixed(1000))); - - calcs_output->urgent_wm_ns[0].d_mark = - bw_fixed_to_int(bw_mul(bw_results_internal-> -@@ -4017,6 +4197,15 @@ bool bw_calcs(struct dc_context *ctx, const struct bw_calcs_dceip *dceip, - 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))); -+ calcs_output->urgent_wm_ns[3].d_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ urgent_watermark[7], bw_int_to_fixed(1000))); -+ calcs_output->urgent_wm_ns[4].d_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ urgent_watermark[8], bw_int_to_fixed(1000))); -+ calcs_output->urgent_wm_ns[5].d_mark = -+ bw_fixed_to_int(bw_mul(bw_results_internal-> -+ urgent_watermark[9], bw_int_to_fixed(1000))); - - ((struct bw_calcs_vbios *)vbios)->low_yclk = low_yclk; - ((struct bw_calcs_vbios *)vbios)->mid_yclk = mid_yclk; -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 023efd3..d6a599c 100644 ---- a/drivers/gpu/drm/amd/dal/dc/inc/bandwidth_calcs.h -+++ b/drivers/gpu/drm/amd/dal/dc/inc/bandwidth_calcs.h -@@ -228,6 +228,24 @@ struct bw_calcs_mode_data_internal { - uint32_t d2_graphics_src_height; - struct bw_fixed d2_graphics_scale_ratio; - enum bw_defines d2_graphics_stereo_mode; -+ uint32_t d3_htotal; -+ struct bw_fixed d3_pixel_rate; -+ uint32_t d3_graphics_src_width; -+ uint32_t d3_graphics_src_height; -+ struct bw_fixed d3_graphics_scale_ratio; -+ enum bw_defines d3_graphics_stereo_mode; -+ uint32_t d4_htotal; -+ struct bw_fixed d4_pixel_rate; -+ uint32_t d4_graphics_src_width; -+ uint32_t d4_graphics_src_height; -+ struct bw_fixed d4_graphics_scale_ratio; -+ enum bw_defines d4_graphics_stereo_mode; -+ uint32_t d5_htotal; -+ struct bw_fixed d5_pixel_rate; -+ uint32_t d5_graphics_src_width; -+ uint32_t d5_graphics_src_height; -+ struct bw_fixed d5_graphics_scale_ratio; -+ enum bw_defines d5_graphics_stereo_mode; - }; - - struct bw_calcs_input_single_display { -@@ -475,9 +493,9 @@ struct bw_calcs_output { - bool stutter_mode_enable; - bool nbp_state_change_enable; - bool all_displays_in_sync; -- struct bw_watermarks urgent_wm_ns[4]; -- struct bw_watermarks stutter_exit_wm_ns[4]; -- struct bw_watermarks nbp_state_change_wm_ns[4]; -+ struct bw_watermarks urgent_wm_ns[6]; -+ struct bw_watermarks stutter_exit_wm_ns[6]; -+ struct bw_watermarks nbp_state_change_wm_ns[6]; - uint32_t required_sclk; - uint32_t required_sclk_deep_sleep; - uint32_t required_yclk; --- -2.7.4 - |