diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2012-03-21 01:18:10 +0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2012-03-21 10:55:52 +0400 |
commit | 1bd47d2e16573496efd2fd0ec36f57031d478f87 (patch) | |
tree | fca64840969fdfb2ac2b85a4a3130f87f6de756d /drivers/gpu/drm/radeon/si.c | |
parent | 14607d08366c3787f70b8e5a0a29adfb28e5f128 (diff) | |
download | linux-1bd47d2e16573496efd2fd0ec36f57031d478f87.tar.xz |
drm/radeon/kms: add support for internal thermal sensor on SI
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/si.c')
-rw-r--r-- | drivers/gpu/drm/radeon/si.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c index 39c64df005cf..3e91429d7bd2 100644 --- a/drivers/gpu/drm/radeon/si.c +++ b/drivers/gpu/drm/radeon/si.c @@ -28,6 +28,25 @@ #include "sid.h" #include "atom.h" +/* get temperature in millidegrees */ +int si_get_temp(struct radeon_device *rdev) +{ + u32 temp; + int actual_temp = 0; + + temp = (RREG32(CG_MULT_THERMAL_STATUS) & CTF_TEMP_MASK) >> + CTF_TEMP_SHIFT; + + if (temp & 0x200) + actual_temp = 255; + else + actual_temp = temp & 0x1ff; + + actual_temp = (actual_temp * 1000); + + return actual_temp; +} + /* watermark setup */ static u32 dce6_line_buffer_adjust(struct radeon_device *rdev, struct radeon_crtc *radeon_crtc, |