drm/amdgpu: add psp cmd submit timeout
authorxinhui pan <xinhui.pan@amd.com>
Wed, 23 Jan 2019 03:35:31 +0000 (11:35 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 19 Mar 2019 20:36:50 +0000 (15:36 -0500)
Signed-off-by: xinhui pan <xinhui.pan@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_psp.c

index c1b86201624535652ef965e6d3e1edf7230d0888..7e3e1d588d748552ef2252f0a7cffc5e0dfa22c8 100644 (file)
@@ -120,6 +120,7 @@ psp_cmd_submit_buf(struct psp_context *psp,
 {
        int ret;
        int index;
+       int timeout = 2000;
 
        memset(psp->cmd_buf_mem, 0, PSP_CMD_BUFFER_SIZE);
 
@@ -133,8 +134,11 @@ psp_cmd_submit_buf(struct psp_context *psp,
                return ret;
        }
 
-       while (*((unsigned int *)psp->fence_buf) != index)
+       while (*((unsigned int *)psp->fence_buf) != index) {
+               if (--timeout == 0)
+                       return -EINVAL;
                msleep(1);
+       }
 
        /* In some cases, psp response status is not 0 even there is no
         * problem while the command is submitted. Some version of PSP FW