drm/amd/powerplay: optimize the interface for mgpu fan boost enablement
authorEvan Quan <evan.quan@amd.com>
Wed, 12 Aug 2020 03:53:47 +0000 (11:53 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 14 Aug 2020 20:22:40 +0000 (16:22 -0400)
Cover the implementation details from outside(of power). Also preparing
for expanding this to swSMU.

Signed-off-by: Evan Quan <evan.quan@amd.com>
Acked-by: Nirmoy Das <nirmoy.das@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c
drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.h

index fe88787..bb7f0c8 100644 (file)
@@ -2228,9 +2228,7 @@ static int amdgpu_device_enable_mgpu_fan_boost(void)
                gpu_ins = &(mgpu_info.gpu_ins[i]);
                adev = gpu_ins->adev;
                if (!(adev->flags & AMD_IS_APU) &&
-                   !gpu_ins->mgpu_fan_enabled &&
-                   adev->powerplay.pp_funcs &&
-                   adev->powerplay.pp_funcs->enable_mgpu_fan_boost) {
+                   !gpu_ins->mgpu_fan_enabled) {
                        ret = amdgpu_dpm_enable_mgpu_fan_boost(adev);
                        if (ret)
                                break;
index 2082c0a..27417f8 100644 (file)
@@ -1216,3 +1216,16 @@ int amdgpu_dpm_allow_xgmi_power_down(struct amdgpu_device *adev, bool en)
 
        return 0;
 }
+
+int amdgpu_dpm_enable_mgpu_fan_boost(struct amdgpu_device *adev)
+{
+       void *pp_handle = adev->powerplay.pp_handle;
+       const struct amd_pm_funcs *pp_funcs =
+                       adev->powerplay.pp_funcs;
+       int ret = 0;
+
+       if (pp_funcs && pp_funcs->enable_mgpu_fan_boost)
+               ret = pp_funcs->enable_mgpu_fan_boost(pp_handle);
+
+       return ret;
+}
index b190c0a..cc16b5a 100644 (file)
@@ -357,10 +357,6 @@ enum amdgpu_pcie_gen {
                ((adev)->powerplay.pp_funcs->odn_edit_dpm_table(\
                        (adev)->powerplay.pp_handle, type, parameter, size))
 
-#define amdgpu_dpm_enable_mgpu_fan_boost(adev) \
-               ((adev)->powerplay.pp_funcs->enable_mgpu_fan_boost(\
-                       (adev)->powerplay.pp_handle))
-
 #define amdgpu_dpm_get_ppfeature_status(adev, buf) \
                ((adev)->powerplay.pp_funcs->get_ppfeature_status(\
                        (adev)->powerplay.pp_handle, (buf)))
@@ -548,4 +544,6 @@ int amdgpu_dpm_set_df_cstate(struct amdgpu_device *adev,
 
 int amdgpu_dpm_allow_xgmi_power_down(struct amdgpu_device *adev, bool en);
 
+int amdgpu_dpm_enable_mgpu_fan_boost(struct amdgpu_device *adev);
+
 #endif