OSDN Git Service

drm/amdgpu: remove the check of init status in psp_ras_initialize
authorTao Zhou <tao.zhou1@amd.com>
Thu, 10 Nov 2022 06:37:08 +0000 (14:37 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 10 Nov 2022 20:29:32 +0000 (15:29 -0500)
The initialized status indicates RAS TA is loaded, but in some cases
(such as RAS fatal error) RAS TA could be destroyed although it's not
unloaded. Hence we load RAS TA unconditionally here.

Signed-off-by: Tao Zhou <tao.zhou1@amd.com>
Reviewed-by: Candice Li <candice.li@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c

index 2fcb5bf..0a8c304 100644 (file)
@@ -1526,11 +1526,6 @@ int psp_ras_initialize(struct psp_context *psp)
        if (amdgpu_sriov_vf(adev))
                return 0;
 
-       if (psp->ras_context.context.initialized) {
-               dev_warn(adev->dev, "RAS WARN: TA has already been loaded\n");
-               return 0;
-       }
-
        if (!adev->psp.ras_context.context.bin_desc.size_bytes ||
            !adev->psp.ras_context.context.bin_desc.start_addr) {
                dev_info(adev->dev, "RAS: optional ras ta ucode is not available\n");
@@ -1602,6 +1597,9 @@ int psp_ras_initialize(struct psp_context *psp)
        else {
                if (ras_cmd->ras_status)
                        dev_warn(psp->adev->dev, "RAS Init Status: 0x%X\n", ras_cmd->ras_status);
+
+               /* fail to load RAS TA */
+               psp->ras_context.context.initialized = false;
        }
 
        return ret;