diff options
author | Flora Cui <Flora.Cui@amd.com> | 2016-12-15 00:43:59 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-01-19 14:18:04 -0500 |
commit | d52e714b39cecab78c0ad83e60c81f3a90a42fef (patch) | |
tree | f06d6b3988689b97cdbbae16e5b9068a9abced67 /drivers/gpu/drm/amd | |
parent | 0c37b07002d5f619ec6d691bb6f6c2a2cab78d5b (diff) |
drm/amdgpu: update si kicker smc firmware
commit 5165484b02f2cbedb5bf3a41ff5e8ae16069016c upstream.
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/gpu/drm/amd')
-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 6d2ea76f4eb6..0590509da00c 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"); |
@@ -7685,49 +7684,49 @@ static int si_dpm_init_microcode(struct amdgpu_device *adev) | |||
7685 | chip_name = "tahiti"; | 7684 | chip_name = "tahiti"; |
7686 | break; | 7685 | break; |
7687 | case CHIP_PITCAIRN: | 7686 | case CHIP_PITCAIRN: |
7688 | if ((adev->pdev->revision == 0x81) || | 7687 | if ((adev->pdev->revision == 0x81) && |
7689 | (adev->pdev->device == 0x6810) || | 7688 | ((adev->pdev->device == 0x6810) || |
7690 | (adev->pdev->device == 0x6811) || | 7689 | (adev->pdev->device == 0x6811))) |
7691 | (adev->pdev->device == 0x6816) || | ||
7692 | (adev->pdev->device == 0x6817) || | ||
7693 | (adev->pdev->device == 0x6806)) | ||
7694 | chip_name = "pitcairn_k"; | 7690 | chip_name = "pitcairn_k"; |
7695 | else | 7691 | else |
7696 | chip_name = "pitcairn"; | 7692 | chip_name = "pitcairn"; |
7697 | break; | 7693 | break; |
7698 | case CHIP_VERDE: | 7694 | case CHIP_VERDE: |
7699 | if ((adev->pdev->revision == 0x81) || | 7695 | if (((adev->pdev->device == 0x6820) && |
7700 | (adev->pdev->revision == 0x83) || | 7696 | ((adev->pdev->revision == 0x81) || |
7701 | (adev->pdev->revision == 0x87) || | 7697 | (adev->pdev->revision == 0x83))) || |
7702 | (adev->pdev->device == 0x6820) || | 7698 | ((adev->pdev->device == 0x6821) && |
7703 | (adev->pdev->device == 0x6821) || | 7699 | ((adev->pdev->revision == 0x83) || |
7704 | (adev->pdev->device == 0x6822) || | 7700 | (adev->pdev->revision == 0x87))) || |
7705 | (adev->pdev->device == 0x6823) || | 7701 | ((adev->pdev->revision == 0x87) && |
7706 | (adev->pdev->device == 0x682A) || | 7702 | ((adev->pdev->device == 0x6823) || |
7707 | (adev->pdev->device == 0x682B)) | 7703 | (adev->pdev->device == 0x682b)))) |
7708 | chip_name = "verde_k"; | 7704 | chip_name = "verde_k"; |
7709 | else | 7705 | else |
7710 | chip_name = "verde"; | 7706 | chip_name = "verde"; |
7711 | break; | 7707 | break; |
7712 | case CHIP_OLAND: | 7708 | case CHIP_OLAND: |
7713 | if ((adev->pdev->revision == 0xC7) || | 7709 | if (((adev->pdev->revision == 0x81) && |
7714 | (adev->pdev->revision == 0x80) || | 7710 | ((adev->pdev->device == 0x6600) || |
7715 | (adev->pdev->revision == 0x81) || | 7711 | (adev->pdev->device == 0x6604) || |
7716 | (adev->pdev->revision == 0x83) || | 7712 | (adev->pdev->device == 0x6605) || |
7717 | (adev->pdev->revision == 0x87) || | 7713 | (adev->pdev->device == 0x6610))) || |
7718 | (adev->pdev->device == 0x6604) || | 7714 | ((adev->pdev->revision == 0x83) && |
7719 | (adev->pdev->device == 0x6605)) | 7715 | (adev->pdev->device == 0x6610))) |
7720 | chip_name = "oland_k"; | 7716 | chip_name = "oland_k"; |
7721 | else | 7717 | else |
7722 | chip_name = "oland"; | 7718 | chip_name = "oland"; |
7723 | break; | 7719 | break; |
7724 | case CHIP_HAINAN: | 7720 | case CHIP_HAINAN: |
7725 | if ((adev->pdev->revision == 0x81) || | 7721 | if (((adev->pdev->revision == 0x81) && |
7726 | (adev->pdev->revision == 0x83) || | 7722 | (adev->pdev->device == 0x6660)) || |
7727 | (adev->pdev->revision == 0xC3) || | 7723 | ((adev->pdev->revision == 0x83) && |
7728 | (adev->pdev->device == 0x6664) || | 7724 | ((adev->pdev->device == 0x6660) || |
7729 | (adev->pdev->device == 0x6665) || | 7725 | (adev->pdev->device == 0x6663) || |
7730 | (adev->pdev->device == 0x6667)) | 7726 | (adev->pdev->device == 0x6665) || |
7727 | (adev->pdev->device == 0x6667))) || | ||
7728 | ((adev->pdev->revision == 0xc3) && | ||
7729 | (adev->pdev->device == 0x6665))) | ||
7731 | chip_name = "hainan_k"; | 7730 | chip_name = "hainan_k"; |
7732 | else | 7731 | else |
7733 | chip_name = "hainan"; | 7732 | chip_name = "hainan"; |