aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1028-drm-amd-display-program-fbc-for-scatter-gather.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1028-drm-amd-display-program-fbc-for-scatter-gather.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1028-drm-amd-display-program-fbc-for-scatter-gather.patch55
1 files changed, 55 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1028-drm-amd-display-program-fbc-for-scatter-gather.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1028-drm-amd-display-program-fbc-for-scatter-gather.patch
new file mode 100644
index 00000000..7bcc2d6d
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1028-drm-amd-display-program-fbc-for-scatter-gather.patch
@@ -0,0 +1,55 @@
+From 5a411198e5d73cc6c690179c860ce699ff591b39 Mon Sep 17 00:00:00 2001
+From: Roman Li <Roman.Li@amd.com>
+Date: Fri, 25 Aug 2017 16:44:20 -0400
+Subject: [PATCH 1028/4131] drm/amd/display: program fbc for scatter/gather
+
+Fixing screen flickering when FBC enabled on Stoney
+
+Change-Id: I14bb589ecc537b02ac62c710c852f3886156d15c
+Signed-off-by: Roman Li <Roman.Li@amd.com>
+Reviewed-by: Harry Wentland <Harry.Wentland@amd.com>
+---
+ .../gpu/drm/amd/display/dc/dce110/dce110_compressor.c | 18 ++++++++++++++++--
+ 1 file changed, 16 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_compressor.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_compressor.c
+index 2e97e57..f82c269 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_compressor.c
++++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_compressor.c
+@@ -189,7 +189,7 @@ void dce110_compressor_enable_fbc(
+ (!dce110_compressor_is_fbc_enabled_in_hw(compressor, NULL))) {
+
+ uint32_t addr;
+- uint32_t value;
++ uint32_t value, misc_value;
+
+
+ addr = mmFBC_CNTL;
+@@ -206,9 +206,23 @@ void dce110_compressor_enable_fbc(
+ compressor->attached_inst = params->inst;
+ cp110->offsets = reg_offsets[params->inst];
+
+- /*Toggle it as there is bug in HW */
++ /* Toggle it as there is bug in HW */
+ set_reg_field_value(value, 0, FBC_CNTL, FBC_GRPH_COMP_EN);
+ dm_write_reg(compressor->ctx, addr, value);
++
++ /* FBC usage with scatter & gather for dce110 */
++ misc_value = dm_read_reg(compressor->ctx, mmFBC_MISC);
++
++ set_reg_field_value(misc_value, 1,
++ FBC_MISC, FBC_INVALIDATE_ON_ERROR);
++ set_reg_field_value(misc_value, 1,
++ FBC_MISC, FBC_DECOMPRESS_ERROR_CLEAR);
++ set_reg_field_value(misc_value, 0x14,
++ FBC_MISC, FBC_SLOW_REQ_INTERVAL);
++
++ dm_write_reg(compressor->ctx, mmFBC_MISC, misc_value);
++
++ /* Enable FBC */
+ set_reg_field_value(value, 1, FBC_CNTL, FBC_GRPH_COMP_EN);
+ dm_write_reg(compressor->ctx, addr, value);
+
+--
+2.7.4
+