drm/amd/powerplay: round up the Mhz convertion (v2)
authorEvan Quan <evan.quan@amd.com>
Tue, 19 Jun 2018 15:32:50 +0000 (10:32 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 14 Sep 2018 14:37:06 +0000 (09:37 -0500)
Since the clock value there may be like 29999 10Khz.

v2: rebase (Alex)

Signed-off-by: Evan Quan <evan.quan@amd.com>
Reviewed-by: Huang Rui <ray.huang@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c

index 26d130a917259151be6eeeee20bd5c96cd83ea7e..5b55c709fb1ce27cc773da69a16506a32e4ebe28 100644 (file)
@@ -211,12 +211,18 @@ static int smu10_set_clock_limit(struct pp_hwmgr *hwmgr, const void *input)
        return 0;
 }
 
+static inline uint32_t convert_10k_to_mhz(uint32_t clock)
+{
+       return (clock + 99) / 100;
+}
+
 static int smu10_set_deep_sleep_dcefclk(struct pp_hwmgr *hwmgr, uint32_t clock)
 {
        struct smu10_hwmgr *smu10_data = (struct smu10_hwmgr *)(hwmgr->backend);
 
-       if (smu10_data->need_min_deep_sleep_dcefclk && smu10_data->deep_sleep_dcefclk != clock/100) {
-               smu10_data->deep_sleep_dcefclk = clock/100;
+       if (smu10_data->need_min_deep_sleep_dcefclk &&
+           smu10_data->deep_sleep_dcefclk != convert_10k_to_mhz(clock)) {
+               smu10_data->deep_sleep_dcefclk = convert_10k_to_mhz(clock);
                smum_send_msg_to_smc_with_parameter(hwmgr,
                                        PPSMC_MSG_SetMinDeepSleepDcefclk,
                                        smu10_data->deep_sleep_dcefclk);