aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/ci_dpm.c
diff options
context:
space:
mode:
authorAlex Deucher <alexander.deucher@amd.com>2015-12-10 00:49:32 -0500
committerAlex Deucher <alexander.deucher@amd.com>2016-07-07 14:50:38 -0400
commit2254c21982becbaa6921fc4cf488f53a3ad26404 (patch)
treec5dcfce3f02b991a906d0b55c7365090b5c4188d /drivers/gpu/drm/amd/amdgpu/ci_dpm.c
parentcc7d8c79792e626546ef7ef7086882b2c83b89e1 (diff)
drm/amdgpu: load different smc firmware on some CI variants
The power tables on some variants require different firmware. This fixes stability issues on some newer CI parts. bug: https://bugs.freedesktop.org/show_bug.cgi?id=91880 Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Huang Rui <ray.huang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/ci_dpm.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/ci_dpm.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c
index 5ec1f1e9c983..102d400ef44e 100644
--- a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c
+++ b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c
@@ -50,7 +50,9 @@
50#include "gmc/gmc_7_1_sh_mask.h" 50#include "gmc/gmc_7_1_sh_mask.h"
51 51
52MODULE_FIRMWARE("radeon/bonaire_smc.bin"); 52MODULE_FIRMWARE("radeon/bonaire_smc.bin");
53MODULE_FIRMWARE("radeon/bonaire_k_smc.bin");
53MODULE_FIRMWARE("radeon/hawaii_smc.bin"); 54MODULE_FIRMWARE("radeon/hawaii_smc.bin");
55MODULE_FIRMWARE("radeon/hawaii_k_smc.bin");
54 56
55#define MC_CG_ARB_FREQ_F0 0x0a 57#define MC_CG_ARB_FREQ_F0 0x0a
56#define MC_CG_ARB_FREQ_F1 0x0b 58#define MC_CG_ARB_FREQ_F1 0x0b
@@ -5754,10 +5756,18 @@ static int ci_dpm_init_microcode(struct amdgpu_device *adev)
5754 5756
5755 switch (adev->asic_type) { 5757 switch (adev->asic_type) {
5756 case CHIP_BONAIRE: 5758 case CHIP_BONAIRE:
5757 chip_name = "bonaire"; 5759 if ((adev->pdev->revision == 0x80) ||
5760 (adev->pdev->revision == 0x81) ||
5761 (adev->pdev->device == 0x665f))
5762 chip_name = "bonaire_k";
5763 else
5764 chip_name = "bonaire";
5758 break; 5765 break;
5759 case CHIP_HAWAII: 5766 case CHIP_HAWAII:
5760 chip_name = "hawaii"; 5767 if (adev->pdev->revision == 0x80)
5768 chip_name = "hawaii_k";
5769 else
5770 chip_name = "hawaii";
5761 break; 5771 break;
5762 case CHIP_KAVERI: 5772 case CHIP_KAVERI:
5763 case CHIP_KABINI: 5773 case CHIP_KABINI: