diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2014-11-07 18:31:39 -0500 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2014-11-12 11:56:45 -0500 |
commit | 542b379b55513ac1c564de7d8dac1cee8b3ba7e8 (patch) | |
tree | 32560fd97f35228a564cd69925d44cf764d2ff0c | |
parent | 90b2fee35cb9c143f049091ff7ea87500c5c7c46 (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.c | 17 |
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 @@ | |||
46 | static const struct ci_pt_defaults defaults_hawaii_xt = | 46 | static 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 | ||
53 | static const struct ci_pt_defaults defaults_hawaii_pro = | 53 | static 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 | ||
60 | static const struct ci_pt_defaults defaults_bonaire_xt = | 60 | static 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 | } |