Commit 776c1f56 authored by Leo Li's avatar Leo Li Committed by Alex Deucher

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: default avatarLeo Li <sunpeng.li@amd.com>
Reviewed-by: default avatarHarry Wentland <Harry.Wentland@amd.com>
Acked-by: default avatarBhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 10b3aa5e
...@@ -33,8 +33,9 @@ endif ...@@ -33,8 +33,9 @@ endif
dml_ccflags := -mhard-float -msse $(cc_stack_align) dml_ccflags := -mhard-float -msse $(cc_stack_align)
CFLAGS_display_mode_lib.o := $(dml_ccflags) CFLAGS_display_mode_lib.o := $(dml_ccflags)
CFLAGS_display_mode_vba.o := $(dml_ccflags)
ifdef CONFIG_DRM_AMD_DC_DCN2_0 ifdef CONFIG_DRM_AMD_DC_DCN2_0
CFLAGS_display_mode_vba.o := $(dml_ccflags)
CFLAGS_display_mode_vba_20.o := $(dml_ccflags) CFLAGS_display_mode_vba_20.o := $(dml_ccflags)
CFLAGS_display_rq_dlg_calc_20.o := $(dml_ccflags) CFLAGS_display_rq_dlg_calc_20.o := $(dml_ccflags)
endif endif
...@@ -46,10 +47,10 @@ CFLAGS_display_rq_dlg_helpers.o := $(dml_ccflags) ...@@ -46,10 +47,10 @@ CFLAGS_display_rq_dlg_helpers.o := $(dml_ccflags)
CFLAGS_dml_common_defs.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 = 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 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 endif
AMD_DAL_DML = $(addprefix $(AMDDALPATH)/dc/dml/,$(DML)) AMD_DAL_DML = $(addprefix $(AMDDALPATH)/dc/dml/,$(DML))
......
...@@ -27,7 +27,9 @@ ...@@ -27,7 +27,9 @@
#include "dml_common_defs.h" #include "dml_common_defs.h"
#ifdef CONFIG_DRM_AMD_DC_DCN2_0
#include "display_mode_vba.h" #include "display_mode_vba.h"
#endif
enum dml_project { enum dml_project {
DML_PROJECT_UNDEFINED, DML_PROJECT_UNDEFINED,
...@@ -37,6 +39,8 @@ enum dml_project { ...@@ -37,6 +39,8 @@ enum dml_project {
#endif #endif
}; };
struct display_mode_lib;
struct dml_funcs { struct dml_funcs {
void (*rq_dlg_get_dlg_reg)( void (*rq_dlg_get_dlg_reg)(
struct display_mode_lib *mode_lib, struct display_mode_lib *mode_lib,
......
...@@ -23,6 +23,8 @@ ...@@ -23,6 +23,8 @@
* *
*/ */
#ifdef CONFIG_DRM_AMD_DC_DCN2_0
#ifndef __DML2_DISPLAY_MODE_VBA_H__ #ifndef __DML2_DISPLAY_MODE_VBA_H__
#define __DML2_DISPLAY_MODE_VBA_H__ #define __DML2_DISPLAY_MODE_VBA_H__
...@@ -847,3 +849,4 @@ double CalculateWriteBackDISPCLK( ...@@ -847,3 +849,4 @@ double CalculateWriteBackDISPCLK(
unsigned int WritebackChromaLineBufferWidth); unsigned int WritebackChromaLineBufferWidth);
#endif /* _DML2_DISPLAY_MODE_VBA_H_ */ #endif /* _DML2_DISPLAY_MODE_VBA_H_ */
#endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment