aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2498-drm-amd-display-Properly-guard-display_mode_vba-with.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2498-drm-amd-display-Properly-guard-display_mode_vba-with.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2498-drm-amd-display-Properly-guard-display_mode_vba-with.patch111
1 files changed, 111 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2498-drm-amd-display-Properly-guard-display_mode_vba-with.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2498-drm-amd-display-Properly-guard-display_mode_vba-with.patch
new file mode 100644
index 00000000..e606eac6
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2498-drm-amd-display-Properly-guard-display_mode_vba-with.patch
@@ -0,0 +1,111 @@
+From 544832fb1443e964b187d1484aebdbb1bb30a4be Mon Sep 17 00:00:00 2001
+From: Leo Li <sunpeng.li@amd.com>
+Date: Mon, 25 Mar 2019 21:11:07 -0400
+Subject: [PATCH 2498/2940] drm/amd/display: Properly guard display_mode_vba
+ with DCN2
+
+[Why]
+
+display_mode_vba is for DCN2 and up. When building for upstream (DCN1
+enabled only), there will be a build error, since display_mode_vba.c/h
+is stripped out.
+
+Note that building DCN1 only with internal dal-dev is still fine, since
+display_mode_vba.h is not stripped out internally - only in upstream.
+The make directives therefore stll work, and so will any #include's.
+
+[How]
+
+Since subsequent generations require DCN2 enabled anyways, guard the
+makefile directive for display_mode_vba.o with DCN2. Guard any includes
+with DCN2. In addition, guard the entire contents of display_mode_vba.h
+with DCN2, to simulate the file being stripped out in upstream.
+
+A forward declaration for 'struct display_mode_lib' also needs to be
+added in display_mode_lib.h. Previously, display_mode_vba.h contained
+the forward declaration, and display_mode_lib.h in turn included it.
+This won't work if mode_vba.h is stripped out, requring mode_lib.h to do
+so itself.
+
+Signed-off-by: Leo Li <sunpeng.li@amd.com>
+Reviewed-by: Harry Wentland <Harry.Wentland@amd.com>
+Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/dml/Makefile | 7 ++++---
+ drivers/gpu/drm/amd/display/dc/dml/display_mode_lib.h | 4 ++++
+ drivers/gpu/drm/amd/display/dc/dml/display_mode_vba.h | 3 +++
+ 3 files changed, 11 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dml/Makefile b/drivers/gpu/drm/amd/display/dc/dml/Makefile
+index 744fefb67789..0bb7a20675c4 100644
+--- a/drivers/gpu/drm/amd/display/dc/dml/Makefile
++++ b/drivers/gpu/drm/amd/display/dc/dml/Makefile
+@@ -33,8 +33,9 @@ endif
+ dml_ccflags := -mhard-float -msse $(cc_stack_align)
+
+ CFLAGS_display_mode_lib.o := $(dml_ccflags)
+-CFLAGS_display_mode_vba.o := $(dml_ccflags)
++
+ ifdef CONFIG_DRM_AMD_DC_DCN2_0
++CFLAGS_display_mode_vba.o := $(dml_ccflags)
+ CFLAGS_display_mode_vba_20.o := $(dml_ccflags)
+ CFLAGS_display_rq_dlg_calc_20.o := $(dml_ccflags)
+ endif
+@@ -46,10 +47,10 @@ CFLAGS_display_rq_dlg_helpers.o := $(dml_ccflags)
+ CFLAGS_dml_common_defs.o := $(dml_ccflags)
+
+ DML = display_mode_lib.o display_rq_dlg_helpers.o dml1_display_rq_dlg_calc.o \
+- dml_common_defs.o display_mode_vba.o
++ dml_common_defs.o
+
+ ifdef CONFIG_DRM_AMD_DC_DCN2_0
+-DML += dcn20/display_rq_dlg_calc_20.o dcn20/display_mode_vba_20.o
++DML += display_mode_vba.o dcn20/display_rq_dlg_calc_20.o dcn20/display_mode_vba_20.o
+ endif
+
+ AMD_DAL_DML = $(addprefix $(AMDDALPATH)/dc/dml/,$(DML))
+diff --git a/drivers/gpu/drm/amd/display/dc/dml/display_mode_lib.h b/drivers/gpu/drm/amd/display/dc/dml/display_mode_lib.h
+index f2331c09fad8..61541c431110 100644
+--- a/drivers/gpu/drm/amd/display/dc/dml/display_mode_lib.h
++++ b/drivers/gpu/drm/amd/display/dc/dml/display_mode_lib.h
+@@ -27,7 +27,9 @@
+
+
+ #include "dml_common_defs.h"
++#ifdef CONFIG_DRM_AMD_DC_DCN2_0
+ #include "display_mode_vba.h"
++#endif
+
+ enum dml_project {
+ DML_PROJECT_UNDEFINED,
+@@ -37,6 +39,8 @@ enum dml_project {
+ #endif
+ };
+
++struct display_mode_lib;
++
+ struct dml_funcs {
+ void (*rq_dlg_get_dlg_reg)(
+ struct display_mode_lib *mode_lib,
+diff --git a/drivers/gpu/drm/amd/display/dc/dml/display_mode_vba.h b/drivers/gpu/drm/amd/display/dc/dml/display_mode_vba.h
+index 38fc0ab32d7b..4e0183dd634a 100644
+--- a/drivers/gpu/drm/amd/display/dc/dml/display_mode_vba.h
++++ b/drivers/gpu/drm/amd/display/dc/dml/display_mode_vba.h
+@@ -23,6 +23,8 @@
+ *
+ */
+
++#ifdef CONFIG_DRM_AMD_DC_DCN2_0
++
+ #ifndef __DML2_DISPLAY_MODE_VBA_H__
+ #define __DML2_DISPLAY_MODE_VBA_H__
+
+@@ -847,3 +849,4 @@ double CalculateWriteBackDISPCLK(
+ unsigned int WritebackChromaLineBufferWidth);
+
+ #endif /* _DML2_DISPLAY_MODE_VBA_H_ */
++#endif
+--
+2.17.1
+