drm/amd/powerplay: add interface to populate smc pptable (v2)
authorHuang Rui <ray.huang@amd.com>
Tue, 4 Dec 2018 13:42:41 +0000 (21:42 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 19 Mar 2019 20:03:54 +0000 (15:03 -0500)
This patch adds interface to populate smc pptable for smu.
It's to set initialized values (get from vbios) to dpm tables context such as
gfxclk, memclk, dcefclk, and etc. And enable the DPM feature for each type of
clks.

v2: add detailed info to describe this function

Signed-off-by: Huang Rui <ray.huang@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/powerplay/amdgpu_smu.c
drivers/gpu/drm/amd/powerplay/inc/amdgpu_smu.h

index 323db7dc47b1edb264c3be602d12a085aa35d2ca..b40a3c15a1b39114a6d5c754e8214593a0d437b5 100644 (file)
@@ -175,6 +175,15 @@ static int smu_smc_table_hw_init(struct smu_context *smu)
        if (ret)
                return ret;
 
+       /*
+        * Set initialized values (get from vbios) to dpm tables context such as
+        * gfxclk, memclk, dcefclk, and etc. And enable the DPM feature for each
+        * type of clks.
+        */
+       ret = smu_populate_smc_pptable(smu);
+       if (ret)
+               return ret;
+
        return 0;
 }
 
index fcdbade49878c707a059379e4668f699d4e4d154..da797771c88555311b8702fc4aaea0eac17057b5 100644 (file)
@@ -43,6 +43,7 @@ struct smu_funcs
        int (*get_vbios_bootup_values)(struct smu_context *smu);
        int (*check_pptable)(struct smu_context *smu);
        int (*parse_pptable)(struct smu_context *smu);
+       int (*populate_smc_pptable)(struct smu_context *smu);
 };
 
 #define smu_init_microcode(smu) \
@@ -63,6 +64,8 @@ struct smu_funcs
        ((smu)->funcs->check_pptable ? (smu)->funcs->check_pptable((smu)) : 0)
 #define smu_parse_pptable(smu) \
        ((smu)->funcs->parse_pptable ? (smu)->funcs->parse_pptable((smu)) : 0)
+#define smu_populate_smc_pptable(smu) \
+       ((smu)->funcs->populate_smc_pptable ? (smu)->funcs->populate_smc_pptable((smu)) : 0)
 
 
 extern const struct amd_ip_funcs smu_ip_funcs;