diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/4943-drm-amd-display-properly-turn-autocal-off.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/4943-drm-amd-display-properly-turn-autocal-off.patch | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/4943-drm-amd-display-properly-turn-autocal-off.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/4943-drm-amd-display-properly-turn-autocal-off.patch new file mode 100644 index 00000000..cba005f0 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/4943-drm-amd-display-properly-turn-autocal-off.patch @@ -0,0 +1,54 @@ +From 3fc2bd54b9225f4fc156390700ced367144e3be4 Mon Sep 17 00:00:00 2001 +From: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com> +Date: Wed, 4 Jul 2018 11:31:40 -0400 +Subject: [PATCH 4943/5725] drm/amd/display: properly turn autocal off + +[why] +Currently we do not turn off autocal when scaling is in bypass. +In case vbios enalbes auto scale and our first mode set is a non-scaled +mode we have autocal on causing screen corruption. + +[how] +moves turning autocal off to be first thing done during scaler setup + +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> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c +index f862fd1..f0cc975 100644 +--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c ++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_dpp_dscl.c +@@ -655,6 +655,12 @@ void dpp1_dscl_set_scaler_manual_scale( + + dpp->scl_data = *scl_data; + ++ /* Autocal off */ ++ REG_SET_3(DSCL_AUTOCAL, 0, ++ AUTOCAL_MODE, AUTOCAL_MODE_OFF, ++ AUTOCAL_NUM_PIPE, 0, ++ AUTOCAL_PIPE_ID, 0); ++ + /* Recout */ + dpp1_dscl_set_recout(dpp, &scl_data->recout); + +@@ -678,12 +684,6 @@ void dpp1_dscl_set_scaler_manual_scale( + if (dscl_mode == DSCL_MODE_SCALING_444_BYPASS) + return; + +- /* Autocal off */ +- REG_SET_3(DSCL_AUTOCAL, 0, +- AUTOCAL_MODE, AUTOCAL_MODE_OFF, +- AUTOCAL_NUM_PIPE, 0, +- AUTOCAL_PIPE_ID, 0); +- + /* Black offsets */ + if (ycbcr) + REG_SET_2(SCL_BLACK_OFFSET, 0, +-- +2.7.4 + |