Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amd/amdgpu: introduce gc_*_mes_2.bin v2

To avoid new mes fw running with old driver, rename
mes schq fw to gc_*_mes_2.bin.

v2: add MODULE_FIRMWARE declaration
v3: squash in fixup patch

Signed-off-by: Jack Xiao <Jack.Xiao@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Jack Xiao and committed by
Alex Deucher
97998b89 980d5bae

+27 -9
+22 -4
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
··· 1434 1434 struct amdgpu_firmware_info *info; 1435 1435 char ucode_prefix[30]; 1436 1436 char fw_name[40]; 1437 + bool need_retry = false; 1437 1438 int r; 1438 1439 1439 - amdgpu_ucode_ip_version_decode(adev, GC_HWIP, ucode_prefix, sizeof(ucode_prefix)); 1440 - snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mes%s.bin", 1441 - ucode_prefix, 1442 - pipe == AMDGPU_MES_SCHED_PIPE ? "" : "1"); 1440 + amdgpu_ucode_ip_version_decode(adev, GC_HWIP, ucode_prefix, 1441 + sizeof(ucode_prefix)); 1442 + if (adev->ip_versions[GC_HWIP][0] >= IP_VERSION(11, 0, 0)) { 1443 + snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mes%s.bin", 1444 + ucode_prefix, 1445 + pipe == AMDGPU_MES_SCHED_PIPE ? "_2" : "1"); 1446 + need_retry = true; 1447 + } else { 1448 + snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mes%s.bin", 1449 + ucode_prefix, 1450 + pipe == AMDGPU_MES_SCHED_PIPE ? "" : "1"); 1451 + } 1452 + 1443 1453 r = amdgpu_ucode_request(adev, &adev->mes.fw[pipe], fw_name); 1454 + if (r && need_retry && pipe == AMDGPU_MES_SCHED_PIPE) { 1455 + snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mes.bin", 1456 + ucode_prefix); 1457 + DRM_INFO("try to fall back to %s\n", fw_name); 1458 + r = amdgpu_ucode_request(adev, &adev->mes.fw[pipe], 1459 + fw_name); 1460 + } 1461 + 1444 1462 if (r) 1445 1463 goto out; 1446 1464
+5 -5
drivers/gpu/drm/amd/amdgpu/mes_v11_0.c
··· 32 32 #include "v11_structs.h" 33 33 #include "mes_v11_api_def.h" 34 34 35 - MODULE_FIRMWARE("amdgpu/gc_11_0_0_mes.bin"); 35 + MODULE_FIRMWARE("amdgpu/gc_11_0_0_mes_2.bin"); 36 36 MODULE_FIRMWARE("amdgpu/gc_11_0_0_mes1.bin"); 37 - MODULE_FIRMWARE("amdgpu/gc_11_0_1_mes.bin"); 37 + MODULE_FIRMWARE("amdgpu/gc_11_0_1_mes_2.bin"); 38 38 MODULE_FIRMWARE("amdgpu/gc_11_0_1_mes1.bin"); 39 - MODULE_FIRMWARE("amdgpu/gc_11_0_2_mes.bin"); 39 + MODULE_FIRMWARE("amdgpu/gc_11_0_2_mes_2.bin"); 40 40 MODULE_FIRMWARE("amdgpu/gc_11_0_2_mes1.bin"); 41 - MODULE_FIRMWARE("amdgpu/gc_11_0_3_mes.bin"); 41 + MODULE_FIRMWARE("amdgpu/gc_11_0_3_mes_2.bin"); 42 42 MODULE_FIRMWARE("amdgpu/gc_11_0_3_mes1.bin"); 43 - MODULE_FIRMWARE("amdgpu/gc_11_0_4_mes.bin"); 43 + MODULE_FIRMWARE("amdgpu/gc_11_0_4_mes_2.bin"); 44 44 MODULE_FIRMWARE("amdgpu/gc_11_0_4_mes1.bin"); 45 45 46 46 static int mes_v11_0_hw_fini(void *handle);