diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_pm.c')
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_pm.c | 68 | 
1 files changed, 29 insertions, 39 deletions
| diff --git a/drivers/gpu/drm/radeon/radeon_pm.c b/drivers/gpu/drm/radeon/radeon_pm.c index 1995dad59dd0..0c1950f4e146 100644 --- a/drivers/gpu/drm/radeon/radeon_pm.c +++ b/drivers/gpu/drm/radeon/radeon_pm.c @@ -26,7 +26,6 @@  #include <linux/pci.h>  #include <linux/power_supply.h> -#include <drm/drm_debugfs.h>  #include <drm/drm_vblank.h>  #include "atom.h" @@ -48,7 +47,7 @@ static const char *radeon_pm_state_type_name[5] = {  };  static void radeon_dynpm_idle_work_handler(struct work_struct *work); -static int radeon_debugfs_pm_init(struct radeon_device *rdev); +static void radeon_debugfs_pm_init(struct radeon_device *rdev);  static bool radeon_pm_in_vbl(struct radeon_device *rdev);  static bool radeon_pm_debug_check_in_vbl(struct radeon_device *rdev, bool finish);  static void radeon_pm_update_profile(struct radeon_device *rdev); @@ -361,11 +360,10 @@ static ssize_t radeon_get_pm_profile(struct device *dev,  	struct radeon_device *rdev = ddev->dev_private;  	int cp = rdev->pm.profile; -	return snprintf(buf, PAGE_SIZE, "%s\n", -			(cp == PM_PROFILE_AUTO) ? "auto" : -			(cp == PM_PROFILE_LOW) ? "low" : -			(cp == PM_PROFILE_MID) ? "mid" : -			(cp == PM_PROFILE_HIGH) ? "high" : "default"); +	return sysfs_emit(buf, "%s\n", (cp == PM_PROFILE_AUTO) ? "auto" : +			  (cp == PM_PROFILE_LOW) ? "low" : +			  (cp == PM_PROFILE_MID) ? "mid" : +			  (cp == PM_PROFILE_HIGH) ? "high" : "default");  }  static ssize_t radeon_set_pm_profile(struct device *dev, @@ -416,9 +414,8 @@ static ssize_t radeon_get_pm_method(struct device *dev,  	struct radeon_device *rdev = ddev->dev_private;  	int pm = rdev->pm.pm_method; -	return snprintf(buf, PAGE_SIZE, "%s\n", -			(pm == PM_METHOD_DYNPM) ? "dynpm" : -			(pm == PM_METHOD_PROFILE) ? "profile" : "dpm"); +	return sysfs_emit(buf, "%s\n", (pm == PM_METHOD_DYNPM) ? "dynpm" : +			  (pm == PM_METHOD_PROFILE) ? "profile" : "dpm");  }  static ssize_t radeon_set_pm_method(struct device *dev, @@ -473,9 +470,9 @@ static ssize_t radeon_get_dpm_state(struct device *dev,  	struct radeon_device *rdev = ddev->dev_private;  	enum radeon_pm_state_type pm = rdev->pm.dpm.user_state; -	return snprintf(buf, PAGE_SIZE, "%s\n", -			(pm == POWER_STATE_TYPE_BATTERY) ? "battery" : -			(pm == POWER_STATE_TYPE_BALANCED) ? "balanced" : "performance"); +	return sysfs_emit(buf, "%s\n", +			  (pm == POWER_STATE_TYPE_BATTERY) ? "battery" : +			  (pm == POWER_STATE_TYPE_BALANCED) ? "balanced" : "performance");  }  static ssize_t radeon_set_dpm_state(struct device *dev, @@ -519,11 +516,11 @@ static ssize_t radeon_get_dpm_forced_performance_level(struct device *dev,  	if  ((rdev->flags & RADEON_IS_PX) &&  	     (ddev->switch_power_state != DRM_SWITCH_POWER_ON)) -		return snprintf(buf, PAGE_SIZE, "off\n"); +		return sysfs_emit(buf, "off\n"); -	return snprintf(buf, PAGE_SIZE, "%s\n", -			(level == RADEON_DPM_FORCED_LEVEL_AUTO) ? "auto" : -			(level == RADEON_DPM_FORCED_LEVEL_LOW) ? "low" : "high"); +	return sysfs_emit(buf, "%s\n", +			  (level == RADEON_DPM_FORCED_LEVEL_AUTO) ? "auto" : +			  (level == RADEON_DPM_FORCED_LEVEL_LOW) ? "low" : "high");  }  static ssize_t radeon_set_dpm_forced_performance_level(struct device *dev, @@ -686,7 +683,7 @@ static ssize_t radeon_hwmon_show_temp(struct device *dev,  	else  		temp = 0; -	return snprintf(buf, PAGE_SIZE, "%d\n", temp); +	return sysfs_emit(buf, "%d\n", temp);  }  static ssize_t radeon_hwmon_show_temp_thresh(struct device *dev, @@ -702,7 +699,7 @@ static ssize_t radeon_hwmon_show_temp_thresh(struct device *dev,  	else  		temp = rdev->pm.dpm.thermal.max_temp; -	return snprintf(buf, PAGE_SIZE, "%d\n", temp); +	return sysfs_emit(buf, "%d\n", temp);  }  static SENSOR_DEVICE_ATTR(temp1_input, S_IRUGO, radeon_hwmon_show_temp, NULL, 0); @@ -732,7 +729,7 @@ static ssize_t radeon_hwmon_show_sclk(struct device *dev,  	   for hwmon */  	sclk *= 10000; -	return snprintf(buf, PAGE_SIZE, "%u\n", sclk); +	return sysfs_emit(buf, "%u\n", sclk);  }  static SENSOR_DEVICE_ATTR(freq1_input, S_IRUGO, radeon_hwmon_show_sclk, NULL, @@ -753,7 +750,7 @@ static ssize_t radeon_hwmon_show_vddc(struct device *dev,  	if (rdev->asic->dpm.get_current_vddc)  		vddc = rdev->asic->dpm.get_current_vddc(rdev); -	return snprintf(buf, PAGE_SIZE, "%u\n", vddc); +	return sysfs_emit(buf, "%u\n", vddc);  }  static SENSOR_DEVICE_ATTR(in0_input, S_IRUGO, radeon_hwmon_show_vddc, NULL, @@ -1399,10 +1396,7 @@ static int radeon_pm_init_old(struct radeon_device *rdev)  	INIT_DELAYED_WORK(&rdev->pm.dynpm_idle_work, radeon_dynpm_idle_work_handler);  	if (rdev->pm.num_power_states > 1) { -		if (radeon_debugfs_pm_init(rdev)) { -			DRM_ERROR("Failed to register debugfs file for PM!\n"); -		} - +		radeon_debugfs_pm_init(rdev);  		DRM_INFO("radeon: power management initialized\n");  	} @@ -1456,9 +1450,7 @@ static int radeon_pm_init_dpm(struct radeon_device *rdev)  		goto dpm_failed;  	rdev->pm.dpm_enabled = true; -	if (radeon_debugfs_pm_init(rdev)) { -		DRM_ERROR("Failed to register debugfs file for dpm!\n"); -	} +	radeon_debugfs_pm_init(rdev);  	DRM_INFO("radeon: dpm initialized\n"); @@ -1916,11 +1908,9 @@ static void radeon_dynpm_idle_work_handler(struct work_struct *work)   */  #if defined(CONFIG_DEBUG_FS) -static int radeon_debugfs_pm_info(struct seq_file *m, void *data) +static int radeon_debugfs_pm_info_show(struct seq_file *m, void *unused)  { -	struct drm_info_node *node = (struct drm_info_node *) m->private; -	struct drm_device *dev = node->minor->dev; -	struct radeon_device *rdev = dev->dev_private; +	struct radeon_device *rdev = (struct radeon_device *)m->private;  	struct drm_device *ddev = rdev->ddev;  	if  ((rdev->flags & RADEON_IS_PX) && @@ -1952,16 +1942,16 @@ static int radeon_debugfs_pm_info(struct seq_file *m, void *data)  	return 0;  } -static struct drm_info_list radeon_pm_info_list[] = { -	{"radeon_pm_info", radeon_debugfs_pm_info, 0, NULL}, -}; +DEFINE_SHOW_ATTRIBUTE(radeon_debugfs_pm_info);  #endif -static int radeon_debugfs_pm_init(struct radeon_device *rdev) +static void radeon_debugfs_pm_init(struct radeon_device *rdev)  {  #if defined(CONFIG_DEBUG_FS) -	return radeon_debugfs_add_files(rdev, radeon_pm_info_list, ARRAY_SIZE(radeon_pm_info_list)); -#else -	return 0; +	struct dentry *root = rdev->ddev->primary->debugfs_root; + +	debugfs_create_file("radeon_pm_info", 0444, root, rdev, +			    &radeon_debugfs_pm_info_fops); +  #endif  } | 
