Need to perform DC-BTC for arcturus on bootup.
Signed-off-by: Evan Quan <evan.quan@amd.com>
Reviewed-by: Kevin Wang <kevin1.wang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
        if (ret)
                return ret;
 
-       /* issue RunAfllBtc msg */
-       ret = smu_run_afll_btc(smu);
+       /* issue Run*Btc msg */
+       ret = smu_run_btc(smu);
        if (ret)
                return ret;
 
 
        MSG_MAP(PrepareMp1ForShutdown,               PPSMC_MSG_PrepareMp1ForShutdown),
        MSG_MAP(SoftReset,                           PPSMC_MSG_SoftReset),
        MSG_MAP(RunAfllBtc,                          PPSMC_MSG_RunAfllBtc),
-       MSG_MAP(RunGfxDcBtc,                         PPSMC_MSG_RunGfxDcBtc),
-       MSG_MAP(RunSocDcBtc,                         PPSMC_MSG_RunSocDcBtc),
+       MSG_MAP(RunDcBtc,                            PPSMC_MSG_RunDcBtc),
        MSG_MAP(DramLogSetDramAddrHigh,              PPSMC_MSG_DramLogSetDramAddrHigh),
        MSG_MAP(DramLogSetDramAddrLow,               PPSMC_MSG_DramLogSetDramAddrLow),
        MSG_MAP(DramLogSetDramSize,                  PPSMC_MSG_DramLogSetDramSize),
        return 0;
 }
 
-static int arcturus_run_btc_afll(struct smu_context *smu)
+static int arcturus_run_btc(struct smu_context *smu)
 {
-       return smu_send_smc_msg(smu, SMU_MSG_RunAfllBtc);
+       int ret = 0;
+
+       ret = smu_send_smc_msg(smu, SMU_MSG_RunAfllBtc);
+       if (ret) {
+               pr_err("RunAfllBtc failed!\n");
+               return ret;
+       }
+
+       return smu_send_smc_msg(smu, SMU_MSG_RunDcBtc);
 }
 
 static int arcturus_populate_umd_state_clk(struct smu_context *smu)
        /* init dpm */
        .get_allowed_feature_mask = arcturus_get_allowed_feature_mask,
        /* btc */
-       .run_afll_btc = arcturus_run_btc_afll,
+       .run_btc = arcturus_run_btc,
        /* dpm/clk tables */
        .set_default_dpm_table = arcturus_set_default_dpm_table,
        .populate_umd_state_clk = arcturus_populate_umd_state_clk,
 
        int (*get_smu_table_index)(struct smu_context *smu, uint32_t index);
        int (*get_smu_power_index)(struct smu_context *smu, uint32_t index);
        int (*get_workload_type)(struct smu_context *smu, enum PP_SMC_POWER_PROFILE profile);
-       int (*run_afll_btc)(struct smu_context *smu);
+       int (*run_btc)(struct smu_context *smu);
        int (*get_allowed_feature_mask)(struct smu_context *smu, uint32_t *feature_mask, uint32_t num);
        enum amd_pm_state_type (*get_current_power_state)(struct smu_context *smu);
        int (*set_default_dpm_table)(struct smu_context *smu);
        ((smu)->ppt_funcs? ((smu)->ppt_funcs->get_smu_power_index? (smu)->ppt_funcs->get_smu_power_index((smu), (src)) : -EINVAL) : -EINVAL)
 #define smu_workload_get_type(smu, profile) \
        ((smu)->ppt_funcs? ((smu)->ppt_funcs->get_workload_type? (smu)->ppt_funcs->get_workload_type((smu), (profile)) : -EINVAL) : -EINVAL)
-#define smu_run_afll_btc(smu) \
-       ((smu)->ppt_funcs? ((smu)->ppt_funcs->run_afll_btc? (smu)->ppt_funcs->run_afll_btc((smu)) : 0) : 0)
+#define smu_run_btc(smu) \
+       ((smu)->ppt_funcs? ((smu)->ppt_funcs->run_btc? (smu)->ppt_funcs->run_btc((smu)) : 0) : 0)
 #define smu_get_allowed_feature_mask(smu, feature_mask, num) \
        ((smu)->ppt_funcs? ((smu)->ppt_funcs->get_allowed_feature_mask? (smu)->ppt_funcs->get_allowed_feature_mask((smu), (feature_mask), (num)) : 0) : 0)
 #define smu_set_deep_sleep_dcefclk(smu, clk) \
 
 
 //BTC
 #define PPSMC_MSG_RunAfllBtc                     0x30
-#define PPSMC_MSG_RunGfxDcBtc                    0x31
-#define PPSMC_MSG_RunSocDcBtc                    0x32
+#define PPSMC_MSG_RunDcBtc                       0x31
 
 //Debug
 #define PPSMC_MSG_DramLogSetDramAddrHigh         0x33
 
        __SMU_DUMMY_MAP(PowerDownJpeg),                \
        __SMU_DUMMY_MAP(BacoAudioD3PME),               \
        __SMU_DUMMY_MAP(ArmD3),                        \
+       __SMU_DUMMY_MAP(RunDcBtc),                     \
        __SMU_DUMMY_MAP(RunGfxDcBtc),                  \
        __SMU_DUMMY_MAP(RunSocDcBtc),                  \
        __SMU_DUMMY_MAP(SetMemoryChannelEnable),       \
 
        .get_smu_table_index = vega20_get_smu_table_index,
        .get_smu_power_index = vega20_get_pwr_src_index,
        .get_workload_type = vega20_get_workload_type,
-       .run_afll_btc = vega20_run_btc_afll,
+       .run_btc = vega20_run_btc_afll,
        .get_allowed_feature_mask = vega20_get_allowed_feature_mask,
        .get_current_power_state = vega20_get_current_power_state,
        .set_default_dpm_table = vega20_set_default_dpm_table,