diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2917-drm-amd-display-set-chroma-taps-to-1-when-not-scalin.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2917-drm-amd-display-set-chroma-taps-to-1-when-not-scalin.patch | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2917-drm-amd-display-set-chroma-taps-to-1-when-not-scalin.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2917-drm-amd-display-set-chroma-taps-to-1-when-not-scalin.patch new file mode 100644 index 00000000..72add71c --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2917-drm-amd-display-set-chroma-taps-to-1-when-not-scalin.patch @@ -0,0 +1,57 @@ +From d010113d0a37a8188169e76fa3aa6e57eaea0c02 Mon Sep 17 00:00:00 2001 +From: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com> +Date: Mon, 13 Nov 2017 17:03:53 -0500 +Subject: [PATCH 2917/4131] drm/amd/display: set chroma taps to 1 when not + scaling + +Signed-off-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com> +Reviewed-by: Tony Cheng <Tony.Cheng@amd.com> +Acked-by: Harry Wentland <harry.wentland@amd.com> +--- + drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c | 9 +++++++++ + drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp.c | 9 ++++----- + 2 files changed, 13 insertions(+), 5 deletions(-) + +diff --git a/drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c b/drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c +index b5bc915..453ec1c 100644 +--- a/drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c ++++ b/drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c +@@ -897,6 +897,15 @@ bool dcn_validate_bandwidth( + v->override_vta_ps[input_idx] = pipe->plane_res.scl_data.taps.v_taps; + v->override_hta_pschroma[input_idx] = pipe->plane_res.scl_data.taps.h_taps_c; + v->override_vta_pschroma[input_idx] = pipe->plane_res.scl_data.taps.v_taps_c; ++ /* ++ * Spreadsheet doesn't handle taps_c is one properly, ++ * need to force Chroma to always be scaled to pass ++ * bandwidth validation. ++ */ ++ if (v->override_hta_pschroma[input_idx] == 1) ++ v->override_hta_pschroma[input_idx] = 2; ++ if (v->override_vta_pschroma[input_idx] == 1) ++ v->override_vta_pschroma[input_idx] = 2; + v->source_scan[input_idx] = (pipe->plane_state->rotation % 2) ? dcn_bw_vert : dcn_bw_hor; + } + if (v->is_line_buffer_bpp_fixed == dcn_bw_yes) +diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp.c +index 5a95fa0..6db1839 100644 +--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp.c ++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp.c +@@ -159,11 +159,10 @@ bool dpp_get_optimal_number_of_taps( + scl_data->taps.h_taps = 1; + if (IDENTITY_RATIO(scl_data->ratios.vert)) + scl_data->taps.v_taps = 1; +- /* +- * Spreadsheet doesn't handle taps_c is one properly, +- * need to force Chroma to always be scaled to pass +- * bandwidth validation. +- */ ++ if (IDENTITY_RATIO(scl_data->ratios.horz_c)) ++ scl_data->taps.h_taps_c = 1; ++ if (IDENTITY_RATIO(scl_data->ratios.vert_c)) ++ scl_data->taps.v_taps_c = 1; + } + + return true; +-- +2.7.4 + |