aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorxinhui pan <xinhui.pan@amd.com>2019-01-22 22:35:31 -0500
committerAlex Deucher <alexander.deucher@amd.com>2019-03-19 16:36:50 -0400
commitea11421391e718a173f8dae96517e76531043a5c (patch)
tree08a11b4157c3828d1b663be510efc53bf05556fc
parent3ea8fb8c803ceb4afb642cc64e151317bd006b0b (diff)
drm/amdgpu: add psp cmd submit timeout
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>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
index c1b862016245..7e3e1d588d74 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
@@ -120,6 +120,7 @@ psp_cmd_submit_buf(struct psp_context *psp,
120{ 120{
121 int ret; 121 int ret;
122 int index; 122 int index;
123 int timeout = 2000;
123 124
124 memset(psp->cmd_buf_mem, 0, PSP_CMD_BUFFER_SIZE); 125 memset(psp->cmd_buf_mem, 0, PSP_CMD_BUFFER_SIZE);
125 126
@@ -133,8 +134,11 @@ psp_cmd_submit_buf(struct psp_context *psp,
133 return ret; 134 return ret;
134 } 135 }
135 136
136 while (*((unsigned int *)psp->fence_buf) != index) 137 while (*((unsigned int *)psp->fence_buf) != index) {
138 if (--timeout == 0)
139 return -EINVAL;
137 msleep(1); 140 msleep(1);
141 }
138 142
139 /* In some cases, psp response status is not 0 even there is no 143 /* In some cases, psp response status is not 0 even there is no
140 * problem while the command is submitted. Some version of PSP FW 144 * problem while the command is submitted. Some version of PSP FW