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