aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/radeon_pm.c
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2013-06-21 14:38:03 -0400
committerAlex Deucher <alexander.deucher@amd.com>2013-06-27 10:49:16 -0400
commit6bd1c3853210e36569601096e2344f8258fd516d (patch)
tree71b9633963e234e03f12d1096db7206edfe045a0 /drivers/gpu/drm/radeon/radeon_pm.c
parent46f9564ab03e4bf04ffa9647c4d42751f5cdcb97 (diff)
drm/radeon: make get_temperature functions a callback
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_pm.c')
-rw-r--r--drivers/gpu/drm/radeon/radeon_pm.c26
1 files changed, 4 insertions, 22 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_pm.c b/drivers/gpu/drm/radeon/radeon_pm.c
index 788c64cb4b47..e8c1bea9b57b 100644
--- a/drivers/gpu/drm/radeon/radeon_pm.c
+++ b/drivers/gpu/drm/radeon/radeon_pm.c
@@ -434,27 +434,10 @@ static ssize_t radeon_hwmon_show_temp(struct device *dev,
434 struct radeon_device *rdev = ddev->dev_private; 434 struct radeon_device *rdev = ddev->dev_private;
435 int temp; 435 int temp;
436 436
437 switch (rdev->pm.int_thermal_type) { 437 if (rdev->asic->pm.get_temperature)
438 case THERMAL_TYPE_RV6XX: 438 temp = radeon_get_temperature(rdev);
439 temp = rv6xx_get_temp(rdev); 439 else
440 break;
441 case THERMAL_TYPE_RV770:
442 temp = rv770_get_temp(rdev);
443 break;
444 case THERMAL_TYPE_EVERGREEN:
445 case THERMAL_TYPE_NI:
446 temp = evergreen_get_temp(rdev);
447 break;
448 case THERMAL_TYPE_SUMO:
449 temp = sumo_get_temp(rdev);
450 break;
451 case THERMAL_TYPE_SI:
452 temp = si_get_temp(rdev);
453 break;
454 default:
455 temp = 0; 440 temp = 0;
456 break;
457 }
458 441
459 return snprintf(buf, PAGE_SIZE, "%d\n", temp); 442 return snprintf(buf, PAGE_SIZE, "%d\n", temp);
460} 443}
@@ -492,8 +475,7 @@ static int radeon_hwmon_init(struct radeon_device *rdev)
492 case THERMAL_TYPE_NI: 475 case THERMAL_TYPE_NI:
493 case THERMAL_TYPE_SUMO: 476 case THERMAL_TYPE_SUMO:
494 case THERMAL_TYPE_SI: 477 case THERMAL_TYPE_SI:
495 /* No support for TN yet */ 478 if (rdev->asic->pm.get_temperature == NULL)
496 if (rdev->family == CHIP_ARUBA)
497 return err; 479 return err;
498 rdev->pm.int_hwmon_dev = hwmon_device_register(rdev->dev); 480 rdev->pm.int_hwmon_dev = hwmon_device_register(rdev->dev);
499 if (IS_ERR(rdev->pm.int_hwmon_dev)) { 481 if (IS_ERR(rdev->pm.int_hwmon_dev)) {