]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/amdgpu: add new MC firmware for Polaris12 32bit ASIC
authorEvan Quan <evan.quan@amd.com>
Wed, 28 Apr 2021 04:00:20 +0000 (12:00 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 14 May 2021 08:52:08 +0000 (10:52 +0200)
commit c83c4e1912446db697a120eb30126cd80cbf6349 upstream.

Polaris12 32bit ASIC needs a special MC firmware.

Signed-off-by: Evan Quan <evan.quan@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c

index 2d832fc231191bcd39032f6fe27f29cc5f63ac68..421d6069c5096069d0f7569f0d6dcc9a2a57c89b 100644 (file)
@@ -59,6 +59,7 @@ MODULE_FIRMWARE("amdgpu/tonga_mc.bin");
 MODULE_FIRMWARE("amdgpu/polaris11_mc.bin");
 MODULE_FIRMWARE("amdgpu/polaris10_mc.bin");
 MODULE_FIRMWARE("amdgpu/polaris12_mc.bin");
+MODULE_FIRMWARE("amdgpu/polaris12_32_mc.bin");
 MODULE_FIRMWARE("amdgpu/polaris11_k_mc.bin");
 MODULE_FIRMWARE("amdgpu/polaris10_k_mc.bin");
 MODULE_FIRMWARE("amdgpu/polaris12_k_mc.bin");
@@ -243,10 +244,16 @@ static int gmc_v8_0_init_microcode(struct amdgpu_device *adev)
                        chip_name = "polaris10";
                break;
        case CHIP_POLARIS12:
-               if (ASICID_IS_P23(adev->pdev->device, adev->pdev->revision))
+               if (ASICID_IS_P23(adev->pdev->device, adev->pdev->revision)) {
                        chip_name = "polaris12_k";
-               else
-                       chip_name = "polaris12";
+               } else {
+                       WREG32(mmMC_SEQ_IO_DEBUG_INDEX, ixMC_IO_DEBUG_UP_159);
+                       /* Polaris12 32bit ASIC needs a special MC firmware */
+                       if (RREG32(mmMC_SEQ_IO_DEBUG_DATA) == 0x05b4dc40)
+                               chip_name = "polaris12_32";
+                       else
+                               chip_name = "polaris12";
+               }
                break;
        case CHIP_FIJI:
        case CHIP_CARRIZO: