diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c index 7a8bfa34682f..662976292535 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | |||
@@ -795,10 +795,19 @@ static int amdgpu_cgs_get_firmware_info(struct cgs_device *cgs_device, | |||
795 | if (!adev->pm.fw) { | 795 | if (!adev->pm.fw) { |
796 | switch (adev->asic_type) { | 796 | switch (adev->asic_type) { |
797 | case CHIP_TOPAZ: | 797 | case CHIP_TOPAZ: |
798 | strcpy(fw_name, "amdgpu/topaz_smc.bin"); | 798 | if (((adev->pdev->device == 0x6900) && (adev->pdev->revision == 0x81)) || |
799 | ((adev->pdev->device == 0x6900) && (adev->pdev->revision == 0x83)) || | ||
800 | ((adev->pdev->device == 0x6907) && (adev->pdev->revision == 0x87))) | ||
801 | strcpy(fw_name, "amdgpu/topaz_k_smc.bin"); | ||
802 | else | ||
803 | strcpy(fw_name, "amdgpu/topaz_smc.bin"); | ||
799 | break; | 804 | break; |
800 | case CHIP_TONGA: | 805 | case CHIP_TONGA: |
801 | strcpy(fw_name, "amdgpu/tonga_smc.bin"); | 806 | if (((adev->pdev->device == 0x6939) && (adev->pdev->revision == 0xf1)) || |
807 | ((adev->pdev->device == 0x6938) && (adev->pdev->revision == 0xf1))) | ||
808 | strcpy(fw_name, "amdgpu/tonga_k_smc.bin"); | ||
809 | else | ||
810 | strcpy(fw_name, "amdgpu/tonga_smc.bin"); | ||
802 | break; | 811 | break; |
803 | case CHIP_FIJI: | 812 | case CHIP_FIJI: |
804 | strcpy(fw_name, "amdgpu/fiji_smc.bin"); | 813 | strcpy(fw_name, "amdgpu/fiji_smc.bin"); |