Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 466bcb75 authored by Aaron Liu's avatar Aaron Liu Committed by Alex Deucher
Browse files

drm/amdgpu/psp: ignore psp response status



In some cases, psp response status is not 0 even there is no
problem while the command is submitted. Some version of PSP FW
doesn't write 0 to that field.
So here we would like to only print a warning instead of an error
during psp initialization to avoid breaking hw_init and it doesn't
return -EINVAL.

Signed-off-by: default avatarAaron Liu <aaron.liu@amd.com>
Reviewed-by: default avatarHuang Rui <ray.huang@amd.com>
Reviewed-by: default avatarXiangliang <Yu&lt;Xiangliang.Yu@amd.com>
Acked-by: default avatarChristian König <christian.koenig@amd.com>
Reviewed-by: default avatarFeifei Xu <Feifei.Xu@amd.com>
Reviewed-by: default avatarPaul Menzel <pmenzel+amd-gfx@molgen.mpg.de>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 7c94bc82
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -140,14 +140,19 @@ psp_cmd_submit_buf(struct psp_context *psp,
	while (*((unsigned int *)psp->fence_buf) != index)
		msleep(1);

	/* the status field must be 0 after psp command completion */
	/* In some cases, psp response status is not 0 even there is no
	 * problem while the command is submitted. Some version of PSP FW
	 * doesn't write 0 to that field.
	 * So here we would like to only print a warning instead of an error
	 * during psp initialization to avoid breaking hw_init and it doesn't
	 * return -EINVAL.
	 */
	if (psp->cmd_buf_mem->resp.status) {
		if (ucode)
			DRM_ERROR("failed to load ucode id (%d) ",
			DRM_WARN("failed to load ucode id (%d) ",
				  ucode->ucode_id);
		DRM_ERROR("psp command failed and response status is (%d)\n",
		DRM_WARN("psp command failed and response status is (%d)\n",
			  psp->cmd_buf_mem->resp.status);
		return -EINVAL;
	}

	/* get xGMI session id from response buffer */