drm/amdgpu: Query boot status if boot failed
authorHawking Zhang <Hawking.Zhang@amd.com>
Sun, 31 Dec 2023 12:04:05 +0000 (20:04 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 15 Jan 2024 23:35:36 +0000 (18:35 -0500)
Check and report firmware boot status if it doesn't
reach steady status.

Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Yang Wang <kevinyang.wang@amd.com>
Reviewed-by: Le Ma <le.ma@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/psp_v13_0.c

index 6fad451a85be2b0f4900d2e9aa353e3ea74a7ee7..676bec2cc157ec84dc34aca65f65170cf1bedd25 100644 (file)
@@ -187,11 +187,18 @@ static int psp_v13_0_wait_for_bootloader(struct psp_context *psp)
 static int psp_v13_0_wait_for_bootloader_steady_state(struct psp_context *psp)
 {
        struct amdgpu_device *adev = psp->adev;
+       int ret;
 
        if (amdgpu_ip_version(adev, MP0_HWIP, 0) == IP_VERSION(13, 0, 6)) {
-               psp_v13_0_wait_for_vmbx_ready(psp);
+               ret = psp_v13_0_wait_for_vmbx_ready(psp);
+               if (ret)
+                       amdgpu_ras_query_boot_status(adev, 4);
+
+               ret = psp_v13_0_wait_for_bootloader(psp);
+               if (ret)
+                       amdgpu_ras_query_boot_status(adev, 4);
 
-               return psp_v13_0_wait_for_bootloader(psp);
+               return ret;
        }
 
        return 0;