diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3840-drm-amd-display-Set-number-of-pipes-to-1-if-the-seco.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3840-drm-amd-display-Set-number-of-pipes-to-1-if-the-seco.patch | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3840-drm-amd-display-Set-number-of-pipes-to-1-if-the-seco.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3840-drm-amd-display-Set-number-of-pipes-to-1-if-the-seco.patch new file mode 100644 index 00000000..d6a235c8 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3840-drm-amd-display-Set-number-of-pipes-to-1-if-the-seco.patch @@ -0,0 +1,41 @@ +From 082ff1684f993a8d2ee63ed18dbd9412887c2952 Mon Sep 17 00:00:00 2001 +From: Nikola Cornij <nikola.cornij@amd.com> +Date: Wed, 28 Aug 2019 18:30:43 -0400 +Subject: [PATCH 3840/4256] drm/amd/display: Set number of pipes to 1 if the + second pipe was disabled + +[why] +Some ODM-related register settings are inconsistently updated by VBIOS, causing +the state in DC to be invalid, which would then end up crashing in certain +use-cases (such as disable/enable device). + +[how] +Check the enabled status of the second pipe when determining the number of +OPTC sources. If the second pipe is disabled, set the number of sources to 1 +regardless of other settings (that may not be updated correctly). + +Signed-off-by: Nikola Cornij <nikola.cornij@amd.com> +Reviewed-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com> +Acked-by: Leo Li <sunpeng.li@amd.com> +--- + drivers/gpu/drm/amd/display/dc/dcn20/dcn20_optc.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_optc.c b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_optc.c +index 2137e2be2140..dda90995ba93 100644 +--- a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_optc.c ++++ b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_optc.c +@@ -287,6 +287,10 @@ void optc2_get_optc_source(struct timing_generator *optc, + *num_of_src_opp = 2; + else + *num_of_src_opp = 1; ++ ++ /* Work around VBIOS not updating OPTC_NUM_OF_INPUT_SEGMENT */ ++ if (*src_opp_id_1 == 0xf) ++ *num_of_src_opp = 1; + } + + void optc2_set_dwb_source(struct timing_generator *optc, +-- +2.17.1 + |