1#
2# Copyright 2017 Advanced Micro Devices, Inc.
3#
4# Permission is hereby granted, free of charge, to any person obtaining a
5# copy of this software and associated documentation files (the "Software"),
6# to deal in the Software without restriction, including without limitation
7# the rights to use, copy, modify, merge, publish, distribute, sublicense,
8# and/or sell copies of the Software, and to permit persons to whom the
9# Software is furnished to do so, subject to the following conditions:
10#
11# The above copyright notice and this permission notice shall be included in
12# all copies or substantial portions of the Software.
13#
14# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
17# THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
18# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20# OTHER DEALINGS IN THE SOFTWARE.
21#
22#
23# Makefile for the 'clk_mgr' sub-component of DAL.
24# It provides the control and status of HW CLK_MGR pins.
25
26CLK_MGR = clk_mgr.o
27
28AMD_DAL_CLK_MGR = $(addprefix $(AMDDALPATH)/dc/clk_mgr/,$(CLK_MGR))
29
30AMD_DISPLAY_FILES += $(AMD_DAL_CLK_MGR)
31
32
33ifdef CONFIG_DRM_AMD_DC_SI
34###############################################################################
35# DCE 60
36###############################################################################
37CLK_MGR_DCE60 = dce60_clk_mgr.o
38
39AMD_DAL_CLK_MGR_DCE60 = $(addprefix $(AMDDALPATH)/dc/clk_mgr/dce60/,$(CLK_MGR_DCE60))
40
41AMD_DISPLAY_FILES += $(AMD_DAL_CLK_MGR_DCE60)
42endif
43
44###############################################################################
45# DCE 100 and DCE8x
46###############################################################################
47CLK_MGR_DCE100 = dce_clk_mgr.o
48
49AMD_DAL_CLK_MGR_DCE100 = $(addprefix $(AMDDALPATH)/dc/clk_mgr/dce100/,$(CLK_MGR_DCE100))
50
51AMD_DISPLAY_FILES += $(AMD_DAL_CLK_MGR_DCE100)
52
53###############################################################################
54# DCE 100 and DCE8x
55###############################################################################
56CLK_MGR_DCE110 = dce110_clk_mgr.o
57
58AMD_DAL_CLK_MGR_DCE110 = $(addprefix $(AMDDALPATH)/dc/clk_mgr/dce110/,$(CLK_MGR_DCE110))
59
60AMD_DISPLAY_FILES += $(AMD_DAL_CLK_MGR_DCE110)
61###############################################################################
62# DCE 112
63###############################################################################
64CLK_MGR_DCE112 = dce112_clk_mgr.o
65
66AMD_DAL_CLK_MGR_DCE112 = $(addprefix $(AMDDALPATH)/dc/clk_mgr/dce112/,$(CLK_MGR_DCE112))
67
68AMD_DISPLAY_FILES += $(AMD_DAL_CLK_MGR_DCE112)
69###############################################################################
70# DCE 120
71###############################################################################
72CLK_MGR_DCE120 = dce120_clk_mgr.o
73
74AMD_DAL_CLK_MGR_DCE120 = $(addprefix $(AMDDALPATH)/dc/clk_mgr/dce120/,$(CLK_MGR_DCE120))
75
76AMD_DISPLAY_FILES += $(AMD_DAL_CLK_MGR_DCE120)
77ifdef CONFIG_DRM_AMD_DC_DCN
78###############################################################################
79# DCN10
80###############################################################################
81CLK_MGR_DCN10 = rv1_clk_mgr.o rv1_clk_mgr_vbios_smu.o rv2_clk_mgr.o
82
83AMD_DAL_CLK_MGR_DCN10 = $(addprefix $(AMDDALPATH)/dc/clk_mgr/dcn10/,$(CLK_MGR_DCN10))
84
85AMD_DISPLAY_FILES += $(AMD_DAL_CLK_MGR_DCN10)
86
87###############################################################################
88# DCN20
89###############################################################################
90CLK_MGR_DCN20 = dcn20_clk_mgr.o
91
92AMD_DAL_CLK_MGR_DCN20 = $(addprefix $(AMDDALPATH)/dc/clk_mgr/dcn20/,$(CLK_MGR_DCN20))
93
94AMD_DISPLAY_FILES += $(AMD_DAL_CLK_MGR_DCN20)
95
96###############################################################################
97# DCN201
98###############################################################################
99CLK_MGR_DCN201 = dcn201_clk_mgr.o
100
101AMD_DAL_CLK_MGR_DCN201 = $(addprefix $(AMDDALPATH)/dc/clk_mgr/dcn201/,$(CLK_MGR_DCN201))
102
103AMD_DISPLAY_FILES += $(AMD_DAL_CLK_MGR_DCN201)
104
105###############################################################################
106# DCN21
107###############################################################################
108CLK_MGR_DCN21 = rn_clk_mgr.o rn_clk_mgr_vbios_smu.o
109
110# prevent build errors regarding soft-float vs hard-float FP ABI tags
111# this code is currently unused on ppc64, as it applies to Renoir APUs only
112ifdef CONFIG_PPC64
113CFLAGS_$(AMDDALPATH)/dc/clk_mgr/dcn21/rn_clk_mgr.o := $(call cc-option,-mno-gnu-attribute)
114endif
115
116AMD_DAL_CLK_MGR_DCN21 = $(addprefix $(AMDDALPATH)/dc/clk_mgr/dcn21/,$(CLK_MGR_DCN21))
117
118AMD_DISPLAY_FILES += $(AMD_DAL_CLK_MGR_DCN21)
119###############################################################################
120# DCN30
121###############################################################################
122CLK_MGR_DCN30 = dcn30_clk_mgr.o dcn30_clk_mgr_smu_msg.o
123
124# prevent build errors regarding soft-float vs hard-float FP ABI tags
125# this code is currently unused on ppc64, as it applies to VanGogh APUs only
126ifdef CONFIG_PPC64
127CFLAGS_$(AMDDALPATH)/dc/clk_mgr/dcn30/dcn30_clk_mgr.o := $(call cc-option,-mno-gnu-attribute)
128endif
129
130AMD_DAL_CLK_MGR_DCN30 = $(addprefix $(AMDDALPATH)/dc/clk_mgr/dcn30/,$(CLK_MGR_DCN30))
131
132AMD_DISPLAY_FILES += $(AMD_DAL_CLK_MGR_DCN30)
133###############################################################################
134# DCN301
135###############################################################################
136CLK_MGR_DCN301 = vg_clk_mgr.o dcn301_smu.o
137
138# prevent build errors regarding soft-float vs hard-float FP ABI tags
139# this code is currently unused on ppc64, as it applies to VanGogh APUs only
140ifdef CONFIG_PPC64
141CFLAGS_$(AMDDALPATH)/dc/clk_mgr/dcn301/vg_clk_mgr.o := $(call cc-option,-mno-gnu-attribute)
142endif
143
144AMD_DAL_CLK_MGR_DCN301 = $(addprefix $(AMDDALPATH)/dc/clk_mgr/dcn301/,$(CLK_MGR_DCN301))
145
146AMD_DISPLAY_FILES += $(AMD_DAL_CLK_MGR_DCN301)
147
148###############################################################################
149# DCN31
150###############################################################################
151CLK_MGR_DCN31 = dcn31_smu.o dcn31_clk_mgr.o
152
153AMD_DAL_CLK_MGR_DCN31 = $(addprefix $(AMDDALPATH)/dc/clk_mgr/dcn31/,$(CLK_MGR_DCN31))
154
155AMD_DISPLAY_FILES += $(AMD_DAL_CLK_MGR_DCN31)
156
157###############################################################################
158# DCN315
159###############################################################################
160CLK_MGR_DCN315 = dcn315_smu.o dcn315_clk_mgr.o
161
162AMD_DAL_CLK_MGR_DCN315 = $(addprefix $(AMDDALPATH)/dc/clk_mgr/dcn315/,$(CLK_MGR_DCN315))
163
164AMD_DISPLAY_FILES += $(AMD_DAL_CLK_MGR_DCN315)
165
166###############################################################################
167# DCN316
168###############################################################################
169CLK_MGR_DCN316 = dcn316_smu.o dcn316_clk_mgr.o
170
171AMD_DAL_CLK_MGR_DCN316 = $(addprefix $(AMDDALPATH)/dc/clk_mgr/dcn316/,$(CLK_MGR_DCN316))
172
173AMD_DISPLAY_FILES += $(AMD_DAL_CLK_MGR_DCN316)
174
175###############################################################################
176# DCN32
177###############################################################################
178CLK_MGR_DCN32 = dcn32_clk_mgr.o dcn32_clk_mgr_smu_msg.o
179
180AMD_DAL_CLK_MGR_DCN32 = $(addprefix $(AMDDALPATH)/dc/clk_mgr/dcn32/,$(CLK_MGR_DCN32))
181
182ifdef CONFIG_X86
183CFLAGS_$(AMDDALPATH)/dc/clk_mgr/dcn32/dcn32_clk_mgr.o := -mhard-float -msse
184endif
185
186ifdef CONFIG_PPC64
187CFLAGS_$(AMDDALPATH)/dc/clk_mgr/dcn32/dcn32_clk_mgr.o := -mhard-float -maltivec
188endif
189
190ifdef CONFIG_CC_IS_GCC
191ifeq ($(call cc-ifversion, -lt, 0701, y), y)
192IS_OLD_GCC = 1
193endif
194endif
195
196ifdef CONFIG_X86
197ifdef IS_OLD_GCC
198# Stack alignment mismatch, proceed with caution.
199# GCC < 7.1 cannot compile code using `double` and -mpreferred-stack-boundary=3
200# (8B stack alignment).
201CFLAGS_$(AMDDALPATH)/dc/clk_mgr/dcn32/dcn32_clk_mgr.o := -mpreferred-stack-boundary=4
202else
203CFLAGS_$(AMDDALPATH)/dc/clk_mgr/dcn32/dcn32_clk_mgr.o := -msse2
204endif
205endif
206
207AMD_DISPLAY_FILES += $(AMD_DAL_CLK_MGR_DCN32)
208
209endif
210