aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2014-11-07 18:31:39 -0500
committerAlex Deucher <alexander.deucher@amd.com>2014-11-12 11:56:45 -0500
commit542b379b55513ac1c564de7d8dac1cee8b3ba7e8 (patch)
tree32560fd97f35228a564cd69925d44cf764d2ff0c
parent90b2fee35cb9c143f049091ff7ea87500c5c7c46 (diff)
drm/radeon: powertune fixes for hawaii
- bapm is not available on hawaii - update pt defaults Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/radeon/ci_dpm.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/drivers/gpu/drm/radeon/ci_dpm.c b/drivers/gpu/drm/radeon/ci_dpm.c
index d9071aefc5f5..4d880906a390 100644
--- a/drivers/gpu/drm/radeon/ci_dpm.c
+++ b/drivers/gpu/drm/radeon/ci_dpm.c
@@ -46,15 +46,15 @@
46static const struct ci_pt_defaults defaults_hawaii_xt = 46static const struct ci_pt_defaults defaults_hawaii_xt =
47{ 47{
48 1, 0xF, 0xFD, 0x19, 5, 0x14, 0, 0xB0000, 48 1, 0xF, 0xFD, 0x19, 5, 0x14, 0, 0xB0000,
49 { 0x84, 0x0, 0x0, 0x7F, 0x0, 0x0, 0x5A, 0x60, 0x51, 0x8E, 0x79, 0x6B, 0x5F, 0x90, 0x79 }, 49 { 0x2E, 0x00, 0x00, 0x88, 0x00, 0x00, 0x72, 0x60, 0x51, 0xA7, 0x79, 0x6B, 0x90, 0xBD, 0x79 },
50 { 0x1EA, 0x1EA, 0x1EA, 0x224, 0x224, 0x224, 0x24F, 0x24F, 0x24F, 0x28E, 0x28E, 0x28E, 0x2BC, 0x2BC, 0x2BC } 50 { 0x217, 0x217, 0x217, 0x242, 0x242, 0x242, 0x269, 0x269, 0x269, 0x2A1, 0x2A1, 0x2A1, 0x2C9, 0x2C9, 0x2C9 }
51}; 51};
52 52
53static const struct ci_pt_defaults defaults_hawaii_pro = 53static const struct ci_pt_defaults defaults_hawaii_pro =
54{ 54{
55 1, 0xF, 0xFD, 0x19, 5, 0x14, 0, 0x65062, 55 1, 0xF, 0xFD, 0x19, 5, 0x14, 0, 0x65062,
56 { 0x93, 0x0, 0x0, 0x97, 0x0, 0x0, 0x6B, 0x60, 0x51, 0x95, 0x79, 0x6B, 0x5F, 0x90, 0x79 }, 56 { 0x2E, 0x00, 0x00, 0x88, 0x00, 0x00, 0x72, 0x60, 0x51, 0xA7, 0x79, 0x6B, 0x90, 0xBD, 0x79 },
57 { 0x1EA, 0x1EA, 0x1EA, 0x224, 0x224, 0x224, 0x24F, 0x24F, 0x24F, 0x28E, 0x28E, 0x28E, 0x2BC, 0x2BC, 0x2BC } 57 { 0x217, 0x217, 0x217, 0x242, 0x242, 0x242, 0x269, 0x269, 0x269, 0x2A1, 0x2A1, 0x2A1, 0x2C9, 0x2C9, 0x2C9 }
58}; 58};
59 59
60static const struct ci_pt_defaults defaults_bonaire_xt = 60static const struct ci_pt_defaults defaults_bonaire_xt =
@@ -249,7 +249,10 @@ static void ci_initialize_powertune_defaults(struct radeon_device *rdev)
249 249
250 if (pi->caps_power_containment) { 250 if (pi->caps_power_containment) {
251 pi->caps_cac = true; 251 pi->caps_cac = true;
252 pi->enable_bapm_feature = true; 252 if (rdev->family == CHIP_HAWAII)
253 pi->enable_bapm_feature = false;
254 else
255 pi->enable_bapm_feature = true;
253 pi->enable_tdc_limit_feature = true; 256 pi->enable_tdc_limit_feature = true;
254 pi->enable_pkg_pwr_tracking_feature = true; 257 pi->enable_pkg_pwr_tracking_feature = true;
255 } 258 }
@@ -700,13 +703,11 @@ static int ci_power_control_set_level(struct radeon_device *rdev)
700 int ret = 0; 703 int ret = 0;
701 bool adjust_polarity = false; /* ??? */ 704 bool adjust_polarity = false; /* ??? */
702 705
703 if (pi->caps_power_containment && 706 if (pi->caps_power_containment) {
704 (pi->power_containment_features & POWERCONTAINMENT_FEATURE_BAPM)) {
705 adjust_percent = adjust_polarity ? 707 adjust_percent = adjust_polarity ?
706 rdev->pm.dpm.tdp_adjustment : (-1 * rdev->pm.dpm.tdp_adjustment); 708 rdev->pm.dpm.tdp_adjustment : (-1 * rdev->pm.dpm.tdp_adjustment);
707 target_tdp = ((100 + adjust_percent) * 709 target_tdp = ((100 + adjust_percent) *
708 (s32)cac_tdp_table->configurable_tdp) / 100; 710 (s32)cac_tdp_table->configurable_tdp) / 100;
709 target_tdp *= 256;
710 711
711 ret = ci_set_overdrive_target_tdp(rdev, (u32)target_tdp); 712 ret = ci_set_overdrive_target_tdp(rdev, (u32)target_tdp);
712 } 713 }