drm/amd/powerplay: add SMC message filter for SMU11
authorWenhui Sheng <Wenhui.Sheng@amd.com>
Thu, 21 May 2020 06:11:13 +0000 (14:11 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 28 May 2020 18:00:50 +0000 (14:00 -0400)
1. add smu_11_0_msg_mapping definition
2. add valid info for each SMC message in SRIOV

Signed-off-by: Wenhui Sheng <Wenhui.Sheng@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Kevin Wang <kevin1.wang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/powerplay/arcturus_ppt.c
drivers/gpu/drm/amd/powerplay/inc/smu_v11_0.h
drivers/gpu/drm/amd/powerplay/navi10_ppt.c

index 27c5fc9572b27bba60334706e3ab59b83bd00425..fad6f3a60dc9443c44ae1d9817250fd3ff2150ba 100644 (file)
@@ -48,8 +48,8 @@
 #define CTF_OFFSET_HOTSPOT             5
 #define CTF_OFFSET_HBM                 5
 
-#define MSG_MAP(msg, index) \
-       [SMU_MSG_##msg] = {1, (index)}
+#define MSG_MAP(msg, index, valid_in_vf) \
+       [SMU_MSG_##msg] = {1, (index), (valid_in_vf)}
 #define ARCTURUS_FEA_MAP(smu_feature, arcturus_feature) \
        [smu_feature] = {1, (arcturus_feature)}
 
 /* possible frequency drift (1Mhz) */
 #define EPSILON                                1
 
-static struct smu_11_0_cmn2aisc_mapping arcturus_message_map[SMU_MSG_MAX_COUNT] = {
-       MSG_MAP(TestMessage,                         PPSMC_MSG_TestMessage),
-       MSG_MAP(GetSmuVersion,                       PPSMC_MSG_GetSmuVersion),
-       MSG_MAP(GetDriverIfVersion,                  PPSMC_MSG_GetDriverIfVersion),
-       MSG_MAP(SetAllowedFeaturesMaskLow,           PPSMC_MSG_SetAllowedFeaturesMaskLow),
-       MSG_MAP(SetAllowedFeaturesMaskHigh,          PPSMC_MSG_SetAllowedFeaturesMaskHigh),
-       MSG_MAP(EnableAllSmuFeatures,                PPSMC_MSG_EnableAllSmuFeatures),
-       MSG_MAP(DisableAllSmuFeatures,               PPSMC_MSG_DisableAllSmuFeatures),
-       MSG_MAP(EnableSmuFeaturesLow,                PPSMC_MSG_EnableSmuFeaturesLow),
-       MSG_MAP(EnableSmuFeaturesHigh,               PPSMC_MSG_EnableSmuFeaturesHigh),
-       MSG_MAP(DisableSmuFeaturesLow,               PPSMC_MSG_DisableSmuFeaturesLow),
-       MSG_MAP(DisableSmuFeaturesHigh,              PPSMC_MSG_DisableSmuFeaturesHigh),
-       MSG_MAP(GetEnabledSmuFeaturesLow,            PPSMC_MSG_GetEnabledSmuFeaturesLow),
-       MSG_MAP(GetEnabledSmuFeaturesHigh,           PPSMC_MSG_GetEnabledSmuFeaturesHigh),
-       MSG_MAP(SetDriverDramAddrHigh,               PPSMC_MSG_SetDriverDramAddrHigh),
-       MSG_MAP(SetDriverDramAddrLow,                PPSMC_MSG_SetDriverDramAddrLow),
-       MSG_MAP(SetToolsDramAddrHigh,                PPSMC_MSG_SetToolsDramAddrHigh),
-       MSG_MAP(SetToolsDramAddrLow,                 PPSMC_MSG_SetToolsDramAddrLow),
-       MSG_MAP(TransferTableSmu2Dram,               PPSMC_MSG_TransferTableSmu2Dram),
-       MSG_MAP(TransferTableDram2Smu,               PPSMC_MSG_TransferTableDram2Smu),
-       MSG_MAP(UseDefaultPPTable,                   PPSMC_MSG_UseDefaultPPTable),
-       MSG_MAP(UseBackupPPTable,                    PPSMC_MSG_UseBackupPPTable),
-       MSG_MAP(SetSystemVirtualDramAddrHigh,        PPSMC_MSG_SetSystemVirtualDramAddrHigh),
-       MSG_MAP(SetSystemVirtualDramAddrLow,         PPSMC_MSG_SetSystemVirtualDramAddrLow),
-       MSG_MAP(EnterBaco,                           PPSMC_MSG_EnterBaco),
-       MSG_MAP(ExitBaco,                            PPSMC_MSG_ExitBaco),
-       MSG_MAP(ArmD3,                               PPSMC_MSG_ArmD3),
-       MSG_MAP(SetSoftMinByFreq,                    PPSMC_MSG_SetSoftMinByFreq),
-       MSG_MAP(SetSoftMaxByFreq,                    PPSMC_MSG_SetSoftMaxByFreq),
-       MSG_MAP(SetHardMinByFreq,                    PPSMC_MSG_SetHardMinByFreq),
-       MSG_MAP(SetHardMaxByFreq,                    PPSMC_MSG_SetHardMaxByFreq),
-       MSG_MAP(GetMinDpmFreq,                       PPSMC_MSG_GetMinDpmFreq),
-       MSG_MAP(GetMaxDpmFreq,                       PPSMC_MSG_GetMaxDpmFreq),
-       MSG_MAP(GetDpmFreqByIndex,                   PPSMC_MSG_GetDpmFreqByIndex),
-       MSG_MAP(SetWorkloadMask,                     PPSMC_MSG_SetWorkloadMask),
-       MSG_MAP(SetDfSwitchType,                     PPSMC_MSG_SetDfSwitchType),
-       MSG_MAP(GetVoltageByDpm,                     PPSMC_MSG_GetVoltageByDpm),
-       MSG_MAP(GetVoltageByDpmOverdrive,            PPSMC_MSG_GetVoltageByDpmOverdrive),
-       MSG_MAP(SetPptLimit,                         PPSMC_MSG_SetPptLimit),
-       MSG_MAP(GetPptLimit,                         PPSMC_MSG_GetPptLimit),
-       MSG_MAP(PowerUpVcn0,                         PPSMC_MSG_PowerUpVcn0),
-       MSG_MAP(PowerDownVcn0,                       PPSMC_MSG_PowerDownVcn0),
-       MSG_MAP(PowerUpVcn1,                         PPSMC_MSG_PowerUpVcn1),
-       MSG_MAP(PowerDownVcn1,                       PPSMC_MSG_PowerDownVcn1),
-       MSG_MAP(PrepareMp1ForUnload,                 PPSMC_MSG_PrepareMp1ForUnload),
-       MSG_MAP(PrepareMp1ForReset,                  PPSMC_MSG_PrepareMp1ForReset),
-       MSG_MAP(PrepareMp1ForShutdown,               PPSMC_MSG_PrepareMp1ForShutdown),
-       MSG_MAP(SoftReset,                           PPSMC_MSG_SoftReset),
-       MSG_MAP(RunAfllBtc,                          PPSMC_MSG_RunAfllBtc),
-       MSG_MAP(RunDcBtc,                            PPSMC_MSG_RunDcBtc),
-       MSG_MAP(DramLogSetDramAddrHigh,              PPSMC_MSG_DramLogSetDramAddrHigh),
-       MSG_MAP(DramLogSetDramAddrLow,               PPSMC_MSG_DramLogSetDramAddrLow),
-       MSG_MAP(DramLogSetDramSize,                  PPSMC_MSG_DramLogSetDramSize),
-       MSG_MAP(GetDebugData,                        PPSMC_MSG_GetDebugData),
-       MSG_MAP(WaflTest,                            PPSMC_MSG_WaflTest),
-       MSG_MAP(SetXgmiMode,                         PPSMC_MSG_SetXgmiMode),
-       MSG_MAP(SetMemoryChannelEnable,              PPSMC_MSG_SetMemoryChannelEnable),
-       MSG_MAP(DFCstateControl,                     PPSMC_MSG_DFCstateControl),
-       MSG_MAP(GmiPwrDnControl,                     PPSMC_MSG_GmiPwrDnControl),
+static struct smu_11_0_msg_mapping arcturus_message_map[SMU_MSG_MAX_COUNT] = {
+       MSG_MAP(TestMessage,                         PPSMC_MSG_TestMessage,                     0),
+       MSG_MAP(GetSmuVersion,                       PPSMC_MSG_GetSmuVersion,                   1),
+       MSG_MAP(GetDriverIfVersion,                  PPSMC_MSG_GetDriverIfVersion,              1),
+       MSG_MAP(SetAllowedFeaturesMaskLow,           PPSMC_MSG_SetAllowedFeaturesMaskLow,       0),
+       MSG_MAP(SetAllowedFeaturesMaskHigh,          PPSMC_MSG_SetAllowedFeaturesMaskHigh,      0),
+       MSG_MAP(EnableAllSmuFeatures,                PPSMC_MSG_EnableAllSmuFeatures,            0),
+       MSG_MAP(DisableAllSmuFeatures,               PPSMC_MSG_DisableAllSmuFeatures,           0),
+       MSG_MAP(EnableSmuFeaturesLow,                PPSMC_MSG_EnableSmuFeaturesLow,            1),
+       MSG_MAP(EnableSmuFeaturesHigh,               PPSMC_MSG_EnableSmuFeaturesHigh,           1),
+       MSG_MAP(DisableSmuFeaturesLow,               PPSMC_MSG_DisableSmuFeaturesLow,           0),
+       MSG_MAP(DisableSmuFeaturesHigh,              PPSMC_MSG_DisableSmuFeaturesHigh,          0),
+       MSG_MAP(GetEnabledSmuFeaturesLow,            PPSMC_MSG_GetEnabledSmuFeaturesLow,        0),
+       MSG_MAP(GetEnabledSmuFeaturesHigh,           PPSMC_MSG_GetEnabledSmuFeaturesHigh,       0),
+       MSG_MAP(SetDriverDramAddrHigh,               PPSMC_MSG_SetDriverDramAddrHigh,           1),
+       MSG_MAP(SetDriverDramAddrLow,                PPSMC_MSG_SetDriverDramAddrLow,            1),
+       MSG_MAP(SetToolsDramAddrHigh,                PPSMC_MSG_SetToolsDramAddrHigh,            0),
+       MSG_MAP(SetToolsDramAddrLow,                 PPSMC_MSG_SetToolsDramAddrLow,             0),
+       MSG_MAP(TransferTableSmu2Dram,               PPSMC_MSG_TransferTableSmu2Dram,           1),
+       MSG_MAP(TransferTableDram2Smu,               PPSMC_MSG_TransferTableDram2Smu,           0),
+       MSG_MAP(UseDefaultPPTable,                   PPSMC_MSG_UseDefaultPPTable,               0),
+       MSG_MAP(UseBackupPPTable,                    PPSMC_MSG_UseBackupPPTable,                0),
+       MSG_MAP(SetSystemVirtualDramAddrHigh,        PPSMC_MSG_SetSystemVirtualDramAddrHigh,    0),
+       MSG_MAP(SetSystemVirtualDramAddrLow,         PPSMC_MSG_SetSystemVirtualDramAddrLow,     0),
+       MSG_MAP(EnterBaco,                           PPSMC_MSG_EnterBaco,                       0),
+       MSG_MAP(ExitBaco,                            PPSMC_MSG_ExitBaco,                        0),
+       MSG_MAP(ArmD3,                               PPSMC_MSG_ArmD3,                           0),
+       MSG_MAP(SetSoftMinByFreq,                    PPSMC_MSG_SetSoftMinByFreq,                0),
+       MSG_MAP(SetSoftMaxByFreq,                    PPSMC_MSG_SetSoftMaxByFreq,                0),
+       MSG_MAP(SetHardMinByFreq,                    PPSMC_MSG_SetHardMinByFreq,                0),
+       MSG_MAP(SetHardMaxByFreq,                    PPSMC_MSG_SetHardMaxByFreq,                0),
+       MSG_MAP(GetMinDpmFreq,                       PPSMC_MSG_GetMinDpmFreq,                   0),
+       MSG_MAP(GetMaxDpmFreq,                       PPSMC_MSG_GetMaxDpmFreq,                   0),
+       MSG_MAP(GetDpmFreqByIndex,                   PPSMC_MSG_GetDpmFreqByIndex,               1),
+       MSG_MAP(SetWorkloadMask,                     PPSMC_MSG_SetWorkloadMask,                 1),
+       MSG_MAP(SetDfSwitchType,                     PPSMC_MSG_SetDfSwitchType,                 0),
+       MSG_MAP(GetVoltageByDpm,                     PPSMC_MSG_GetVoltageByDpm,                 0),
+       MSG_MAP(GetVoltageByDpmOverdrive,            PPSMC_MSG_GetVoltageByDpmOverdrive,        0),
+       MSG_MAP(SetPptLimit,                         PPSMC_MSG_SetPptLimit,                     0),
+       MSG_MAP(GetPptLimit,                         PPSMC_MSG_GetPptLimit,                     1),
+       MSG_MAP(PowerUpVcn0,                         PPSMC_MSG_PowerUpVcn0,                     0),
+       MSG_MAP(PowerDownVcn0,                       PPSMC_MSG_PowerDownVcn0,                   0),
+       MSG_MAP(PowerUpVcn1,                         PPSMC_MSG_PowerUpVcn1,                     0),
+       MSG_MAP(PowerDownVcn1,                       PPSMC_MSG_PowerDownVcn1,                   0),
+       MSG_MAP(PrepareMp1ForUnload,                 PPSMC_MSG_PrepareMp1ForUnload,             0),
+       MSG_MAP(PrepareMp1ForReset,                  PPSMC_MSG_PrepareMp1ForReset,              0),
+       MSG_MAP(PrepareMp1ForShutdown,               PPSMC_MSG_PrepareMp1ForShutdown,           0),
+       MSG_MAP(SoftReset,                           PPSMC_MSG_SoftReset,                       0),
+       MSG_MAP(RunAfllBtc,                          PPSMC_MSG_RunAfllBtc,                      0),
+       MSG_MAP(RunDcBtc,                            PPSMC_MSG_RunDcBtc,                        0),
+       MSG_MAP(DramLogSetDramAddrHigh,              PPSMC_MSG_DramLogSetDramAddrHigh,          0),
+       MSG_MAP(DramLogSetDramAddrLow,               PPSMC_MSG_DramLogSetDramAddrLow,           0),
+       MSG_MAP(DramLogSetDramSize,                  PPSMC_MSG_DramLogSetDramSize,              0),
+       MSG_MAP(GetDebugData,                        PPSMC_MSG_GetDebugData,                    0),
+       MSG_MAP(WaflTest,                            PPSMC_MSG_WaflTest,                        0),
+       MSG_MAP(SetXgmiMode,                         PPSMC_MSG_SetXgmiMode,                     0),
+       MSG_MAP(SetMemoryChannelEnable,              PPSMC_MSG_SetMemoryChannelEnable,          0),
+       MSG_MAP(DFCstateControl,                     PPSMC_MSG_DFCstateControl,                 0),
+       MSG_MAP(GmiPwrDnControl,                     PPSMC_MSG_GmiPwrDnControl,                 0),
 };
 
 static struct smu_11_0_cmn2aisc_mapping arcturus_clk_map[SMU_CLK_COUNT] = {
@@ -199,7 +199,7 @@ static struct smu_11_0_cmn2aisc_mapping arcturus_workload_map[PP_SMC_POWER_PROFI
 
 static int arcturus_get_smu_msg_index(struct smu_context *smc, uint32_t index)
 {
-       struct smu_11_0_cmn2aisc_mapping mapping;
+       struct smu_11_0_msg_mapping mapping;
 
        if (index >= SMU_MSG_MAX_COUNT)
                return -EINVAL;
index 5c6bfe76d596ef44e207a7a078003ee913539a06..09047c3010e9241a8a559d9bcb8297ca1c5ed63e 100644 (file)
@@ -70,6 +70,12 @@ static const struct smu_temperature_range smu11_thermal_policy[] =
        { 120000, 120000, 120000, 120000, 120000, 120000, 120000, 120000, 120000},
 };
 
+struct smu_11_0_msg_mapping {
+       int     valid_mapping;
+       int     map_to;
+       int     valid_in_vf;
+};
+
 struct smu_11_0_cmn2aisc_mapping {
        int     valid_mapping;
        int     map_to;
index 0c9be864d072e7e06fb5e5e2d0d05ee56beaaacf..2dd48b2c580be6a1cd360117cf7f8974da7d4d09 100644 (file)
        FEATURE_MASK(FEATURE_DPM_LINK_BIT)       | \
        FEATURE_MASK(FEATURE_DPM_DCEFCLK_BIT))
 
-#define MSG_MAP(msg, index) \
-       [SMU_MSG_##msg] = {1, (index)}
-
-static struct smu_11_0_cmn2aisc_mapping navi10_message_map[SMU_MSG_MAX_COUNT] = {
-       MSG_MAP(TestMessage,                    PPSMC_MSG_TestMessage),
-       MSG_MAP(GetSmuVersion,                  PPSMC_MSG_GetSmuVersion),
-       MSG_MAP(GetDriverIfVersion,             PPSMC_MSG_GetDriverIfVersion),
-       MSG_MAP(SetAllowedFeaturesMaskLow,      PPSMC_MSG_SetAllowedFeaturesMaskLow),
-       MSG_MAP(SetAllowedFeaturesMaskHigh,     PPSMC_MSG_SetAllowedFeaturesMaskHigh),
-       MSG_MAP(EnableAllSmuFeatures,           PPSMC_MSG_EnableAllSmuFeatures),
-       MSG_MAP(DisableAllSmuFeatures,          PPSMC_MSG_DisableAllSmuFeatures),
-       MSG_MAP(EnableSmuFeaturesLow,           PPSMC_MSG_EnableSmuFeaturesLow),
-       MSG_MAP(EnableSmuFeaturesHigh,          PPSMC_MSG_EnableSmuFeaturesHigh),
-       MSG_MAP(DisableSmuFeaturesLow,          PPSMC_MSG_DisableSmuFeaturesLow),
-       MSG_MAP(DisableSmuFeaturesHigh,         PPSMC_MSG_DisableSmuFeaturesHigh),
-       MSG_MAP(GetEnabledSmuFeaturesLow,       PPSMC_MSG_GetEnabledSmuFeaturesLow),
-       MSG_MAP(GetEnabledSmuFeaturesHigh,      PPSMC_MSG_GetEnabledSmuFeaturesHigh),
-       MSG_MAP(SetWorkloadMask,                PPSMC_MSG_SetWorkloadMask),
-       MSG_MAP(SetPptLimit,                    PPSMC_MSG_SetPptLimit),
-       MSG_MAP(SetDriverDramAddrHigh,          PPSMC_MSG_SetDriverDramAddrHigh),
-       MSG_MAP(SetDriverDramAddrLow,           PPSMC_MSG_SetDriverDramAddrLow),
-       MSG_MAP(SetToolsDramAddrHigh,           PPSMC_MSG_SetToolsDramAddrHigh),
-       MSG_MAP(SetToolsDramAddrLow,            PPSMC_MSG_SetToolsDramAddrLow),
-       MSG_MAP(TransferTableSmu2Dram,          PPSMC_MSG_TransferTableSmu2Dram),
-       MSG_MAP(TransferTableDram2Smu,          PPSMC_MSG_TransferTableDram2Smu),
-       MSG_MAP(UseDefaultPPTable,              PPSMC_MSG_UseDefaultPPTable),
-       MSG_MAP(UseBackupPPTable,               PPSMC_MSG_UseBackupPPTable),
-       MSG_MAP(RunBtc,                         PPSMC_MSG_RunBtc),
-       MSG_MAP(EnterBaco,                      PPSMC_MSG_EnterBaco),
-       MSG_MAP(SetSoftMinByFreq,               PPSMC_MSG_SetSoftMinByFreq),
-       MSG_MAP(SetSoftMaxByFreq,               PPSMC_MSG_SetSoftMaxByFreq),
-       MSG_MAP(SetHardMinByFreq,               PPSMC_MSG_SetHardMinByFreq),
-       MSG_MAP(SetHardMaxByFreq,               PPSMC_MSG_SetHardMaxByFreq),
-       MSG_MAP(GetMinDpmFreq,                  PPSMC_MSG_GetMinDpmFreq),
-       MSG_MAP(GetMaxDpmFreq,                  PPSMC_MSG_GetMaxDpmFreq),
-       MSG_MAP(GetDpmFreqByIndex,              PPSMC_MSG_GetDpmFreqByIndex),
-       MSG_MAP(SetMemoryChannelConfig,         PPSMC_MSG_SetMemoryChannelConfig),
-       MSG_MAP(SetGeminiMode,                  PPSMC_MSG_SetGeminiMode),
-       MSG_MAP(SetGeminiApertureHigh,          PPSMC_MSG_SetGeminiApertureHigh),
-       MSG_MAP(SetGeminiApertureLow,           PPSMC_MSG_SetGeminiApertureLow),
-       MSG_MAP(OverridePcieParameters,         PPSMC_MSG_OverridePcieParameters),
-       MSG_MAP(SetMinDeepSleepDcefclk,         PPSMC_MSG_SetMinDeepSleepDcefclk),
-       MSG_MAP(ReenableAcDcInterrupt,          PPSMC_MSG_ReenableAcDcInterrupt),
-       MSG_MAP(NotifyPowerSource,              PPSMC_MSG_NotifyPowerSource),
-       MSG_MAP(SetUclkFastSwitch,              PPSMC_MSG_SetUclkFastSwitch),
-       MSG_MAP(SetVideoFps,                    PPSMC_MSG_SetVideoFps),
-       MSG_MAP(PrepareMp1ForUnload,            PPSMC_MSG_PrepareMp1ForUnload),
-       MSG_MAP(DramLogSetDramAddrHigh,         PPSMC_MSG_DramLogSetDramAddrHigh),
-       MSG_MAP(DramLogSetDramAddrLow,          PPSMC_MSG_DramLogSetDramAddrLow),
-       MSG_MAP(DramLogSetDramSize,             PPSMC_MSG_DramLogSetDramSize),
-       MSG_MAP(ConfigureGfxDidt,               PPSMC_MSG_ConfigureGfxDidt),
-       MSG_MAP(NumOfDisplays,                  PPSMC_MSG_NumOfDisplays),
-       MSG_MAP(SetSystemVirtualDramAddrHigh,   PPSMC_MSG_SetSystemVirtualDramAddrHigh),
-       MSG_MAP(SetSystemVirtualDramAddrLow,    PPSMC_MSG_SetSystemVirtualDramAddrLow),
-       MSG_MAP(AllowGfxOff,                    PPSMC_MSG_AllowGfxOff),
-       MSG_MAP(DisallowGfxOff,                 PPSMC_MSG_DisallowGfxOff),
-       MSG_MAP(GetPptLimit,                    PPSMC_MSG_GetPptLimit),
-       MSG_MAP(GetDcModeMaxDpmFreq,            PPSMC_MSG_GetDcModeMaxDpmFreq),
-       MSG_MAP(GetDebugData,                   PPSMC_MSG_GetDebugData),
-       MSG_MAP(ExitBaco,                       PPSMC_MSG_ExitBaco),
-       MSG_MAP(PrepareMp1ForReset,             PPSMC_MSG_PrepareMp1ForReset),
-       MSG_MAP(PrepareMp1ForShutdown,          PPSMC_MSG_PrepareMp1ForShutdown),
-       MSG_MAP(PowerUpVcn,             PPSMC_MSG_PowerUpVcn),
-       MSG_MAP(PowerDownVcn,           PPSMC_MSG_PowerDownVcn),
-       MSG_MAP(PowerUpJpeg,            PPSMC_MSG_PowerUpJpeg),
-       MSG_MAP(PowerDownJpeg,          PPSMC_MSG_PowerDownJpeg),
-       MSG_MAP(BacoAudioD3PME,         PPSMC_MSG_BacoAudioD3PME),
-       MSG_MAP(ArmD3,                  PPSMC_MSG_ArmD3),
-       MSG_MAP(DAL_DISABLE_DUMMY_PSTATE_CHANGE,PPSMC_MSG_DALDisableDummyPstateChange),
-       MSG_MAP(DAL_ENABLE_DUMMY_PSTATE_CHANGE, PPSMC_MSG_DALEnableDummyPstateChange),
-       MSG_MAP(GetVoltageByDpm,                     PPSMC_MSG_GetVoltageByDpm),
-       MSG_MAP(GetVoltageByDpmOverdrive,            PPSMC_MSG_GetVoltageByDpmOverdrive),
+#define MSG_MAP(msg, index, valid_in_vf) \
+       [SMU_MSG_##msg] = {1, (index), (valid_in_vf)}
+
+static struct smu_11_0_msg_mapping navi10_message_map[SMU_MSG_MAX_COUNT] = {
+       MSG_MAP(TestMessage,                    PPSMC_MSG_TestMessage,                  1),
+       MSG_MAP(GetSmuVersion,                  PPSMC_MSG_GetSmuVersion,                1),
+       MSG_MAP(GetDriverIfVersion,             PPSMC_MSG_GetDriverIfVersion,           1),
+       MSG_MAP(SetAllowedFeaturesMaskLow,      PPSMC_MSG_SetAllowedFeaturesMaskLow,    0),
+       MSG_MAP(SetAllowedFeaturesMaskHigh,     PPSMC_MSG_SetAllowedFeaturesMaskHigh,   0),
+       MSG_MAP(EnableAllSmuFeatures,           PPSMC_MSG_EnableAllSmuFeatures,         0),
+       MSG_MAP(DisableAllSmuFeatures,          PPSMC_MSG_DisableAllSmuFeatures,        0),
+       MSG_MAP(EnableSmuFeaturesLow,           PPSMC_MSG_EnableSmuFeaturesLow,         1),
+       MSG_MAP(EnableSmuFeaturesHigh,          PPSMC_MSG_EnableSmuFeaturesHigh,        1),
+       MSG_MAP(DisableSmuFeaturesLow,          PPSMC_MSG_DisableSmuFeaturesLow,        1),
+       MSG_MAP(DisableSmuFeaturesHigh,         PPSMC_MSG_DisableSmuFeaturesHigh,       1),
+       MSG_MAP(GetEnabledSmuFeaturesLow,       PPSMC_MSG_GetEnabledSmuFeaturesLow,     1),
+       MSG_MAP(GetEnabledSmuFeaturesHigh,      PPSMC_MSG_GetEnabledSmuFeaturesHigh,    1),
+       MSG_MAP(SetWorkloadMask,                PPSMC_MSG_SetWorkloadMask,              1),
+       MSG_MAP(SetPptLimit,                    PPSMC_MSG_SetPptLimit,                  0),
+       MSG_MAP(SetDriverDramAddrHigh,          PPSMC_MSG_SetDriverDramAddrHigh,        0),
+       MSG_MAP(SetDriverDramAddrLow,           PPSMC_MSG_SetDriverDramAddrLow,         0),
+       MSG_MAP(SetToolsDramAddrHigh,           PPSMC_MSG_SetToolsDramAddrHigh,         0),
+       MSG_MAP(SetToolsDramAddrLow,            PPSMC_MSG_SetToolsDramAddrLow,          0),
+       MSG_MAP(TransferTableSmu2Dram,          PPSMC_MSG_TransferTableSmu2Dram,        0),
+       MSG_MAP(TransferTableDram2Smu,          PPSMC_MSG_TransferTableDram2Smu,        0),
+       MSG_MAP(UseDefaultPPTable,              PPSMC_MSG_UseDefaultPPTable,            0),
+       MSG_MAP(UseBackupPPTable,               PPSMC_MSG_UseBackupPPTable,             0),
+       MSG_MAP(RunBtc,                         PPSMC_MSG_RunBtc,                       0),
+       MSG_MAP(EnterBaco,                      PPSMC_MSG_EnterBaco,                    0),
+       MSG_MAP(SetSoftMinByFreq,               PPSMC_MSG_SetSoftMinByFreq,             0),
+       MSG_MAP(SetSoftMaxByFreq,               PPSMC_MSG_SetSoftMaxByFreq,             0),
+       MSG_MAP(SetHardMinByFreq,               PPSMC_MSG_SetHardMinByFreq,             1),
+       MSG_MAP(SetHardMaxByFreq,               PPSMC_MSG_SetHardMaxByFreq,             0),
+       MSG_MAP(GetMinDpmFreq,                  PPSMC_MSG_GetMinDpmFreq,                1),
+       MSG_MAP(GetMaxDpmFreq,                  PPSMC_MSG_GetMaxDpmFreq,                1),
+       MSG_MAP(GetDpmFreqByIndex,              PPSMC_MSG_GetDpmFreqByIndex,            1),
+       MSG_MAP(SetMemoryChannelConfig,         PPSMC_MSG_SetMemoryChannelConfig,       0),
+       MSG_MAP(SetGeminiMode,                  PPSMC_MSG_SetGeminiMode,                0),
+       MSG_MAP(SetGeminiApertureHigh,          PPSMC_MSG_SetGeminiApertureHigh,        0),
+       MSG_MAP(SetGeminiApertureLow,           PPSMC_MSG_SetGeminiApertureLow,         0),
+       MSG_MAP(OverridePcieParameters,         PPSMC_MSG_OverridePcieParameters,       0),
+       MSG_MAP(SetMinDeepSleepDcefclk,         PPSMC_MSG_SetMinDeepSleepDcefclk,       0),
+       MSG_MAP(ReenableAcDcInterrupt,          PPSMC_MSG_ReenableAcDcInterrupt,        0),
+       MSG_MAP(NotifyPowerSource,              PPSMC_MSG_NotifyPowerSource,            0),
+       MSG_MAP(SetUclkFastSwitch,              PPSMC_MSG_SetUclkFastSwitch,            0),
+       MSG_MAP(SetVideoFps,                    PPSMC_MSG_SetVideoFps,                  0),
+       MSG_MAP(PrepareMp1ForUnload,            PPSMC_MSG_PrepareMp1ForUnload,          1),
+       MSG_MAP(DramLogSetDramAddrHigh,         PPSMC_MSG_DramLogSetDramAddrHigh,       0),
+       MSG_MAP(DramLogSetDramAddrLow,          PPSMC_MSG_DramLogSetDramAddrLow,        0),
+       MSG_MAP(DramLogSetDramSize,             PPSMC_MSG_DramLogSetDramSize,           0),
+       MSG_MAP(ConfigureGfxDidt,               PPSMC_MSG_ConfigureGfxDidt,             0),
+       MSG_MAP(NumOfDisplays,                  PPSMC_MSG_NumOfDisplays,                0),
+       MSG_MAP(SetSystemVirtualDramAddrHigh,   PPSMC_MSG_SetSystemVirtualDramAddrHigh, 0),
+       MSG_MAP(SetSystemVirtualDramAddrLow,    PPSMC_MSG_SetSystemVirtualDramAddrLow,  0),
+       MSG_MAP(AllowGfxOff,                    PPSMC_MSG_AllowGfxOff,                  0),
+       MSG_MAP(DisallowGfxOff,                 PPSMC_MSG_DisallowGfxOff,               0),
+       MSG_MAP(GetPptLimit,                    PPSMC_MSG_GetPptLimit,                  0),
+       MSG_MAP(GetDcModeMaxDpmFreq,            PPSMC_MSG_GetDcModeMaxDpmFreq,          1),
+       MSG_MAP(GetDebugData,                   PPSMC_MSG_GetDebugData,                 0),
+       MSG_MAP(ExitBaco,                       PPSMC_MSG_ExitBaco,                     0),
+       MSG_MAP(PrepareMp1ForReset,             PPSMC_MSG_PrepareMp1ForReset,           0),
+       MSG_MAP(PrepareMp1ForShutdown,          PPSMC_MSG_PrepareMp1ForShutdown,        0),
+       MSG_MAP(PowerUpVcn,                     PPSMC_MSG_PowerUpVcn,                   0),
+       MSG_MAP(PowerDownVcn,                   PPSMC_MSG_PowerDownVcn,                 0),
+       MSG_MAP(PowerUpJpeg,                    PPSMC_MSG_PowerUpJpeg,                  0),
+       MSG_MAP(PowerDownJpeg,                  PPSMC_MSG_PowerDownJpeg,                0),
+       MSG_MAP(BacoAudioD3PME,                 PPSMC_MSG_BacoAudioD3PME,               0),
+       MSG_MAP(ArmD3,                          PPSMC_MSG_ArmD3,                        0),
+       MSG_MAP(DAL_DISABLE_DUMMY_PSTATE_CHANGE,PPSMC_MSG_DALDisableDummyPstateChange,  0),
+       MSG_MAP(DAL_ENABLE_DUMMY_PSTATE_CHANGE, PPSMC_MSG_DALEnableDummyPstateChange,   0),
+       MSG_MAP(GetVoltageByDpm,                PPSMC_MSG_GetVoltageByDpm,              0),
+       MSG_MAP(GetVoltageByDpmOverdrive,       PPSMC_MSG_GetVoltageByDpmOverdrive,     0),
 };
 
 static struct smu_11_0_cmn2aisc_mapping navi10_clk_map[SMU_CLK_COUNT] = {
@@ -218,7 +218,7 @@ static struct smu_11_0_cmn2aisc_mapping navi10_workload_map[PP_SMC_POWER_PROFILE
 
 static int navi10_get_smu_msg_index(struct smu_context *smc, uint32_t index)
 {
-       struct smu_11_0_cmn2aisc_mapping mapping;
+       struct smu_11_0_msg_mapping mapping;
 
        if (index >= SMU_MSG_MAX_COUNT)
                return -EINVAL;