aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/0535-drm-amd-display-handle-max_vstartup-larger-than-vbla.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/0535-drm-amd-display-handle-max_vstartup-larger-than-vbla.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.19.8/0535-drm-amd-display-handle-max_vstartup-larger-than-vbla.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/0535-drm-amd-display-handle-max_vstartup-larger-than-vbla.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/0535-drm-amd-display-handle-max_vstartup-larger-than-vbla.patch
new file mode 100644
index 00000000..d96dfd52
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/0535-drm-amd-display-handle-max_vstartup-larger-than-vbla.patch
@@ -0,0 +1,49 @@
+From 2278c5926469a988509c3376f82250282b5eb99f Mon Sep 17 00:00:00 2001
+From: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
+Date: Fri, 14 Sep 2018 15:32:33 -0400
+Subject: [PATCH 0535/2940] drm/amd/display: handle max_vstartup larger than
+ vblank_end
+
+When vstartup is larger than vblank end we need to set v_fp2
+to allow for this early start
+
+Signed-off-by: Dmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
+Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
+Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/dcn10/dcn10_optc.c | 11 +++++------
+ 1 file changed, 5 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_optc.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_optc.c
+index 54626682bab2..47f80e0e8be8 100644
+--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_optc.c
++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_optc.c
+@@ -274,10 +274,12 @@ void optc1_program_timing(
+ * program the reg for interrupt postition.
+ */
+ vertical_line_start = asic_blank_end - optc->dlg_otg_param.vstartup_start + 1;
+- if (vertical_line_start < 0) {
+- ASSERT(0);
++ v_fp2 = 0;
++ if (vertical_line_start < 0)
++ v_fp2 = -vertical_line_start;
++ if (vertical_line_start < 0)
+ vertical_line_start = 0;
+- }
++
+ REG_SET(OTG_VERTICAL_INTERRUPT2_POSITION, 0,
+ OTG_VERTICAL_INTERRUPT2_LINE_START, vertical_line_start);
+
+@@ -296,9 +298,6 @@ void optc1_program_timing(
+ if (patched_crtc_timing.flags.INTERLACE == 1)
+ field_num = 1;
+ }
+- v_fp2 = 0;
+- if (optc->dlg_otg_param.vstartup_start > asic_blank_end)
+- v_fp2 = optc->dlg_otg_param.vstartup_start > asic_blank_end;
+
+ /* Interlace */
+ if (patched_crtc_timing.flags.INTERLACE == 1) {
+--
+2.17.1
+