]> www.infradead.org Git - users/hch/misc.git/commitdiff
drm/amdgpu/discovery: use specific ip_discovery.bin for legacy asics
authorFlora Cui <flora.cui@amd.com>
Tue, 11 Mar 2025 05:44:08 +0000 (13:44 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 21 Mar 2025 16:16:35 +0000 (12:16 -0400)
vega10/vega12/vega20/raven/raven2/picasso/arcturus/aldebaran

Signed-off-by: Flora Cui <flora.cui@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_discovery.c

index 93635a6130bc819f7ffd5d39c0096b3d15f6b503..4125d2da704106b23ae702ffa23e35b0f2fac5c5 100644 (file)
 #endif
 
 MODULE_FIRMWARE("amdgpu/ip_discovery.bin");
+MODULE_FIRMWARE("amdgpu/vega10_ip_discovery.bin");
+MODULE_FIRMWARE("amdgpu/vega12_ip_discovery.bin");
+MODULE_FIRMWARE("amdgpu/vega20_ip_discovery.bin");
+MODULE_FIRMWARE("amdgpu/raven_ip_discovery.bin");
+MODULE_FIRMWARE("amdgpu/raven2_ip_discovery.bin");
+MODULE_FIRMWARE("amdgpu/picasso_ip_discovery.bin");
 
 #define mmIP_DISCOVERY_VERSION  0x16A00
 #define mmRCC_CONFIG_MEMSIZE   0xde3
@@ -400,7 +406,27 @@ static const char *amdgpu_discovery_get_fw_name(struct amdgpu_device *adev)
        if (amdgpu_discovery == 2)
                return "amdgpu/ip_discovery.bin";
 
-       return NULL;
+       switch (adev->asic_type) {
+       case CHIP_VEGA10:
+               return "amdgpu/vega10_ip_discovery.bin";
+       case CHIP_VEGA12:
+               return "amdgpu/vega12_ip_discovery.bin";
+       case CHIP_RAVEN:
+               if (adev->apu_flags & AMD_APU_IS_RAVEN2)
+                       return "amdgpu/raven2_ip_discovery.bin";
+               else if (adev->apu_flags & AMD_APU_IS_PICASSO)
+                       return "amdgpu/picasso_ip_discovery.bin";
+               else
+                       return "amdgpu/raven_ip_discovery.bin";
+       case CHIP_VEGA20:
+               return "amdgpu/vega20_ip_discovery.bin";
+       case CHIP_ARCTURUS:
+               return "amdgpu/arcturus_ip_discovery.bin";
+       case CHIP_ALDEBARAN:
+               return "amdgpu/aldebaran_ip_discovery.bin";
+       default:
+               return NULL;
+       }
 }
 
 static int amdgpu_discovery_init(struct amdgpu_device *adev)