Change-Id: I56e713e16b9a794857e7ecbb7ca47e0ddd727862
Signed-off-by: Evan Quan <[email protected]>
---
 drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c | 20 ++++++++++++++++++++
 drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.h |  2 ++
 2 files changed, 22 insertions(+)

diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c 
b/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c
index 6f0b2e5..e2ad41d 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.c
@@ -421,6 +421,26 @@ static int rv_populate_clock_table(struct pp_hwmgr *hwmgr)
        rv_get_clock_voltage_dependency_table(hwmgr, &pinfo->vdd_dep_on_phyclk,
                                        ARRAY_SIZE(VddPhyClk), &VddPhyClk[0]);
 
+       PP_ASSERT_WITH_CODE(!smum_send_msg_to_smc(hwmgr->smumgr,
+                       PPSMC_MSG_GetMinGfxclkFrequency),
+                       "Attempt to get min GFXCLK Failed!",
+                       return -1);
+       PP_ASSERT_WITH_CODE(!rv_read_arg_from_smc(hwmgr->smumgr,
+                       &result),
+                       "Attempt to get min GFXCLK Failed!",
+                       return -1);
+       rv_data->gfx_min_freq_limit = result * 100;
+
+       PP_ASSERT_WITH_CODE(!smum_send_msg_to_smc(hwmgr->smumgr,
+                       PPSMC_MSG_GetMaxGfxclkFrequency),
+                       "Attempt to get max GFXCLK Failed!",
+                       return -1);
+       PP_ASSERT_WITH_CODE(!rv_read_arg_from_smc(hwmgr->smumgr,
+                       &result),
+                       "Attempt to get max GFXCLK Failed!",
+                       return -1);
+       rv_data->gfx_max_freq_limit = result * 100;
+
        return 0;
 }
 
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.h 
b/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.h
index 68d61bd..9dc5030 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.h
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/rv_hwmgr.h
@@ -283,6 +283,8 @@ struct rv_hwmgr {
        uint32_t                        vclk_soft_min;
        uint32_t                        dclk_soft_min;
        uint32_t                        gfx_actual_soft_min_freq;
+       uint32_t                        gfx_min_freq_limit;
+       uint32_t                        gfx_max_freq_limit;
 
        bool                           vcn_power_gated;
        bool                           vcn_dpg_mode;
-- 
2.7.4

_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to