drm/amd/pm: change pp_dpm_sclk/mclk/fclk attribute is RO for aldebaran
[linux-2.6-microblaze.git] / drivers / gpu / drm / amd / pm / amdgpu_pm.c
index 769f58d..221aff2 100644 (file)
@@ -2094,14 +2094,19 @@ static int default_attr_update(struct amdgpu_device *adev, struct amdgpu_device_
                        *states = ATTR_STATE_UNSUPPORTED;
        }
 
-       if (asic_type == CHIP_ARCTURUS) {
-               /* Arcturus does not support standalone mclk/socclk/fclk level setting */
+       switch (asic_type) {
+       case CHIP_ARCTURUS:
+       case CHIP_ALDEBARAN:
+               /* the Mi series card does not support standalone mclk/socclk/fclk level setting */
                if (DEVICE_ATTR_IS(pp_dpm_mclk) ||
                    DEVICE_ATTR_IS(pp_dpm_socclk) ||
                    DEVICE_ATTR_IS(pp_dpm_fclk)) {
                        dev_attr->attr.mode &= ~S_IWUGO;
                        dev_attr->store = NULL;
                }
+               break;
+       default:
+               break;
        }
 
        if (DEVICE_ATTR_IS(pp_dpm_dcefclk)) {
@@ -2379,7 +2384,7 @@ static ssize_t amdgpu_hwmon_get_pwm1_enable(struct device *dev,
        pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
        pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
 
-       return sprintf(buf, "%u\n", pwm_mode);
+       return sysfs_emit(buf, "%u\n", pwm_mode);
 }
 
 static ssize_t amdgpu_hwmon_set_pwm1_enable(struct device *dev,
@@ -2424,14 +2429,14 @@ static ssize_t amdgpu_hwmon_get_pwm1_min(struct device *dev,
                                         struct device_attribute *attr,
                                         char *buf)
 {
-       return sprintf(buf, "%i\n", 0);
+       return sysfs_emit(buf, "%i\n", 0);
 }
 
 static ssize_t amdgpu_hwmon_get_pwm1_max(struct device *dev,
                                         struct device_attribute *attr,
                                         char *buf)
 {
-       return sprintf(buf, "%i\n", 255);
+       return sysfs_emit(buf, "%i\n", 255);
 }
 
 static ssize_t amdgpu_hwmon_set_pwm1(struct device *dev,
@@ -2517,7 +2522,7 @@ static ssize_t amdgpu_hwmon_get_pwm1(struct device *dev,
 
        speed = (speed * 255) / 100;
 
-       return sprintf(buf, "%i\n", speed);
+       return sysfs_emit(buf, "%i\n", speed);
 }
 
 static ssize_t amdgpu_hwmon_get_fan1_input(struct device *dev,
@@ -2550,7 +2555,7 @@ static ssize_t amdgpu_hwmon_get_fan1_input(struct device *dev,
        if (err)
                return err;
 
-       return sprintf(buf, "%i\n", speed);
+       return sysfs_emit(buf, "%i\n", speed);
 }
 
 static ssize_t amdgpu_hwmon_get_fan1_min(struct device *dev,
@@ -2647,7 +2652,7 @@ static ssize_t amdgpu_hwmon_get_fan1_target(struct device *dev,
        if (err)
                return err;
 
-       return sprintf(buf, "%i\n", rpm);
+       return sysfs_emit(buf, "%i\n", rpm);
 }
 
 static ssize_t amdgpu_hwmon_set_fan1_target(struct device *dev,
@@ -2729,7 +2734,7 @@ static ssize_t amdgpu_hwmon_get_fan1_enable(struct device *dev,
        pm_runtime_mark_last_busy(adev_to_drm(adev)->dev);
        pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
 
-       return sprintf(buf, "%i\n", pwm_mode == AMD_FAN_CTRL_AUTO ? 0 : 1);
+       return sysfs_emit(buf, "%i\n", pwm_mode == AMD_FAN_CTRL_AUTO ? 0 : 1);
 }
 
 static ssize_t amdgpu_hwmon_set_fan1_enable(struct device *dev,
@@ -2899,7 +2904,7 @@ static ssize_t amdgpu_hwmon_show_power_cap_min(struct device *dev,
                                         struct device_attribute *attr,
                                         char *buf)
 {
-       return sprintf(buf, "%i\n", 0);
+       return sysfs_emit(buf, "%i\n", 0);
 }