1 /*
2  * Copyright 2019 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 #ifndef __SMU_TYPES_H__
24 #define __SMU_TYPES_H__
25 
26 #define SMU_MESSAGE_TYPES			      \
27        __SMU_DUMMY_MAP(TestMessage),		      \
28        __SMU_DUMMY_MAP(GetSmuVersion),                \
29        __SMU_DUMMY_MAP(GetDriverIfVersion),           \
30        __SMU_DUMMY_MAP(SetAllowedFeaturesMaskLow),    \
31        __SMU_DUMMY_MAP(SetAllowedFeaturesMaskHigh),   \
32        __SMU_DUMMY_MAP(EnableAllSmuFeatures),         \
33        __SMU_DUMMY_MAP(DisableAllSmuFeatures),        \
34        __SMU_DUMMY_MAP(EnableSmuFeaturesLow),         \
35        __SMU_DUMMY_MAP(EnableSmuFeaturesHigh),        \
36        __SMU_DUMMY_MAP(DisableSmuFeaturesLow),        \
37        __SMU_DUMMY_MAP(DisableSmuFeaturesHigh),       \
38        __SMU_DUMMY_MAP(GetEnabledSmuFeatures),	      \
39        __SMU_DUMMY_MAP(GetEnabledSmuFeaturesLow),     \
40        __SMU_DUMMY_MAP(GetEnabledSmuFeaturesHigh),    \
41        __SMU_DUMMY_MAP(SetWorkloadMask),              \
42        __SMU_DUMMY_MAP(SetPptLimit),                  \
43        __SMU_DUMMY_MAP(SetDriverDramAddrHigh),        \
44        __SMU_DUMMY_MAP(SetDriverDramAddrLow),         \
45        __SMU_DUMMY_MAP(SetToolsDramAddrHigh),         \
46        __SMU_DUMMY_MAP(SetToolsDramAddrLow),          \
47        __SMU_DUMMY_MAP(TransferTableSmu2Dram),        \
48        __SMU_DUMMY_MAP(TransferTableDram2Smu),        \
49        __SMU_DUMMY_MAP(UseDefaultPPTable),            \
50        __SMU_DUMMY_MAP(UseBackupPPTable),             \
51        __SMU_DUMMY_MAP(RunBtc),                       \
52        __SMU_DUMMY_MAP(RequestI2CBus),                \
53        __SMU_DUMMY_MAP(ReleaseI2CBus),                \
54        __SMU_DUMMY_MAP(SetFloorSocVoltage),           \
55        __SMU_DUMMY_MAP(SoftReset),                    \
56        __SMU_DUMMY_MAP(StartBacoMonitor),             \
57        __SMU_DUMMY_MAP(CancelBacoMonitor),            \
58        __SMU_DUMMY_MAP(EnterBaco),                    \
59        __SMU_DUMMY_MAP(SetSoftMinByFreq),             \
60        __SMU_DUMMY_MAP(SetSoftMaxByFreq),             \
61        __SMU_DUMMY_MAP(SetHardMinByFreq),             \
62        __SMU_DUMMY_MAP(SetHardMaxByFreq),             \
63        __SMU_DUMMY_MAP(GetMinDpmFreq),                \
64        __SMU_DUMMY_MAP(GetMaxDpmFreq),                \
65        __SMU_DUMMY_MAP(GetDpmFreqByIndex),            \
66        __SMU_DUMMY_MAP(GetDpmClockFreq),              \
67        __SMU_DUMMY_MAP(GetSsVoltageByDpm),            \
68        __SMU_DUMMY_MAP(SetMemoryChannelConfig),       \
69        __SMU_DUMMY_MAP(SetGeminiMode),                \
70        __SMU_DUMMY_MAP(SetGeminiApertureHigh),        \
71        __SMU_DUMMY_MAP(SetGeminiApertureLow),         \
72        __SMU_DUMMY_MAP(SetMinLinkDpmByIndex),         \
73        __SMU_DUMMY_MAP(OverridePcieParameters),       \
74        __SMU_DUMMY_MAP(OverDriveSetPercentage),       \
75        __SMU_DUMMY_MAP(SetMinDeepSleepDcefclk),       \
76        __SMU_DUMMY_MAP(ReenableAcDcInterrupt),        \
77        __SMU_DUMMY_MAP(AllowIHHostInterrupt),        \
78        __SMU_DUMMY_MAP(NotifyPowerSource),            \
79        __SMU_DUMMY_MAP(SetUclkFastSwitch),            \
80        __SMU_DUMMY_MAP(SetUclkDownHyst),              \
81        __SMU_DUMMY_MAP(GfxDeviceDriverReset),         \
82        __SMU_DUMMY_MAP(GetCurrentRpm),                \
83        __SMU_DUMMY_MAP(SetVideoFps),                  \
84        __SMU_DUMMY_MAP(SetTjMax),                     \
85        __SMU_DUMMY_MAP(SetFanTemperatureTarget),      \
86        __SMU_DUMMY_MAP(PrepareMp1ForUnload),          \
87        __SMU_DUMMY_MAP(GetCTFLimit),                  \
88        __SMU_DUMMY_MAP(DramLogSetDramAddrHigh),       \
89        __SMU_DUMMY_MAP(DramLogSetDramAddrLow),        \
90        __SMU_DUMMY_MAP(DramLogSetDramSize),           \
91        __SMU_DUMMY_MAP(SetFanMaxRpm),                 \
92        __SMU_DUMMY_MAP(SetFanMinPwm),                 \
93        __SMU_DUMMY_MAP(ConfigureGfxDidt),             \
94        __SMU_DUMMY_MAP(NumOfDisplays),                \
95        __SMU_DUMMY_MAP(RemoveMargins),                \
96        __SMU_DUMMY_MAP(ReadSerialNumTop32),           \
97        __SMU_DUMMY_MAP(ReadSerialNumBottom32),        \
98        __SMU_DUMMY_MAP(SetSystemVirtualDramAddrHigh), \
99        __SMU_DUMMY_MAP(SetSystemVirtualDramAddrLow),  \
100        __SMU_DUMMY_MAP(WaflTest),                     \
101        __SMU_DUMMY_MAP(SetFclkGfxClkRatio),           \
102        __SMU_DUMMY_MAP(AllowGfxOff),                  \
103        __SMU_DUMMY_MAP(DisallowGfxOff),               \
104        __SMU_DUMMY_MAP(GetPptLimit),                  \
105        __SMU_DUMMY_MAP(GetDcModeMaxDpmFreq),          \
106        __SMU_DUMMY_MAP(GetDebugData),                 \
107        __SMU_DUMMY_MAP(SetXgmiMode),                  \
108        __SMU_DUMMY_MAP(RunAfllBtc),                   \
109        __SMU_DUMMY_MAP(ExitBaco),                     \
110        __SMU_DUMMY_MAP(PrepareMp1ForReset),           \
111        __SMU_DUMMY_MAP(PrepareMp1ForShutdown),        \
112        __SMU_DUMMY_MAP(SetMGpuFanBoostLimitRpm),      \
113        __SMU_DUMMY_MAP(GetAVFSVoltageByDpm),          \
114        __SMU_DUMMY_MAP(PowerUpVcn),                   \
115        __SMU_DUMMY_MAP(PowerDownVcn),                 \
116        __SMU_DUMMY_MAP(PowerUpJpeg),                  \
117        __SMU_DUMMY_MAP(PowerDownJpeg),                \
118        __SMU_DUMMY_MAP(PowerUpJpeg0),                 \
119        __SMU_DUMMY_MAP(PowerDownJpeg0),               \
120        __SMU_DUMMY_MAP(PowerUpJpeg1),                 \
121        __SMU_DUMMY_MAP(PowerDownJpeg1),               \
122        __SMU_DUMMY_MAP(BacoAudioD3PME),               \
123        __SMU_DUMMY_MAP(ArmD3),                        \
124        __SMU_DUMMY_MAP(RunDcBtc),                     \
125        __SMU_DUMMY_MAP(RunGfxDcBtc),                  \
126        __SMU_DUMMY_MAP(RunSocDcBtc),                  \
127        __SMU_DUMMY_MAP(SetMemoryChannelEnable),       \
128        __SMU_DUMMY_MAP(SetDfSwitchType),              \
129        __SMU_DUMMY_MAP(GetVoltageByDpm),              \
130        __SMU_DUMMY_MAP(GetVoltageByDpmOverdrive),     \
131        __SMU_DUMMY_MAP(PowerUpVcn0),                  \
132        __SMU_DUMMY_MAP(PowerDownVcn0),                \
133        __SMU_DUMMY_MAP(PowerUpVcn1),                  \
134        __SMU_DUMMY_MAP(PowerDownVcn1),                \
135        __SMU_DUMMY_MAP(PowerUpGfx),                   \
136        __SMU_DUMMY_MAP(PowerDownIspByTile),           \
137        __SMU_DUMMY_MAP(PowerUpIspByTile),             \
138        __SMU_DUMMY_MAP(PowerDownSdma),                \
139 	__SMU_DUMMY_MAP(PowerUpSdma),                 \
140 	__SMU_DUMMY_MAP(SetHardMinIspclkByFreq),      \
141 	__SMU_DUMMY_MAP(SetHardMinVcn),               \
142        __SMU_DUMMY_MAP(SetHardMinVcn0),               \
143        __SMU_DUMMY_MAP(SetHardMinVcn1),               \
144 	__SMU_DUMMY_MAP(SetAllowFclkSwitch),          \
145 	__SMU_DUMMY_MAP(SetMinVideoGfxclkFreq),       \
146 	__SMU_DUMMY_MAP(ActiveProcessNotify),         \
147 	__SMU_DUMMY_MAP(SetCustomPolicy),             \
148 	__SMU_DUMMY_MAP(QueryPowerLimit),             \
149 	__SMU_DUMMY_MAP(SetGfxclkOverdriveByFreqVid), \
150 	__SMU_DUMMY_MAP(SetHardMinDcfclkByFreq),      \
151 	__SMU_DUMMY_MAP(SetHardMinSocclkByFreq),      \
152 	__SMU_DUMMY_MAP(ControlIgpuATS),              \
153 	__SMU_DUMMY_MAP(SetMinVideoFclkFreq),         \
154 	__SMU_DUMMY_MAP(SetMinDeepSleepDcfclk),       \
155 	__SMU_DUMMY_MAP(ForcePowerDownGfx),           \
156 	__SMU_DUMMY_MAP(SetPhyclkVoltageByFreq),      \
157 	__SMU_DUMMY_MAP(SetDppclkVoltageByFreq),      \
158 	__SMU_DUMMY_MAP(SetSoftMinVcn),               \
159        __SMU_DUMMY_MAP(SetSoftMinVcn0),              \
160        __SMU_DUMMY_MAP(SetSoftMinVcn1),              \
161 	__SMU_DUMMY_MAP(EnablePostCode),              \
162 	__SMU_DUMMY_MAP(GetGfxclkFrequency),          \
163 	__SMU_DUMMY_MAP(GetFclkFrequency),            \
164 	__SMU_DUMMY_MAP(GetMinGfxclkFrequency),       \
165 	__SMU_DUMMY_MAP(GetMaxGfxclkFrequency),       \
166 	__SMU_DUMMY_MAP(SetGfxCGPG),                  \
167 	__SMU_DUMMY_MAP(SetSoftMaxGfxClk),            \
168 	__SMU_DUMMY_MAP(SetHardMinGfxClk),            \
169 	__SMU_DUMMY_MAP(SetSoftMaxSocclkByFreq),      \
170 	__SMU_DUMMY_MAP(SetSoftMaxFclkByFreq),        \
171 	__SMU_DUMMY_MAP(SetSoftMaxVcn),               \
172        __SMU_DUMMY_MAP(SetSoftMaxVcn0),              \
173        __SMU_DUMMY_MAP(SetSoftMaxVcn1),              \
174 	__SMU_DUMMY_MAP(PowerGateMmHub),              \
175 	__SMU_DUMMY_MAP(UpdatePmeRestore),            \
176 	__SMU_DUMMY_MAP(GpuChangeState),              \
177 	__SMU_DUMMY_MAP(SetPowerLimitPercentage),     \
178 	__SMU_DUMMY_MAP(ForceGfxContentSave),         \
179 	__SMU_DUMMY_MAP(EnableTmdp48MHzRefclkPwrDown),\
180 	__SMU_DUMMY_MAP(PowerGateAtHub),              \
181 	__SMU_DUMMY_MAP(SetSoftMinJpeg),              \
182 	__SMU_DUMMY_MAP(SetHardMinFclkByFreq),        \
183 	__SMU_DUMMY_MAP(DFCstateControl), \
184 	__SMU_DUMMY_MAP(GmiPwrDnControl), \
185 	__SMU_DUMMY_MAP(spare), \
186 	__SMU_DUMMY_MAP(SetNumBadHbmPagesRetired), \
187 	__SMU_DUMMY_MAP(GetGmiPwrDnHyst), \
188 	__SMU_DUMMY_MAP(SetGmiPwrDnHyst), \
189 	__SMU_DUMMY_MAP(EnterGfxoff), \
190 	__SMU_DUMMY_MAP(ExitGfxoff), \
191 	__SMU_DUMMY_MAP(SetExecuteDMATest), \
192 	__SMU_DUMMY_MAP(DAL_DISABLE_DUMMY_PSTATE_CHANGE), \
193 	__SMU_DUMMY_MAP(DAL_ENABLE_DUMMY_PSTATE_CHANGE), \
194 	__SMU_DUMMY_MAP(SET_DRIVER_DUMMY_TABLE_DRAM_ADDR_HIGH), \
195 	__SMU_DUMMY_MAP(SET_DRIVER_DUMMY_TABLE_DRAM_ADDR_LOW), \
196 	__SMU_DUMMY_MAP(GET_UMC_FW_WA), \
197 	__SMU_DUMMY_MAP(Mode1Reset), \
198 	__SMU_DUMMY_MAP(RlcPowerNotify),                 \
199 	__SMU_DUMMY_MAP(SetHardMinIspiclkByFreq),        \
200 	__SMU_DUMMY_MAP(SetHardMinIspxclkByFreq),        \
201 	__SMU_DUMMY_MAP(SetSoftMinSocclkByFreq),         \
202 	__SMU_DUMMY_MAP(PowerUpCvip),                    \
203 	__SMU_DUMMY_MAP(PowerDownCvip),                  \
204        __SMU_DUMMY_MAP(EnableGfxOff),                   \
205        __SMU_DUMMY_MAP(DisableGfxOff),                   \
206        __SMU_DUMMY_MAP(SetSoftMinGfxclk),               \
207        __SMU_DUMMY_MAP(SetSoftMinFclk),                 \
208        __SMU_DUMMY_MAP(GetThermalLimit),                \
209        __SMU_DUMMY_MAP(GetCurrentTemperature),          \
210        __SMU_DUMMY_MAP(GetCurrentPower),                \
211        __SMU_DUMMY_MAP(GetCurrentVoltage),              \
212        __SMU_DUMMY_MAP(GetCurrentCurrent),              \
213        __SMU_DUMMY_MAP(GetAverageCpuActivity),          \
214        __SMU_DUMMY_MAP(GetAverageGfxActivity),          \
215        __SMU_DUMMY_MAP(GetAveragePower),                \
216        __SMU_DUMMY_MAP(GetAverageTemperature),          \
217        __SMU_DUMMY_MAP(SetAveragePowerTimeConstant),        \
218        __SMU_DUMMY_MAP(SetAverageActivityTimeConstant),     \
219        __SMU_DUMMY_MAP(SetAverageTemperatureTimeConstant),  \
220        __SMU_DUMMY_MAP(SetMitigationEndHysteresis),         \
221        __SMU_DUMMY_MAP(GetCurrentFreq),                     \
222        __SMU_DUMMY_MAP(SetReducedPptLimit),                 \
223        __SMU_DUMMY_MAP(SetReducedThermalLimit),             \
224        __SMU_DUMMY_MAP(DramLogSetDramAddr),                 \
225        __SMU_DUMMY_MAP(StartDramLogging),                   \
226        __SMU_DUMMY_MAP(StopDramLogging),                    \
227        __SMU_DUMMY_MAP(SetSoftMinCclk),                     \
228        __SMU_DUMMY_MAP(SetSoftMaxCclk),                     \
229 	__SMU_DUMMY_MAP(SetGpoFeaturePMask),             \
230 	__SMU_DUMMY_MAP(DisallowGpo),                    \
231 	__SMU_DUMMY_MAP(Enable2ndUSB20Port),             \
232 	__SMU_DUMMY_MAP(RequestActiveWgp),               \
233        __SMU_DUMMY_MAP(SetFastPPTLimit),                \
234        __SMU_DUMMY_MAP(SetSlowPPTLimit),                \
235        __SMU_DUMMY_MAP(GetFastPPTLimit),                \
236        __SMU_DUMMY_MAP(GetSlowPPTLimit),                \
237 	__SMU_DUMMY_MAP(EnableDeterminism),		\
238 	__SMU_DUMMY_MAP(DisableDeterminism),		\
239 	__SMU_DUMMY_MAP(SetUclkDpmMode),		\
240 	__SMU_DUMMY_MAP(LightSBR),			\
241 	__SMU_DUMMY_MAP(GfxDriverResetRecovery),	\
242 	__SMU_DUMMY_MAP(BoardPowerCalibration),   \
243 	__SMU_DUMMY_MAP(RequestGfxclk),           \
244 	__SMU_DUMMY_MAP(ForceGfxVid),             \
245 	__SMU_DUMMY_MAP(Spare0),                  \
246 	__SMU_DUMMY_MAP(UnforceGfxVid),           \
247 	__SMU_DUMMY_MAP(HeavySBR),			\
248 	__SMU_DUMMY_MAP(SetBadHBMPagesRetiredFlagsPerChannel), \
249 	__SMU_DUMMY_MAP(EnableGfxImu), \
250 	__SMU_DUMMY_MAP(DriverMode2Reset), \
251 	__SMU_DUMMY_MAP(GetGfxOffStatus),		 \
252 	__SMU_DUMMY_MAP(GetGfxOffEntryCount),		 \
253 	__SMU_DUMMY_MAP(LogGfxOffResidency),			\
254 	__SMU_DUMMY_MAP(SetNumBadMemoryPagesRetired),		\
255 	__SMU_DUMMY_MAP(SetBadMemoryPagesRetiredFlagsPerChannel), \
256 	__SMU_DUMMY_MAP(AllowGpo),	\
257 	__SMU_DUMMY_MAP(Mode2Reset),	\
258 	__SMU_DUMMY_MAP(RequestI2cTransaction), \
259 	__SMU_DUMMY_MAP(GetMetricsTable), \
260 	__SMU_DUMMY_MAP(DALNotPresent), \
261 	__SMU_DUMMY_MAP(ClearMcaOnRead),	\
262 	__SMU_DUMMY_MAP(QueryValidMcaCount),	\
263 	__SMU_DUMMY_MAP(QueryValidMcaCeCount),	\
264 	__SMU_DUMMY_MAP(McaBankDumpDW),		\
265 	__SMU_DUMMY_MAP(McaBankCeDumpDW),	\
266 	__SMU_DUMMY_MAP(SelectPLPDMode),	\
267 	__SMU_DUMMY_MAP(PowerUpVpe),	\
268 	__SMU_DUMMY_MAP(PowerDownVpe), \
269 	__SMU_DUMMY_MAP(PowerUpUmsch),	\
270 	__SMU_DUMMY_MAP(PowerDownUmsch),	\
271 	__SMU_DUMMY_MAP(SetSoftMaxVpe),	\
272 	__SMU_DUMMY_MAP(SetSoftMinVpe), \
273 	__SMU_DUMMY_MAP(GetMetricsVersion), \
274 	__SMU_DUMMY_MAP(EnableUCLKShadow), \
275 	__SMU_DUMMY_MAP(RmaDueToBadPageThreshold), \
276 	__SMU_DUMMY_MAP(SelectPstatePolicy), \
277 	__SMU_DUMMY_MAP(MALLPowerController), \
278 	__SMU_DUMMY_MAP(MALLPowerState),
279 
280 #undef __SMU_DUMMY_MAP
281 #define __SMU_DUMMY_MAP(type)	SMU_MSG_##type
282 enum smu_message_type {
283 	SMU_MESSAGE_TYPES
284 	SMU_MSG_MAX_COUNT,
285 };
286 
287 enum smu_clk_type {
288 	SMU_GFXCLK,
289 	SMU_VCLK,
290 	SMU_DCLK,
291 	SMU_VCLK1,
292 	SMU_DCLK1,
293 	SMU_ECLK,
294 	SMU_SOCCLK,
295 	SMU_UCLK,
296 	SMU_DCEFCLK,
297 	SMU_DISPCLK,
298 	SMU_PIXCLK,
299 	SMU_PHYCLK,
300 	SMU_FCLK,
301 	SMU_SCLK,
302 	SMU_MCLK,
303 	SMU_PCIE,
304 	SMU_LCLK,
305 	SMU_OD_CCLK,
306 	SMU_OD_SCLK,
307 	SMU_OD_MCLK,
308 	SMU_OD_VDDC_CURVE,
309 	SMU_OD_RANGE,
310 	SMU_OD_VDDGFX_OFFSET,
311 	SMU_OD_FAN_CURVE,
312 	SMU_OD_ACOUSTIC_LIMIT,
313 	SMU_OD_ACOUSTIC_TARGET,
314 	SMU_OD_FAN_TARGET_TEMPERATURE,
315 	SMU_OD_FAN_MINIMUM_PWM,
316 	SMU_CLK_COUNT,
317 };
318 
319 #define SMU_FEATURE_MASKS				\
320        __SMU_DUMMY_MAP(DPM_PREFETCHER),			\
321        __SMU_DUMMY_MAP(DPM_GFXCLK),                    	\
322        __SMU_DUMMY_MAP(DPM_UCLK),                      	\
323        __SMU_DUMMY_MAP(DPM_SOCCLK),                    	\
324        __SMU_DUMMY_MAP(DPM_UVD),                       	\
325        __SMU_DUMMY_MAP(DPM_VCE),                       	\
326        __SMU_DUMMY_MAP(DPM_LCLK),                       \
327        __SMU_DUMMY_MAP(ULV),                           	\
328        __SMU_DUMMY_MAP(DPM_MP0CLK),                    	\
329        __SMU_DUMMY_MAP(DPM_LINK),                      	\
330        __SMU_DUMMY_MAP(DPM_DCEFCLK),                   	\
331        __SMU_DUMMY_MAP(DPM_XGMI),			\
332        __SMU_DUMMY_MAP(DS_GFXCLK),                     	\
333        __SMU_DUMMY_MAP(DS_SOCCLK),                     	\
334        __SMU_DUMMY_MAP(DS_LCLK),                       	\
335        __SMU_DUMMY_MAP(PPT),                           	\
336        __SMU_DUMMY_MAP(TDC),                           	\
337        __SMU_DUMMY_MAP(THERMAL),                       	\
338        __SMU_DUMMY_MAP(GFX_PER_CU_CG),                 	\
339        __SMU_DUMMY_MAP(DATA_CALCULATIONS),                 	\
340        __SMU_DUMMY_MAP(RM),                            	\
341        __SMU_DUMMY_MAP(DS_DCEFCLK),                    	\
342        __SMU_DUMMY_MAP(ACDC),                          	\
343        __SMU_DUMMY_MAP(VR0HOT),                        	\
344        __SMU_DUMMY_MAP(VR1HOT),                        	\
345        __SMU_DUMMY_MAP(FW_CTF),                        	\
346        __SMU_DUMMY_MAP(LED_DISPLAY),                   	\
347        __SMU_DUMMY_MAP(FAN_CONTROL),                   	\
348        __SMU_DUMMY_MAP(GFX_EDC),                       	\
349        __SMU_DUMMY_MAP(GFXOFF),                        	\
350        __SMU_DUMMY_MAP(CG),                            	\
351        __SMU_DUMMY_MAP(DPM_FCLK),                      	\
352        __SMU_DUMMY_MAP(DS_FCLK),                       	\
353        __SMU_DUMMY_MAP(DS_MP1CLK),                     	\
354        __SMU_DUMMY_MAP(DS_MP0CLK),                     	\
355        __SMU_DUMMY_MAP(XGMI_PER_LINK_PWR_DWN),          \
356        __SMU_DUMMY_MAP(DPM_GFX_PACE),                  	\
357        __SMU_DUMMY_MAP(MEM_VDDCI_SCALING),             	\
358        __SMU_DUMMY_MAP(MEM_MVDD_SCALING),              	\
359        __SMU_DUMMY_MAP(DS_UCLK),                       	\
360        __SMU_DUMMY_MAP(GFX_ULV),                       	\
361        __SMU_DUMMY_MAP(FW_DSTATE),                     	\
362        __SMU_DUMMY_MAP(BACO),                          	\
363        __SMU_DUMMY_MAP(VCN_PG),                        	\
364        __SMU_DUMMY_MAP(MM_DPM_PG),                     	\
365        __SMU_DUMMY_MAP(JPEG_PG),                       	\
366        __SMU_DUMMY_MAP(USB_PG),                        	\
367        __SMU_DUMMY_MAP(RSMU_SMN_CG),                   	\
368        __SMU_DUMMY_MAP(APCC_PLUS),                     	\
369        __SMU_DUMMY_MAP(GTHR),                          	\
370        __SMU_DUMMY_MAP(GFX_DCS),                       	\
371        __SMU_DUMMY_MAP(GFX_SS),                        	\
372        __SMU_DUMMY_MAP(OUT_OF_BAND_MONITOR),           	\
373        __SMU_DUMMY_MAP(TEMP_DEPENDENT_VMIN),           	\
374        __SMU_DUMMY_MAP(MMHUB_PG),                      	\
375        __SMU_DUMMY_MAP(ATHUB_PG),                      	\
376        __SMU_DUMMY_MAP(APCC_DFLL),                     	\
377        __SMU_DUMMY_MAP(DF_CSTATE),                     	\
378        __SMU_DUMMY_MAP(DPM_GFX_GPO),                    \
379        __SMU_DUMMY_MAP(WAFL_CG),                        \
380        __SMU_DUMMY_MAP(CCLK_DPM),                     	\
381        __SMU_DUMMY_MAP(FAN_CONTROLLER),                 \
382        __SMU_DUMMY_MAP(VCN_DPM),                     	\
383        __SMU_DUMMY_MAP(LCLK_DPM),                     	\
384        __SMU_DUMMY_MAP(SHUBCLK_DPM),                    \
385        __SMU_DUMMY_MAP(DCFCLK_DPM),                     \
386        __SMU_DUMMY_MAP(DS_DCFCLK),                     	\
387        __SMU_DUMMY_MAP(S0I2),                     	\
388        __SMU_DUMMY_MAP(SMU_LOW_POWER),                  \
389        __SMU_DUMMY_MAP(GFX_DEM),                        \
390        __SMU_DUMMY_MAP(PSI),                     	\
391        __SMU_DUMMY_MAP(PROCHOT),                        \
392        __SMU_DUMMY_MAP(CPUOFF),                     	\
393        __SMU_DUMMY_MAP(STAPM),                          \
394        __SMU_DUMMY_MAP(S0I3),                     	\
395        __SMU_DUMMY_MAP(DF_CSTATES),                     \
396        __SMU_DUMMY_MAP(PERF_LIMIT),                     \
397        __SMU_DUMMY_MAP(CORE_DLDO),                     	\
398        __SMU_DUMMY_MAP(RSMU_LOW_POWER),                 \
399        __SMU_DUMMY_MAP(SMN_LOW_POWER),                  \
400        __SMU_DUMMY_MAP(THM_LOW_POWER),                  \
401        __SMU_DUMMY_MAP(SMUIO_LOW_POWER),                \
402        __SMU_DUMMY_MAP(MP1_LOW_POWER),                  \
403        __SMU_DUMMY_MAP(DS_VCN),                         \
404        __SMU_DUMMY_MAP(CPPC),                           \
405        __SMU_DUMMY_MAP(OS_CSTATES),                     \
406        __SMU_DUMMY_MAP(ISP_DPM),                        \
407        __SMU_DUMMY_MAP(A55_DPM),                        \
408        __SMU_DUMMY_MAP(CVIP_DSP_DPM),                   \
409        __SMU_DUMMY_MAP(MSMU_LOW_POWER),			\
410        __SMU_DUMMY_MAP(FUSE_CG),			\
411        __SMU_DUMMY_MAP(MP1_CG),				\
412        __SMU_DUMMY_MAP(SMUIO_CG),			\
413        __SMU_DUMMY_MAP(THM_CG),				\
414        __SMU_DUMMY_MAP(CLK_CG),				\
415        __SMU_DUMMY_MAP(DATA_CALCULATION),				\
416        __SMU_DUMMY_MAP(DPM_VCLK),			\
417        __SMU_DUMMY_MAP(DPM_DCLK),			\
418        __SMU_DUMMY_MAP(FW_DATA_READ),			\
419        __SMU_DUMMY_MAP(DPM_GFX_POWER_OPTIMIZER),	\
420        __SMU_DUMMY_MAP(DPM_DCN),			\
421        __SMU_DUMMY_MAP(VMEMP_SCALING),			\
422        __SMU_DUMMY_MAP(VDDIO_MEM_SCALING),		\
423        __SMU_DUMMY_MAP(MM_DPM),				\
424        __SMU_DUMMY_MAP(SOC_MPCLK_DS),			\
425        __SMU_DUMMY_MAP(BACO_MPCLK_DS),			\
426        __SMU_DUMMY_MAP(THROTTLERS),			\
427        __SMU_DUMMY_MAP(SMARTSHIFT),			\
428        __SMU_DUMMY_MAP(GFX_READ_MARGIN),		\
429        __SMU_DUMMY_MAP(GFX_IMU),			\
430        __SMU_DUMMY_MAP(GFX_PCC_DFLL),			\
431        __SMU_DUMMY_MAP(BOOT_TIME_CAL),			\
432        __SMU_DUMMY_MAP(BOOT_POWER_OPT),			\
433        __SMU_DUMMY_MAP(GFXCLK_SPREAD_SPECTRUM),		\
434        __SMU_DUMMY_MAP(SOC_PCC),			\
435        __SMU_DUMMY_MAP(OPTIMIZED_VMIN),			\
436        __SMU_DUMMY_MAP(CLOCK_POWER_DOWN_BYPASS),	\
437        __SMU_DUMMY_MAP(MEM_TEMP_READ),			\
438        __SMU_DUMMY_MAP(ATHUB_MMHUB_PG),			\
439        __SMU_DUMMY_MAP(BACO_CG),			\
440        __SMU_DUMMY_MAP(SOC_CG),    \
441        __SMU_DUMMY_MAP(LOW_POWER_DCNCLKS),       \
442        __SMU_DUMMY_MAP(WHISPER_MODE),			\
443        __SMU_DUMMY_MAP(EDC_PWRBRK),				\
444        __SMU_DUMMY_MAP(SOC_EDC_XVMIN),				\
445        __SMU_DUMMY_MAP(GFX_PSM_DIDT),				\
446        __SMU_DUMMY_MAP(APT_ALL_ENABLE),				\
447        __SMU_DUMMY_MAP(APT_SQ_THROTTLE),				\
448        __SMU_DUMMY_MAP(APT_PF_DCS),				\
449        __SMU_DUMMY_MAP(GFX_EDC_XVMIN),				\
450        __SMU_DUMMY_MAP(GFX_DIDT_XVMIN),				\
451        __SMU_DUMMY_MAP(FAN_ABNORMAL),
452 
453 #undef __SMU_DUMMY_MAP
454 #define __SMU_DUMMY_MAP(feature)	SMU_FEATURE_##feature##_BIT
455 enum smu_feature_mask {
456 	SMU_FEATURE_MASKS
457 	SMU_FEATURE_COUNT,
458 };
459 
460 /* Message category flags */
461 #define SMU_MSG_VF_FLAG			(1U << 0)
462 #define SMU_MSG_RAS_PRI			(1U << 1)
463 
464 /* Firmware capability flags */
465 #define SMU_FW_CAP_RAS_PRI		(1U << 0)
466 
467 #endif
468