diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/ci_dpm.c')
| -rw-r--r-- | drivers/gpu/drm/radeon/ci_dpm.c | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/drivers/gpu/drm/radeon/ci_dpm.c b/drivers/gpu/drm/radeon/ci_dpm.c index cad89a977527..10dae4106c08 100644 --- a/drivers/gpu/drm/radeon/ci_dpm.c +++ b/drivers/gpu/drm/radeon/ci_dpm.c | |||
| @@ -21,8 +21,10 @@ | |||
| 21 | * | 21 | * |
| 22 | */ | 22 | */ |
| 23 | 23 | ||
| 24 | #include <linux/firmware.h> | ||
| 24 | #include "drmP.h" | 25 | #include "drmP.h" |
| 25 | #include "radeon.h" | 26 | #include "radeon.h" |
| 27 | #include "radeon_ucode.h" | ||
| 26 | #include "cikd.h" | 28 | #include "cikd.h" |
| 27 | #include "r600_dpm.h" | 29 | #include "r600_dpm.h" |
| 28 | #include "ci_dpm.h" | 30 | #include "ci_dpm.h" |
| @@ -202,24 +204,29 @@ static void ci_initialize_powertune_defaults(struct radeon_device *rdev) | |||
| 202 | struct ci_power_info *pi = ci_get_pi(rdev); | 204 | struct ci_power_info *pi = ci_get_pi(rdev); |
| 203 | 205 | ||
| 204 | switch (rdev->pdev->device) { | 206 | switch (rdev->pdev->device) { |
| 207 | case 0x6649: | ||
| 205 | case 0x6650: | 208 | case 0x6650: |
| 209 | case 0x6651: | ||
| 206 | case 0x6658: | 210 | case 0x6658: |
| 207 | case 0x665C: | 211 | case 0x665C: |
| 212 | case 0x665D: | ||
| 208 | default: | 213 | default: |
| 209 | pi->powertune_defaults = &defaults_bonaire_xt; | 214 | pi->powertune_defaults = &defaults_bonaire_xt; |
| 210 | break; | 215 | break; |
| 211 | case 0x6651: | ||
| 212 | case 0x665D: | ||
| 213 | pi->powertune_defaults = &defaults_bonaire_pro; | ||
| 214 | break; | ||
| 215 | case 0x6640: | 216 | case 0x6640: |
| 216 | pi->powertune_defaults = &defaults_saturn_xt; | ||
| 217 | break; | ||
| 218 | case 0x6641: | 217 | case 0x6641: |
| 219 | pi->powertune_defaults = &defaults_saturn_pro; | 218 | case 0x6646: |
| 219 | case 0x6647: | ||
| 220 | pi->powertune_defaults = &defaults_saturn_xt; | ||
| 220 | break; | 221 | break; |
| 221 | case 0x67B8: | 222 | case 0x67B8: |
| 222 | case 0x67B0: | 223 | case 0x67B0: |
| 224 | pi->powertune_defaults = &defaults_hawaii_xt; | ||
| 225 | break; | ||
| 226 | case 0x67BA: | ||
| 227 | case 0x67B1: | ||
| 228 | pi->powertune_defaults = &defaults_hawaii_pro; | ||
| 229 | break; | ||
| 223 | case 0x67A0: | 230 | case 0x67A0: |
| 224 | case 0x67A1: | 231 | case 0x67A1: |
| 225 | case 0x67A2: | 232 | case 0x67A2: |
| @@ -228,11 +235,7 @@ static void ci_initialize_powertune_defaults(struct radeon_device *rdev) | |||
| 228 | case 0x67AA: | 235 | case 0x67AA: |
| 229 | case 0x67B9: | 236 | case 0x67B9: |
| 230 | case 0x67BE: | 237 | case 0x67BE: |
| 231 | pi->powertune_defaults = &defaults_hawaii_xt; | 238 | pi->powertune_defaults = &defaults_bonaire_xt; |
| 232 | break; | ||
| 233 | case 0x67BA: | ||
| 234 | case 0x67B1: | ||
| 235 | pi->powertune_defaults = &defaults_hawaii_pro; | ||
| 236 | break; | 239 | break; |
| 237 | } | 240 | } |
| 238 | 241 | ||
| @@ -5146,6 +5149,12 @@ int ci_dpm_init(struct radeon_device *rdev) | |||
| 5146 | pi->mclk_dpm_key_disabled = 0; | 5149 | pi->mclk_dpm_key_disabled = 0; |
| 5147 | pi->pcie_dpm_key_disabled = 0; | 5150 | pi->pcie_dpm_key_disabled = 0; |
| 5148 | 5151 | ||
| 5152 | /* mclk dpm is unstable on some R7 260X cards with the old mc ucode */ | ||
| 5153 | if ((rdev->pdev->device == 0x6658) && | ||
| 5154 | (rdev->mc_fw->size == (BONAIRE_MC_UCODE_SIZE * 4))) { | ||
| 5155 | pi->mclk_dpm_key_disabled = 1; | ||
| 5156 | } | ||
| 5157 | |||
| 5149 | pi->caps_sclk_ds = true; | 5158 | pi->caps_sclk_ds = true; |
| 5150 | 5159 | ||
| 5151 | pi->mclk_strobe_mode_threshold = 40000; | 5160 | pi->mclk_strobe_mode_threshold = 40000; |
