drm/amd: Fix renoir/green sardine MP0 IP version detection
authorMario Limonciello <mario.limonciello@amd.com>
Sat, 14 Jan 2023 03:01:48 +0000 (21:01 -0600)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 17 Jan 2023 21:11:19 +0000 (16:11 -0500)
The existing codebase never had a case for detecting MP0 version on
Renoir and instead relied upon hardcoded chip name.  This was missed as
part of the changes to migrate all IP blocks to build filenames from
`amdgpu_ucode.c`.

Consequently, Renoir tries to fetch a binary with 11_0_3 in the filename
and since it's supposed to have "renoir" in the filename fails to probe.
The fbdev still works though so the series worked.

Add a case for Renoir into the legacy table to ensure the right ASD and
TA firmware load again.

Reported-by: Ekene Akuneme <Ekene.Akuneme@amd.com>
Reported-by: Nicholas Choi <Nicholas.Choi@amd.com>
Cc: Alex Hung <Alex.Hung@amd.com>
Fixes: 994a97447e38 ("drm/amd: Parse both v1 and v2 TA microcode headers using same function")
Fixes: 54a3e032340e ("drm/amd: Add a legacy mapping to "amdgpu_ucode_ip_version_decode"")
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.c

index 47549d659d9b03d5e72c9b5fcf38eb5aa0341a1b..c03824d0311bdc040d0a27b370e00c7ae77fc1cb 100644 (file)
@@ -1087,6 +1087,8 @@ static const char *amdgpu_ucode_legacy_naming(struct amdgpu_device *adev, int bl
                        return "navi10";
                case IP_VERSION(11, 0, 2):
                        return "vega20";
+               case IP_VERSION(11, 0, 3):
+                       return "renoir";
                case IP_VERSION(11, 0, 4):
                        return "arcturus";
                case IP_VERSION(11, 0, 5):
@@ -1104,12 +1106,7 @@ static const char *amdgpu_ucode_legacy_naming(struct amdgpu_device *adev, int bl
                case IP_VERSION(11, 5, 0):
                        return "vangogh";
                case IP_VERSION(12, 0, 1):
-                       if (adev->asic_type == CHIP_RENOIR) {
-                               if (adev->apu_flags & AMD_APU_IS_RENOIR)
-                                       return "renoir";
-                               return "green_sardine";
-                       }
-                       break;
+                       return "green_sardine";
                case IP_VERSION(13, 0, 2):
                        return "aldebaran";
                case IP_VERSION(13, 0, 1):