aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2707-drm-amd-display-Enalbe-blank-data-double-buffer-afte.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2707-drm-amd-display-Enalbe-blank-data-double-buffer-afte.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2707-drm-amd-display-Enalbe-blank-data-double-buffer-afte.patch82
1 files changed, 82 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2707-drm-amd-display-Enalbe-blank-data-double-buffer-afte.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2707-drm-amd-display-Enalbe-blank-data-double-buffer-afte.patch
new file mode 100644
index 00000000..a90c3b5f
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/2707-drm-amd-display-Enalbe-blank-data-double-buffer-afte.patch
@@ -0,0 +1,82 @@
+From 52d0219e106014b3a35000ea3a269f3de73a102d Mon Sep 17 00:00:00 2001
+From: Yongqiang Sun <yongqiang.sun@amd.com>
+Date: Mon, 23 Oct 2017 15:57:52 -0400
+Subject: [PATCH 2707/4131] drm/amd/display: Enalbe blank data double buffer
+ after mpc disconnected.
+
+Signed-off-by: Yongqiang Sun <yongqiang.sun@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>
+---
+ .../drm/amd/display/dc/dcn10/dcn10_timing_generator.c | 19 ++++++++++++++-----
+ .../gpu/drm/amd/display/dc/inc/hw/timing_generator.h | 2 ++
+ 2 files changed, 16 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_timing_generator.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_timing_generator.c
+index c178cc0..5d1edb0 100644
+--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_timing_generator.c
++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_timing_generator.c
+@@ -290,6 +290,16 @@ static void tgn10_program_timing(
+
+ }
+
++static void tgn10_set_blank_data_double_buffer(struct timing_generator *tg, bool enable)
++{
++ struct dcn10_timing_generator *tgn10 = DCN10TG_FROM_TG(tg);
++
++ uint32_t blank_data_double_buffer_enable = enable ? 1 : 0;
++
++ REG_UPDATE(OTG_DOUBLE_BUFFER_CONTROL,
++ OTG_BLANK_DATA_DOUBLE_BUFFER_EN, blank_data_double_buffer_enable);
++}
++
+ /**
+ * unblank_crtc
+ * Call ASIC Control Object to UnBlank CRTC.
+@@ -306,8 +316,7 @@ static void tgn10_unblank_crtc(struct timing_generator *tg)
+ * this check will be removed.
+ */
+ if (vertical_interrupt_enable)
+- REG_UPDATE(OTG_DOUBLE_BUFFER_CONTROL,
+- OTG_BLANK_DATA_DOUBLE_BUFFER_EN, 1);
++ tgn10_set_blank_data_double_buffer(tg, true);
+
+ REG_UPDATE_2(OTG_BLANK_CONTROL,
+ OTG_BLANK_DATA_EN, 0,
+@@ -334,8 +343,7 @@ static void tgn10_blank_crtc(struct timing_generator *tg)
+ OTG_BLANK_DATA_EN, 1,
+ 1, 100000);
+
+- REG_UPDATE(OTG_DOUBLE_BUFFER_CONTROL,
+- OTG_BLANK_DATA_DOUBLE_BUFFER_EN, 0);
++ tgn10_set_blank_data_double_buffer(tg, false);
+ }
+
+ static void tgn10_set_blank(struct timing_generator *tg,
+@@ -1234,7 +1242,8 @@ static const struct timing_generator_funcs dcn10_tg_funcs = {
+ .set_static_screen_control = tgn10_set_static_screen_control,
+ .set_test_pattern = tgn10_set_test_pattern,
+ .program_stereo = tgn10_program_stereo,
+- .is_stereo_left_eye = tgn10_is_stereo_left_eye
++ .is_stereo_left_eye = tgn10_is_stereo_left_eye,
++ .set_blank_data_double_buffer = tgn10_set_blank_data_double_buffer
+ };
+
+ void dcn10_timing_generator_init(struct dcn10_timing_generator *tgn10)
+diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/timing_generator.h b/drivers/gpu/drm/amd/display/dc/inc/hw/timing_generator.h
+index 75f7a01..83f0b1d 100644
+--- a/drivers/gpu/drm/amd/display/dc/inc/hw/timing_generator.h
++++ b/drivers/gpu/drm/amd/display/dc/inc/hw/timing_generator.h
+@@ -182,6 +182,8 @@ struct timing_generator_funcs {
+ void (*program_stereo)(struct timing_generator *tg,
+ const struct dc_crtc_timing *timing, struct crtc_stereo_flags *flags);
+ bool (*is_stereo_left_eye)(struct timing_generator *tg);
++
++ void (*set_blank_data_double_buffer)(struct timing_generator *tg, bool enable);
+ };
+
+ #endif
+--
+2.7.4
+