[[PATCH v2]drm/amdgpu/psp: ignore psp reponse status] drm/amdgpu/psp: ignore psp reponse status

Paul Menzel pmenzel+amd-gfx at molgen.mpg.de
Mon Jan 14 13:23:40 UTC 2019


Dear Aaron,


Am 14.01.19 um 09:47 schrieb Aaron Liu:
> 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.
> 
> Change-Id: I680679983f972b6969f4949f1faafaf17fe996a6
> Signed-off-by: Aaron Liu <aaron.liu at amd.com>
> Reviewed-by: Huang Rui <ray.huang at amd.com>
> Reviewed-by: Xiangliang Yu<Xiangliang.Yu at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 13 +++++++++----
>   1 file changed, 9 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> index 53c2d60..f26d8fa 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> @@ -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 */

Please describe, why this error can be ignored, and the rest of the 
function be executed. Won’t that introduce other problems?

How can real error situations be determined now?

Also, please extend the commit messages, that this only affects 
microcode update loading (if I understand this correctly).


Kind regards,

Paul


More information about the amd-gfx mailing list