diff options
author | Flora Cui <Flora.Cui@amd.com> | 2016-12-15 00:43:59 -0500 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2017-01-06 17:43:23 -0500 |
commit | 5165484b02f2cbedb5bf3a41ff5e8ae16069016c (patch) | |
tree | 2e54e4c2035f9918fc5544b81b6451a167c06b9e | |
parent | 70fd80d6f7e37bf637331c682fafcce1112750ac (diff) |
drm/amdgpu: update si kicker smc firmware
Use the appropriate smc firmware for each chip revision.
Using the wrong one can cause stability issues.
Acked-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Signed-off-by: Flora Cui <Flora.Cui@amd.com>
Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/si_dpm.c | 57 |
1 files changed, 28 insertions, 29 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/si_dpm.c b/drivers/gpu/drm/amd/amdgpu/si_dpm.c index 6c65a1a2de79..0566e9adaf8a 100644 --- a/drivers/gpu/drm/amd/amdgpu/si_dpm.c +++ b/drivers/gpu/drm/amd/amdgpu/si_dpm.c | |||
@@ -56,7 +56,6 @@ | |||
56 | #define BIOS_SCRATCH_4 0x5cd | 56 | #define BIOS_SCRATCH_4 0x5cd |
57 | 57 | ||
58 | MODULE_FIRMWARE("radeon/tahiti_smc.bin"); | 58 | MODULE_FIRMWARE("radeon/tahiti_smc.bin"); |
59 | MODULE_FIRMWARE("radeon/tahiti_k_smc.bin"); | ||
60 | MODULE_FIRMWARE("radeon/pitcairn_smc.bin"); | 59 | MODULE_FIRMWARE("radeon/pitcairn_smc.bin"); |
61 | MODULE_FIRMWARE("radeon/pitcairn_k_smc.bin"); | 60 | MODULE_FIRMWARE("radeon/pitcairn_k_smc.bin"); |
62 | MODULE_FIRMWARE("radeon/verde_smc.bin"); | 61 | MODULE_FIRMWARE("radeon/verde_smc.bin"); |
@@ -7687,49 +7686,49 @@ static int si_dpm_init_microcode(struct amdgpu_device *adev) | |||
7687 | chip_name = "tahiti"; | 7686 | chip_name = "tahiti"; |
7688 | break; | 7687 | break; |
7689 | case CHIP_PITCAIRN: | 7688 | case CHIP_PITCAIRN: |
7690 | if ((adev->pdev->revision == 0x81) || | 7689 | if ((adev->pdev->revision == 0x81) && |
7691 | (adev->pdev->device == 0x6810) || | 7690 | ((adev->pdev->device == 0x6810) || |
7692 | (adev->pdev->device == 0x6811) || | 7691 | (adev->pdev->device == 0x6811))) |
7693 | (adev->pdev->device == 0x6816) || | ||
7694 | (adev->pdev->device == 0x6817) || | ||
7695 | (adev->pdev->device == 0x6806)) | ||
7696 | chip_name = "pitcairn_k"; | 7692 | chip_name = "pitcairn_k"; |
7697 | else | 7693 | else |
7698 | chip_name = "pitcairn"; | 7694 | chip_name = "pitcairn"; |
7699 | break; | 7695 | break; |
7700 | case CHIP_VERDE: | 7696 | case CHIP_VERDE: |
7701 | if ((adev->pdev->revision == 0x81) || | 7697 | if (((adev->pdev->device == 0x6820) && |
7702 | (adev->pdev->revision == 0x83) || | 7698 | ((adev->pdev->revision == 0x81) || |
7703 | (adev->pdev->revision == 0x87) || | 7699 | (adev->pdev->revision == 0x83))) || |
7704 | (adev->pdev->device == 0x6820) || | 7700 | ((adev->pdev->device == 0x6821) && |
7705 | (adev->pdev->device == 0x6821) || | 7701 | ((adev->pdev->revision == 0x83) || |
7706 | (adev->pdev->device == 0x6822) || | 7702 | (adev->pdev->revision == 0x87))) || |
7707 | (adev->pdev->device == 0x6823) || | 7703 | ((adev->pdev->revision == 0x87) && |
7708 | (adev->pdev->device == 0x682A) || | 7704 | ((adev->pdev->device == 0x6823) || |
7709 | (adev->pdev->device == 0x682B)) | 7705 | (adev->pdev->device == 0x682b)))) |
7710 | chip_name = "verde_k"; | 7706 | chip_name = "verde_k"; |
7711 | else | 7707 | else |
7712 | chip_name = "verde"; | 7708 | chip_name = "verde"; |
7713 | break; | 7709 | break; |
7714 | case CHIP_OLAND: | 7710 | case CHIP_OLAND: |
7715 | if ((adev->pdev->revision == 0xC7) || | 7711 | if (((adev->pdev->revision == 0x81) && |
7716 | (adev->pdev->revision == 0x80) || | 7712 | ((adev->pdev->device == 0x6600) || |
7717 | (adev->pdev->revision == 0x81) || | 7713 | (adev->pdev->device == 0x6604) || |
7718 | (adev->pdev->revision == 0x83) || | 7714 | (adev->pdev->device == 0x6605) || |
7719 | (adev->pdev->revision == 0x87) || | 7715 | (adev->pdev->device == 0x6610))) || |
7720 | (adev->pdev->device == 0x6604) || | 7716 | ((adev->pdev->revision == 0x83) && |
7721 | (adev->pdev->device == 0x6605)) | 7717 | (adev->pdev->device == 0x6610))) |
7722 | chip_name = "oland_k"; | 7718 | chip_name = "oland_k"; |
7723 | else | 7719 | else |
7724 | chip_name = "oland"; | 7720 | chip_name = "oland"; |
7725 | break; | 7721 | break; |
7726 | case CHIP_HAINAN: | 7722 | case CHIP_HAINAN: |
7727 | if ((adev->pdev->revision == 0x81) || | 7723 | if (((adev->pdev->revision == 0x81) && |
7728 | (adev->pdev->revision == 0x83) || | 7724 | (adev->pdev->device == 0x6660)) || |
7729 | (adev->pdev->revision == 0xC3) || | 7725 | ((adev->pdev->revision == 0x83) && |
7730 | (adev->pdev->device == 0x6664) || | 7726 | ((adev->pdev->device == 0x6660) || |
7731 | (adev->pdev->device == 0x6665) || | 7727 | (adev->pdev->device == 0x6663) || |
7732 | (adev->pdev->device == 0x6667)) | 7728 | (adev->pdev->device == 0x6665) || |
7729 | (adev->pdev->device == 0x6667))) || | ||
7730 | ((adev->pdev->revision == 0xc3) && | ||
7731 | (adev->pdev->device == 0x6665))) | ||
7733 | chip_name = "hainan_k"; | 7732 | chip_name = "hainan_k"; |
7734 | else | 7733 | else |
7735 | chip_name = "hainan"; | 7734 | chip_name = "hainan"; |