| From c83c4e1912446db697a120eb30126cd80cbf6349 Mon Sep 17 00:00:00 2001 |
| From: Evan Quan <evan.quan@amd.com> |
| Date: Wed, 28 Apr 2021 12:00:20 +0800 |
| Subject: drm/amdgpu: add new MC firmware for Polaris12 32bit ASIC |
| |
| From: Evan Quan <evan.quan@amd.com> |
| |
| 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 | 13 ++++++++++--- |
| 1 file changed, 10 insertions(+), 3 deletions(-) |
| |
| --- 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(struc |
| 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: |