Home | History | Annotate | Line # | Download | only in inc
      1 /*	$NetBSD: smu_types.h,v 1.2 2021/12/18 23:45:26 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
    180 enum smu_message_type {
    181 	SMU_MESSAGE_TYPES
    182 	SMU_MSG_MAX_COUNT,
    183 };
    184 
    185 enum 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
    265 enum smu_feature_mask {
    266 	SMU_FEATURE_MASKS
    267 	SMU_FEATURE_COUNT,
    268 };
    269 
    270 #endif
    271