drm/amdgpu: Disable sysfs pwm1 if not in manual fan control
authorRex Zhu <Rex.Zhu@amd.com>
Fri, 28 Sep 2018 08:01:48 +0000 (16:01 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 9 Oct 2018 22:05:05 +0000 (17:05 -0500)
Following lm-sensors 3.0.0,
Only enable pwm1 sysfs when fan control mode(pwm1_enable)
in manual

Reviewed-by: Evan Quan <evan.quan@amd.com>
Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c

index a9f68753ec7f1a8f4fbc1ba2f06732356c42571c..68548fbdee097cf329c2326ab6d6599adde39d98 100644 (file)
@@ -1120,12 +1120,19 @@ static ssize_t amdgpu_hwmon_set_pwm1(struct device *dev,
        struct amdgpu_device *adev = dev_get_drvdata(dev);
        int err;
        u32 value;
+       u32 pwm_mode;
 
        /* Can't adjust fan when the card is off */
        if  ((adev->flags & AMD_IS_PX) &&
             (adev->ddev->switch_power_state != DRM_SWITCH_POWER_ON))
                return -EINVAL;
 
+       pwm_mode = amdgpu_dpm_get_fan_control_mode(adev);
+       if (pwm_mode != AMD_FAN_CTRL_MANUAL) {
+               pr_info("manual fan speed control should be enabled first\n");
+               return -EINVAL;
+       }
+
        err = kstrtou32(buf, 10, &value);
        if (err)
                return err;