smu_types.h revision 1.1
1/*	$NetBSD: smu_types.h,v 1.1 2021/12/18 20:15:22 riastradh Exp $	*/
2
3/*
4 * Copyright 2019 Advanced Micro Devices, Inc.
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a
7 * copy of this software and associated documentation files (the "Software"),
8 * to deal in the Software without restriction, including without limitation
9 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
10 * and/or sell copies of the Software, and to permit persons to whom the
11 * Software is furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included in
14 * all copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
19 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
20 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22 * OTHER DEALINGS IN THE SOFTWARE.
23 */
24
25#ifndef __SMU_TYPES_H__
26#define __SMU_TYPES_H__
27
28#define SMU_MESSAGE_TYPES			      \
29       __SMU_DUMMY_MAP(TestMessage),		      \
30       __SMU_DUMMY_MAP(GetSmuVersion),                \
31       __SMU_DUMMY_MAP(GetDriverIfVersion),           \
32       __SMU_DUMMY_MAP(SetAllowedFeaturesMaskLow),    \
33       __SMU_DUMMY_MAP(SetAllowedFeaturesMaskHigh),   \
34       __SMU_DUMMY_MAP(EnableAllSmuFeatures),         \
35       __SMU_DUMMY_MAP(DisableAllSmuFeatures),        \
36       __SMU_DUMMY_MAP(EnableSmuFeaturesLow),         \
37       __SMU_DUMMY_MAP(EnableSmuFeaturesHigh),        \
38       __SMU_DUMMY_MAP(DisableSmuFeaturesLow),        \
39       __SMU_DUMMY_MAP(DisableSmuFeaturesHigh),       \
40       __SMU_DUMMY_MAP(GetEnabledSmuFeaturesLow),     \
41       __SMU_DUMMY_MAP(GetEnabledSmuFeaturesHigh),    \
42       __SMU_DUMMY_MAP(SetWorkloadMask),              \
43       __SMU_DUMMY_MAP(SetPptLimit),                  \
44       __SMU_DUMMY_MAP(SetDriverDramAddrHigh),        \
45       __SMU_DUMMY_MAP(SetDriverDramAddrLow),         \
46       __SMU_DUMMY_MAP(SetToolsDramAddrHigh),         \
47       __SMU_DUMMY_MAP(SetToolsDramAddrLow),          \
48       __SMU_DUMMY_MAP(TransferTableSmu2Dram),        \
49       __SMU_DUMMY_MAP(TransferTableDram2Smu),        \
50       __SMU_DUMMY_MAP(UseDefaultPPTable),            \
51       __SMU_DUMMY_MAP(UseBackupPPTable),             \
52       __SMU_DUMMY_MAP(RunBtc),                       \
53       __SMU_DUMMY_MAP(RequestI2CBus),                \
54       __SMU_DUMMY_MAP(ReleaseI2CBus),                \
55       __SMU_DUMMY_MAP(SetFloorSocVoltage),           \
56       __SMU_DUMMY_MAP(SoftReset),                    \
57       __SMU_DUMMY_MAP(StartBacoMonitor),             \
58       __SMU_DUMMY_MAP(CancelBacoMonitor),            \
59       __SMU_DUMMY_MAP(EnterBaco),                    \
60       __SMU_DUMMY_MAP(SetSoftMinByFreq),             \
61       __SMU_DUMMY_MAP(SetSoftMaxByFreq),             \
62       __SMU_DUMMY_MAP(SetHardMinByFreq),             \
63       __SMU_DUMMY_MAP(SetHardMaxByFreq),             \
64       __SMU_DUMMY_MAP(GetMinDpmFreq),                \
65       __SMU_DUMMY_MAP(GetMaxDpmFreq),                \
66       __SMU_DUMMY_MAP(GetDpmFreqByIndex),            \
67       __SMU_DUMMY_MAP(GetDpmClockFreq),              \
68       __SMU_DUMMY_MAP(GetSsVoltageByDpm),            \
69       __SMU_DUMMY_MAP(SetMemoryChannelConfig),       \
70       __SMU_DUMMY_MAP(SetGeminiMode),                \
71       __SMU_DUMMY_MAP(SetGeminiApertureHigh),        \
72       __SMU_DUMMY_MAP(SetGeminiApertureLow),         \
73       __SMU_DUMMY_MAP(SetMinLinkDpmByIndex),         \
74       __SMU_DUMMY_MAP(OverridePcieParameters),       \
75       __SMU_DUMMY_MAP(OverDriveSetPercentage),       \
76       __SMU_DUMMY_MAP(SetMinDeepSleepDcefclk),       \
77       __SMU_DUMMY_MAP(ReenableAcDcInterrupt),        \
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(DramLogSetDramAddrHigh),       \
88       __SMU_DUMMY_MAP(DramLogSetDramAddrLow),        \
89       __SMU_DUMMY_MAP(DramLogSetDramSize),           \
90       __SMU_DUMMY_MAP(SetFanMaxRpm),                 \
91       __SMU_DUMMY_MAP(SetFanMinPwm),                 \
92       __SMU_DUMMY_MAP(ConfigureGfxDidt),             \
93       __SMU_DUMMY_MAP(NumOfDisplays),                \
94       __SMU_DUMMY_MAP(RemoveMargins),                \
95       __SMU_DUMMY_MAP(ReadSerialNumTop32),           \
96       __SMU_DUMMY_MAP(ReadSerialNumBottom32),        \
97       __SMU_DUMMY_MAP(SetSystemVirtualDramAddrHigh), \
98       __SMU_DUMMY_MAP(SetSystemVirtualDramAddrLow),  \
99       __SMU_DUMMY_MAP(WaflTest),                     \
100       __SMU_DUMMY_MAP(SetFclkGfxClkRatio),           \
101       __SMU_DUMMY_MAP(AllowGfxOff),                  \
102       __SMU_DUMMY_MAP(DisallowGfxOff),               \
103       __SMU_DUMMY_MAP(GetPptLimit),                  \
104       __SMU_DUMMY_MAP(GetDcModeMaxDpmFreq),          \
105       __SMU_DUMMY_MAP(GetDebugData),                 \
106       __SMU_DUMMY_MAP(SetXgmiMode),                  \
107       __SMU_DUMMY_MAP(RunAfllBtc),                   \
108       __SMU_DUMMY_MAP(ExitBaco),                     \
109       __SMU_DUMMY_MAP(PrepareMp1ForReset),           \
110       __SMU_DUMMY_MAP(PrepareMp1ForShutdown),        \
111       __SMU_DUMMY_MAP(SetMGpuFanBoostLimitRpm),      \
112       __SMU_DUMMY_MAP(GetAVFSVoltageByDpm),          \
113       __SMU_DUMMY_MAP(PowerUpVcn),                   \
114       __SMU_DUMMY_MAP(PowerDownVcn),                 \
115       __SMU_DUMMY_MAP(PowerUpJpeg),                  \
116       __SMU_DUMMY_MAP(PowerDownJpeg),                \
117       __SMU_DUMMY_MAP(BacoAudioD3PME),               \
118       __SMU_DUMMY_MAP(ArmD3),                        \
119       __SMU_DUMMY_MAP(RunDcBtc),                     \
120       __SMU_DUMMY_MAP(RunGfxDcBtc),                  \
121       __SMU_DUMMY_MAP(RunSocDcBtc),                  \
122       __SMU_DUMMY_MAP(SetMemoryChannelEnable),       \
123       __SMU_DUMMY_MAP(SetDfSwitchType),              \
124       __SMU_DUMMY_MAP(GetVoltageByDpm),              \
125       __SMU_DUMMY_MAP(GetVoltageByDpmOverdrive),     \
126       __SMU_DUMMY_MAP(PowerUpVcn0),                  \
127       __SMU_DUMMY_MAP(PowerDownVcn0),               \
128       __SMU_DUMMY_MAP(PowerUpVcn1),                  \
129       __SMU_DUMMY_MAP(PowerDownVcn1),                \
130       __SMU_DUMMY_MAP(PowerUpGfx),                   \
131       __SMU_DUMMY_MAP(PowerDownIspByTile),           \
132       __SMU_DUMMY_MAP(PowerUpIspByTile),             \
133       __SMU_DUMMY_MAP(PowerDownSdma),                \
134	__SMU_DUMMY_MAP(PowerUpSdma),                 \
135	__SMU_DUMMY_MAP(SetHardMinIspclkByFreq),      \
136	__SMU_DUMMY_MAP(SetHardMinVcn),               \
137	__SMU_DUMMY_MAP(Spare1),                      \
138	__SMU_DUMMY_MAP(Spare2),           	      \
139	__SMU_DUMMY_MAP(SetAllowFclkSwitch),          \
140	__SMU_DUMMY_MAP(SetMinVideoGfxclkFreq),       \
141	__SMU_DUMMY_MAP(ActiveProcessNotify),         \
142	__SMU_DUMMY_MAP(SetCustomPolicy),             \
143	__SMU_DUMMY_MAP(QueryPowerLimit),             \
144	__SMU_DUMMY_MAP(SetGfxclkOverdriveByFreqVid), \
145	__SMU_DUMMY_MAP(SetHardMinDcfclkByFreq),      \
146	__SMU_DUMMY_MAP(SetHardMinSocclkByFreq),      \
147	__SMU_DUMMY_MAP(ControlIgpuATS),              \
148	__SMU_DUMMY_MAP(SetMinVideoFclkFreq),         \
149	__SMU_DUMMY_MAP(SetMinDeepSleepDcfclk),       \
150	__SMU_DUMMY_MAP(ForcePowerDownGfx),           \
151	__SMU_DUMMY_MAP(SetPhyclkVoltageByFreq),      \
152	__SMU_DUMMY_MAP(SetDppclkVoltageByFreq),      \
153	__SMU_DUMMY_MAP(SetSoftMinVcn),               \
154	__SMU_DUMMY_MAP(EnablePostCode),              \
155	__SMU_DUMMY_MAP(GetGfxclkFrequency),          \
156	__SMU_DUMMY_MAP(GetFclkFrequency),            \
157	__SMU_DUMMY_MAP(GetMinGfxclkFrequency),       \
158	__SMU_DUMMY_MAP(GetMaxGfxclkFrequency),       \
159	__SMU_DUMMY_MAP(SetGfxCGPG),                  \
160	__SMU_DUMMY_MAP(SetSoftMaxGfxClk),            \
161	__SMU_DUMMY_MAP(SetHardMinGfxClk),            \
162	__SMU_DUMMY_MAP(SetSoftMaxSocclkByFreq),      \
163	__SMU_DUMMY_MAP(SetSoftMaxFclkByFreq),        \
164	__SMU_DUMMY_MAP(SetSoftMaxVcn),               \
165	__SMU_DUMMY_MAP(PowerGateMmHub),              \
166	__SMU_DUMMY_MAP(UpdatePmeRestore),            \
167	__SMU_DUMMY_MAP(GpuChangeState),              \
168	__SMU_DUMMY_MAP(SetPowerLimitPercentage),     \
169	__SMU_DUMMY_MAP(ForceGfxContentSave),         \
170	__SMU_DUMMY_MAP(EnableTmdp48MHzRefclkPwrDown), \
171	__SMU_DUMMY_MAP(PowerGateAtHub),              \
172	__SMU_DUMMY_MAP(SetSoftMinJpeg),              \
173	__SMU_DUMMY_MAP(SetHardMinFclkByFreq),        \
174	__SMU_DUMMY_MAP(DFCstateControl), \
175	__SMU_DUMMY_MAP(DAL_DISABLE_DUMMY_PSTATE_CHANGE), \
176	__SMU_DUMMY_MAP(DAL_ENABLE_DUMMY_PSTATE_CHANGE), \
177
178#undef __SMU_DUMMY_MAP
179#define __SMU_DUMMY_MAP(type)	SMU_MSG_##type
180enum smu_message_type {
181	SMU_MESSAGE_TYPES
182	SMU_MSG_MAX_COUNT,
183};
184
185enum smu_clk_type {
186	SMU_GFXCLK,
187	SMU_VCLK,
188	SMU_DCLK,
189	SMU_ECLK,
190	SMU_SOCCLK,
191	SMU_UCLK,
192	SMU_DCEFCLK,
193	SMU_DISPCLK,
194	SMU_PIXCLK,
195	SMU_PHYCLK,
196	SMU_FCLK,
197	SMU_SCLK,
198	SMU_MCLK,
199	SMU_PCIE,
200	SMU_OD_SCLK,
201	SMU_OD_MCLK,
202	SMU_OD_VDDC_CURVE,
203	SMU_OD_RANGE,
204	SMU_CLK_COUNT,
205};
206
207#define SMU_FEATURE_MASKS				\
208       __SMU_DUMMY_MAP(DPM_PREFETCHER),			\
209       __SMU_DUMMY_MAP(DPM_GFXCLK),                    	\
210       __SMU_DUMMY_MAP(DPM_UCLK),                      	\
211       __SMU_DUMMY_MAP(DPM_SOCCLK),                    	\
212       __SMU_DUMMY_MAP(DPM_UVD),                       	\
213       __SMU_DUMMY_MAP(DPM_VCE),                       	\
214       __SMU_DUMMY_MAP(ULV),                           	\
215       __SMU_DUMMY_MAP(DPM_MP0CLK),                    	\
216       __SMU_DUMMY_MAP(DPM_LINK),                      	\
217       __SMU_DUMMY_MAP(DPM_DCEFCLK),                   	\
218       __SMU_DUMMY_MAP(DS_GFXCLK),                     	\
219       __SMU_DUMMY_MAP(DS_SOCCLK),                     	\
220       __SMU_DUMMY_MAP(DS_LCLK),                       	\
221       __SMU_DUMMY_MAP(PPT),                           	\
222       __SMU_DUMMY_MAP(TDC),                           	\
223       __SMU_DUMMY_MAP(THERMAL),                       	\
224       __SMU_DUMMY_MAP(GFX_PER_CU_CG),                 	\
225       __SMU_DUMMY_MAP(RM),                            	\
226       __SMU_DUMMY_MAP(DS_DCEFCLK),                    	\
227       __SMU_DUMMY_MAP(ACDC),                          	\
228       __SMU_DUMMY_MAP(VR0HOT),                        	\
229       __SMU_DUMMY_MAP(VR1HOT),                        	\
230       __SMU_DUMMY_MAP(FW_CTF),                        	\
231       __SMU_DUMMY_MAP(LED_DISPLAY),                   	\
232       __SMU_DUMMY_MAP(FAN_CONTROL),                   	\
233       __SMU_DUMMY_MAP(GFX_EDC),                       	\
234       __SMU_DUMMY_MAP(GFXOFF),                        	\
235       __SMU_DUMMY_MAP(CG),                            	\
236       __SMU_DUMMY_MAP(DPM_FCLK),                      	\
237       __SMU_DUMMY_MAP(DS_FCLK),                       	\
238       __SMU_DUMMY_MAP(DS_MP1CLK),                     	\
239       __SMU_DUMMY_MAP(DS_MP0CLK),                     	\
240       __SMU_DUMMY_MAP(XGMI),                          	\
241       __SMU_DUMMY_MAP(DPM_GFX_PACE),                  	\
242       __SMU_DUMMY_MAP(MEM_VDDCI_SCALING),             	\
243       __SMU_DUMMY_MAP(MEM_MVDD_SCALING),              	\
244       __SMU_DUMMY_MAP(DS_UCLK),                       	\
245       __SMU_DUMMY_MAP(GFX_ULV),                       	\
246       __SMU_DUMMY_MAP(FW_DSTATE),                     	\
247       __SMU_DUMMY_MAP(BACO),                          	\
248       __SMU_DUMMY_MAP(VCN_PG),                        	\
249       __SMU_DUMMY_MAP(JPEG_PG),                       	\
250       __SMU_DUMMY_MAP(USB_PG),                        	\
251       __SMU_DUMMY_MAP(RSMU_SMN_CG),                   	\
252       __SMU_DUMMY_MAP(APCC_PLUS),                     	\
253       __SMU_DUMMY_MAP(GTHR),                          	\
254       __SMU_DUMMY_MAP(GFX_DCS),                       	\
255       __SMU_DUMMY_MAP(GFX_SS),                        	\
256       __SMU_DUMMY_MAP(OUT_OF_BAND_MONITOR),           	\
257       __SMU_DUMMY_MAP(TEMP_DEPENDENT_VMIN),           	\
258       __SMU_DUMMY_MAP(MMHUB_PG),                      	\
259       __SMU_DUMMY_MAP(ATHUB_PG),                      	\
260       __SMU_DUMMY_MAP(APCC_DFLL),                     	\
261       __SMU_DUMMY_MAP(WAFL_CG),
262
263#undef __SMU_DUMMY_MAP
264#define __SMU_DUMMY_MAP(feature)	SMU_FEATURE_##feature##_BIT
265enum smu_feature_mask {
266	SMU_FEATURE_MASKS
267	SMU_FEATURE_COUNT,
268};
269
270#endif
271