[PATCH 4/4] SWDEV-226663 - Ignore the not supported error from psp

Luben Tuikov luben.tuikov at amd.com
Wed Mar 25 15:41:18 UTC 2020


On 2020-03-25 04:33, Emily Deng wrote:
> As the VCN firmware will not use
> vf vmr now. And new psp policy won't support set tmr
> now.
> For driver compatible issue, ignore the not support error.

The line wrap is a bit off here.

> 
> Signed-off-by: Emily Deng <Emily.Deng at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> index c2bf2d9..1a46050 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> @@ -205,6 +205,7 @@ psp_cmd_submit_buf(struct psp_context *psp,
>  	int index;
>  	int timeout = 2000;
>  	bool ras_intr = false;
> +	bool skip_unsupport = false;

I'd name this "skip_unsupported", or "skip_unsupp".

You shouldn't have to initialize "skip_unsupport" to a value.
Leave it uninitialized. You want the compiler to warn you
if you're using it uninitialized, and show you the path(s)
where this happens, so you can check the logic of the patch.

>  
>  	mutex_lock(&psp->mutex);
>  
> @@ -236,6 +237,9 @@ psp_cmd_submit_buf(struct psp_context *psp,
>  		amdgpu_asic_invalidate_hdp(psp->adev, NULL);
>  	}
>  
> +	/* We allow TEE_ERROR_NOT_SUPPORTED for VMR command in SRIOV */
> +	skip_unsupport = (psp->cmd_buf_mem->resp.status == 0xffff000a) && amdgpu_sriov_vf(psp->adev);
> +

It's unconditionally set here, so you don't need to initialize it when you define it.

Regards,
Luben

>  	/* 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.
> @@ -243,7 +247,7 @@ psp_cmd_submit_buf(struct psp_context *psp,
>  	 * during psp initialization to avoid breaking hw_init and it doesn't
>  	 * return -EINVAL.
>  	 */
> -	if ((psp->cmd_buf_mem->resp.status || !timeout) && !ras_intr) {
> +	if (!skip_unsupport && (psp->cmd_buf_mem->resp.status || !timeout) && !ras_intr) {
>  		if (ucode)
>  			DRM_WARN("failed to load ucode id (%d) ",
>  				  ucode->ucode_id);
> 



More information about the amd-gfx mailing list