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
This commit is contained in:
parent
70fd80d6f7
commit
5165484b02
|
@ -56,7 +56,6 @@
|
||||||
#define BIOS_SCRATCH_4 0x5cd
|
#define BIOS_SCRATCH_4 0x5cd
|
||||||
|
|
||||||
MODULE_FIRMWARE("radeon/tahiti_smc.bin");
|
MODULE_FIRMWARE("radeon/tahiti_smc.bin");
|
||||||
MODULE_FIRMWARE("radeon/tahiti_k_smc.bin");
|
|
||||||
MODULE_FIRMWARE("radeon/pitcairn_smc.bin");
|
MODULE_FIRMWARE("radeon/pitcairn_smc.bin");
|
||||||
MODULE_FIRMWARE("radeon/pitcairn_k_smc.bin");
|
MODULE_FIRMWARE("radeon/pitcairn_k_smc.bin");
|
||||||
MODULE_FIRMWARE("radeon/verde_smc.bin");
|
MODULE_FIRMWARE("radeon/verde_smc.bin");
|
||||||
|
@ -7687,49 +7686,49 @@ static int si_dpm_init_microcode(struct amdgpu_device *adev)
|
||||||
chip_name = "tahiti";
|
chip_name = "tahiti";
|
||||||
break;
|
break;
|
||||||
case CHIP_PITCAIRN:
|
case CHIP_PITCAIRN:
|
||||||
if ((adev->pdev->revision == 0x81) ||
|
if ((adev->pdev->revision == 0x81) &&
|
||||||
(adev->pdev->device == 0x6810) ||
|
((adev->pdev->device == 0x6810) ||
|
||||||
(adev->pdev->device == 0x6811) ||
|
(adev->pdev->device == 0x6811)))
|
||||||
(adev->pdev->device == 0x6816) ||
|
|
||||||
(adev->pdev->device == 0x6817) ||
|
|
||||||
(adev->pdev->device == 0x6806))
|
|
||||||
chip_name = "pitcairn_k";
|
chip_name = "pitcairn_k";
|
||||||
else
|
else
|
||||||
chip_name = "pitcairn";
|
chip_name = "pitcairn";
|
||||||
break;
|
break;
|
||||||
case CHIP_VERDE:
|
case CHIP_VERDE:
|
||||||
if ((adev->pdev->revision == 0x81) ||
|
if (((adev->pdev->device == 0x6820) &&
|
||||||
(adev->pdev->revision == 0x83) ||
|
((adev->pdev->revision == 0x81) ||
|
||||||
(adev->pdev->revision == 0x87) ||
|
(adev->pdev->revision == 0x83))) ||
|
||||||
(adev->pdev->device == 0x6820) ||
|
((adev->pdev->device == 0x6821) &&
|
||||||
(adev->pdev->device == 0x6821) ||
|
((adev->pdev->revision == 0x83) ||
|
||||||
(adev->pdev->device == 0x6822) ||
|
(adev->pdev->revision == 0x87))) ||
|
||||||
(adev->pdev->device == 0x6823) ||
|
((adev->pdev->revision == 0x87) &&
|
||||||
(adev->pdev->device == 0x682A) ||
|
((adev->pdev->device == 0x6823) ||
|
||||||
(adev->pdev->device == 0x682B))
|
(adev->pdev->device == 0x682b))))
|
||||||
chip_name = "verde_k";
|
chip_name = "verde_k";
|
||||||
else
|
else
|
||||||
chip_name = "verde";
|
chip_name = "verde";
|
||||||
break;
|
break;
|
||||||
case CHIP_OLAND:
|
case CHIP_OLAND:
|
||||||
if ((adev->pdev->revision == 0xC7) ||
|
if (((adev->pdev->revision == 0x81) &&
|
||||||
(adev->pdev->revision == 0x80) ||
|
((adev->pdev->device == 0x6600) ||
|
||||||
(adev->pdev->revision == 0x81) ||
|
(adev->pdev->device == 0x6604) ||
|
||||||
(adev->pdev->revision == 0x83) ||
|
(adev->pdev->device == 0x6605) ||
|
||||||
(adev->pdev->revision == 0x87) ||
|
(adev->pdev->device == 0x6610))) ||
|
||||||
(adev->pdev->device == 0x6604) ||
|
((adev->pdev->revision == 0x83) &&
|
||||||
(adev->pdev->device == 0x6605))
|
(adev->pdev->device == 0x6610)))
|
||||||
chip_name = "oland_k";
|
chip_name = "oland_k";
|
||||||
else
|
else
|
||||||
chip_name = "oland";
|
chip_name = "oland";
|
||||||
break;
|
break;
|
||||||
case CHIP_HAINAN:
|
case CHIP_HAINAN:
|
||||||
if ((adev->pdev->revision == 0x81) ||
|
if (((adev->pdev->revision == 0x81) &&
|
||||||
(adev->pdev->revision == 0x83) ||
|
(adev->pdev->device == 0x6660)) ||
|
||||||
(adev->pdev->revision == 0xC3) ||
|
((adev->pdev->revision == 0x83) &&
|
||||||
(adev->pdev->device == 0x6664) ||
|
((adev->pdev->device == 0x6660) ||
|
||||||
(adev->pdev->device == 0x6665) ||
|
(adev->pdev->device == 0x6663) ||
|
||||||
(adev->pdev->device == 0x6667))
|
(adev->pdev->device == 0x6665) ||
|
||||||
|
(adev->pdev->device == 0x6667))) ||
|
||||||
|
((adev->pdev->revision == 0xc3) &&
|
||||||
|
(adev->pdev->device == 0x6665)))
|
||||||
chip_name = "hainan_k";
|
chip_name = "hainan_k";
|
||||||
else
|
else
|
||||||
chip_name = "hainan";
|
chip_name = "hainan";
|
||||||
|
|
Loading…
Reference in New Issue