diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2012-12-14 11:57:36 -0500 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2013-06-27 10:49:17 -0400 |
commit | 29a152218980fee821da952cb4edea2e3231ee0c (patch) | |
tree | abef5398674ab0eeaef42e8a4bb2c68043d73c4a /drivers | |
parent | 6bd1c3853210e36569601096e2344f8258fd516d (diff) |
drm/radeon: add support for thermal sensor on tn
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/drm/radeon/ni.c | 8 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/nid.h | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_asic.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_asic.h | 1 |
4 files changed, 13 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c index 84583302b081..f88946160854 100644 --- a/drivers/gpu/drm/radeon/ni.c +++ b/drivers/gpu/drm/radeon/ni.c | |||
@@ -692,6 +692,14 @@ out: | |||
692 | return err; | 692 | return err; |
693 | } | 693 | } |
694 | 694 | ||
695 | int tn_get_temp(struct radeon_device *rdev) | ||
696 | { | ||
697 | u32 temp = RREG32_SMC(TN_CURRENT_GNB_TEMP) & 0x7ff; | ||
698 | int actual_temp = (temp / 8) - 49; | ||
699 | |||
700 | return actual_temp * 1000; | ||
701 | } | ||
702 | |||
695 | /* | 703 | /* |
696 | * Core functions | 704 | * Core functions |
697 | */ | 705 | */ |
diff --git a/drivers/gpu/drm/radeon/nid.h b/drivers/gpu/drm/radeon/nid.h index e226faf16fea..7b8da5214729 100644 --- a/drivers/gpu/drm/radeon/nid.h +++ b/drivers/gpu/drm/radeon/nid.h | |||
@@ -489,6 +489,9 @@ | |||
489 | # define CACHE_FLUSH_AND_INV_EVENT_TS (0x14 << 0) | 489 | # define CACHE_FLUSH_AND_INV_EVENT_TS (0x14 << 0) |
490 | # define CACHE_FLUSH_AND_INV_EVENT (0x16 << 0) | 490 | # define CACHE_FLUSH_AND_INV_EVENT (0x16 << 0) |
491 | 491 | ||
492 | /* TN SMU registers */ | ||
493 | #define TN_CURRENT_GNB_TEMP 0x1F390 | ||
494 | |||
492 | /* | 495 | /* |
493 | * UVD | 496 | * UVD |
494 | */ | 497 | */ |
diff --git a/drivers/gpu/drm/radeon/radeon_asic.c b/drivers/gpu/drm/radeon/radeon_asic.c index 9f5426388cf7..0a39680ed166 100644 --- a/drivers/gpu/drm/radeon/radeon_asic.c +++ b/drivers/gpu/drm/radeon/radeon_asic.c | |||
@@ -1897,6 +1897,7 @@ static struct radeon_asic trinity_asic = { | |||
1897 | .set_pcie_lanes = NULL, | 1897 | .set_pcie_lanes = NULL, |
1898 | .set_clock_gating = NULL, | 1898 | .set_clock_gating = NULL, |
1899 | .set_uvd_clocks = &sumo_set_uvd_clocks, | 1899 | .set_uvd_clocks = &sumo_set_uvd_clocks, |
1900 | .get_temperature = &tn_get_temp, | ||
1900 | }, | 1901 | }, |
1901 | .pflip = { | 1902 | .pflip = { |
1902 | .pre_page_flip = &evergreen_pre_page_flip, | 1903 | .pre_page_flip = &evergreen_pre_page_flip, |
diff --git a/drivers/gpu/drm/radeon/radeon_asic.h b/drivers/gpu/drm/radeon/radeon_asic.h index 74f04a8c7db4..0879f3be8cbc 100644 --- a/drivers/gpu/drm/radeon/radeon_asic.h +++ b/drivers/gpu/drm/radeon/radeon_asic.h | |||
@@ -492,6 +492,7 @@ void evergreen_hdmi_enable(struct drm_encoder *encoder, bool enable); | |||
492 | void evergreen_hdmi_setmode(struct drm_encoder *encoder, struct drm_display_mode *mode); | 492 | void evergreen_hdmi_setmode(struct drm_encoder *encoder, struct drm_display_mode *mode); |
493 | int evergreen_get_temp(struct radeon_device *rdev); | 493 | int evergreen_get_temp(struct radeon_device *rdev); |
494 | int sumo_get_temp(struct radeon_device *rdev); | 494 | int sumo_get_temp(struct radeon_device *rdev); |
495 | int tn_get_temp(struct radeon_device *rdev); | ||
495 | 496 | ||
496 | /* | 497 | /* |
497 | * cayman | 498 | * cayman |