Polaris12 32bit ASIC needs a special MC firmware.

Change-Id: I1eea9cc1d5c81a370c8fccf139f4f77bac4a1baa
Signed-off-by: Evan Quan <evan.q...@amd.com>
Reviewed-by: Alex Deucher <alexander.deuc...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c 
b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
index c1bd190841f8..e4f27b3f28fb 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
@@ -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:
-- 
2.29.0

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to