With powerplay enabled, also need to skip fan attributes
if no fan present.

Signed-off-by: Rex Zhu <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c      | 21 ++++++++-------------
 drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c |  3 +++
 2 files changed, 11 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
index d9802d9..2c82126 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
@@ -1364,19 +1364,14 @@ static umode_t hwmon_attributes_visible(struct kobject 
*kobj,
        struct amdgpu_device *adev = dev_get_drvdata(dev);
        umode_t effective_mode = attr->mode;
 
-       /* handle non-powerplay limitations */
-       if (!adev->powerplay.pp_handle) {
-               /* Skip fan attributes if fan is not present */
-               if (adev->pm.no_fan &&
-                   (attr == &sensor_dev_attr_pwm1.dev_attr.attr ||
-                    attr == &sensor_dev_attr_pwm1_enable.dev_attr.attr ||
-                    attr == &sensor_dev_attr_pwm1_max.dev_attr.attr ||
-                    attr == &sensor_dev_attr_pwm1_min.dev_attr.attr))
-                       return 0;
-               /* requires powerplay */
-               if (attr == &sensor_dev_attr_fan1_input.dev_attr.attr)
-                       return 0;
-       }
+
+       /* Skip fan attributes if fan is not present */
+       if (adev->pm.no_fan && (attr == &sensor_dev_attr_pwm1.dev_attr.attr ||
+           attr == &sensor_dev_attr_pwm1_enable.dev_attr.attr ||
+           attr == &sensor_dev_attr_pwm1_max.dev_attr.attr ||
+           attr == &sensor_dev_attr_pwm1_min.dev_attr.attr ||
+           attr == &sensor_dev_attr_fan1_input.dev_attr.attr))
+               return 0;
 
        /* Skip limit attributes if DPM is not enabled */
        if (!adev->pm.dpm_enabled &&
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c 
b/drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c
index d1052b5..43f0ea8 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c
@@ -223,6 +223,9 @@ int hwmgr_hw_init(struct pp_hwmgr *hwmgr)
        if (ret)
                goto err;
 
+       ((struct amdgpu_device *)hwmgr->adev)->pm.no_fan =
+                               hwmgr->thermal_controller.fanInfo.bNoFan;
+
        ret = hwmgr->hwmgr_func->backend_init(hwmgr);
        if (ret)
                goto err1;
-- 
1.9.1

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

Reply via email to