Skip to content

Commit c83c4e1

Browse files
Evan Quanalexdeucher
Evan Quan
authored andcommitted
drm/amdgpu: add new MC firmware for Polaris12 32bit ASIC
Polaris12 32bit ASIC needs a special MC firmware. Signed-off-by: Evan Quan <[email protected]> Reviewed-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]> Cc: [email protected]
1 parent e0c16eb commit c83c4e1

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ MODULE_FIRMWARE("amdgpu/tonga_mc.bin");
5959
MODULE_FIRMWARE("amdgpu/polaris11_mc.bin");
6060
MODULE_FIRMWARE("amdgpu/polaris10_mc.bin");
6161
MODULE_FIRMWARE("amdgpu/polaris12_mc.bin");
62+
MODULE_FIRMWARE("amdgpu/polaris12_32_mc.bin");
6263
MODULE_FIRMWARE("amdgpu/polaris11_k_mc.bin");
6364
MODULE_FIRMWARE("amdgpu/polaris10_k_mc.bin");
6465
MODULE_FIRMWARE("amdgpu/polaris12_k_mc.bin");
@@ -243,10 +244,16 @@ static int gmc_v8_0_init_microcode(struct amdgpu_device *adev)
243244
chip_name = "polaris10";
244245
break;
245246
case CHIP_POLARIS12:
246-
if (ASICID_IS_P23(adev->pdev->device, adev->pdev->revision))
247+
if (ASICID_IS_P23(adev->pdev->device, adev->pdev->revision)) {
247248
chip_name = "polaris12_k";
248-
else
249-
chip_name = "polaris12";
249+
} else {
250+
WREG32(mmMC_SEQ_IO_DEBUG_INDEX, ixMC_IO_DEBUG_UP_159);
251+
/* Polaris12 32bit ASIC needs a special MC firmware */
252+
if (RREG32(mmMC_SEQ_IO_DEBUG_DATA) == 0x05b4dc40)
253+
chip_name = "polaris12_32";
254+
else
255+
chip_name = "polaris12";
256+
}
250257
break;
251258
case CHIP_FIJI:
252259
case CHIP_CARRIZO:

0 commit comments

Comments
 (0)