All of lore.kernel.org
 help / color / mirror / Atom feed
* [[PATCH v2]drm/amdgpu/psp: ignore psp reponse status] drm/amdgpu/psp: ignore psp reponse status
@ 2019-01-14  8:47 Aaron Liu
       [not found] ` <1547455677-7074-1-git-send-email-aaron.liu-5C7GfCeVMHo@public.gmane.org>
  0 siblings, 1 reply; 4+ messages in thread
From: Aaron Liu @ 2019-01-14  8:47 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW; +Cc: 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@amd.com>
Reviewed-by: Huang Rui <ray.huang@amd.com>
Reviewed-by: Xiangliang Yu<Xiangliang.Yu@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 */
-- 
2.7.4

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [[PATCH v2]drm/amdgpu/psp: ignore psp reponse status] drm/amdgpu/psp: ignore psp reponse status
       [not found] ` <1547455677-7074-1-git-send-email-aaron.liu-5C7GfCeVMHo@public.gmane.org>
@ 2019-01-14 13:23   ` Paul Menzel
       [not found]     ` <a4b67076-9903-30ed-9478-71cdbac54327-KUpvgZVWgV9o1qOY/usvUg@public.gmane.org>
  0 siblings, 1 reply; 4+ messages in thread
From: Paul Menzel @ 2019-01-14 13:23 UTC (permalink / raw)
  To: Aaron Liu; +Cc: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

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@amd.com>
> Reviewed-by: Huang Rui <ray.huang@amd.com>
> Reviewed-by: Xiangliang Yu<Xiangliang.Yu@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
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [[PATCH v2]drm/amdgpu/psp: ignore psp reponse status] drm/amdgpu/psp: ignore psp reponse status
       [not found]     ` <a4b67076-9903-30ed-9478-71cdbac54327-KUpvgZVWgV9o1qOY/usvUg@public.gmane.org>
@ 2019-01-15  6:30       ` Liu, Aaron
       [not found]         ` <DM6PR12MB361131D6DD69B1A720F7A265F0810-lmeGfMZKVrGUZgGQSl7qawdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
  0 siblings, 1 reply; 4+ messages in thread
From: Liu, Aaron @ 2019-01-15  6:30 UTC (permalink / raw)
  To: Paul Menzel; +Cc: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

Hi Paul,

The psp code only support ucode loading at the beginning, but forgot to remove the checking when more and more PSP command get into PSP.

So some old PSP FW maybe have problem but PSP driver didn’t find it out.
If reverting the patch, we also can’t find out wrong PSP FW and have big problem when support new PSP command.

The temporary solution is: do not return error if response is invalid but add warning message to notify, it will not block old FW and get attention if new PSP FW have some issue.

BR,
Aaron Liu

> -----Original Message-----
> From: Paul Menzel <pmenzel+amd-gfx@molgen.mpg.de>
> Sent: Monday, January 14, 2019 9:24 PM
> To: Liu, Aaron <Aaron.Liu@amd.com>
> Cc: amd-gfx@lists.freedesktop.org
> Subject: Re: [[PATCH v2]drm/amdgpu/psp: ignore psp reponse status]
> drm/amdgpu/psp: ignore psp reponse status
> 
> 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@amd.com>
> > Reviewed-by: Huang Rui <ray.huang@amd.com>
> > Reviewed-by: Xiangliang Yu<Xiangliang.Yu@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
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [[PATCH v2]drm/amdgpu/psp: ignore psp reponse status] drm/amdgpu/psp: ignore psp reponse status
       [not found]         ` <DM6PR12MB361131D6DD69B1A720F7A265F0810-lmeGfMZKVrGUZgGQSl7qawdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
@ 2019-01-15 11:07           ` Paul Menzel
  0 siblings, 0 replies; 4+ messages in thread
From: Paul Menzel @ 2019-01-15 11:07 UTC (permalink / raw)
  To: Aaron Liu; +Cc: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW


[-- Attachment #1.1: Type: text/plain, Size: 782 bytes --]

Dear Aaron,


On 01/15/19 07:30, Liu, Aaron wrote:

> The psp code only support ucode loading at the beginning, but forgot
> to remove the checking when more and more PSP command get into PSP.

I didn’t know that, and missed that your patch is not only about
microcode loading.

> So some old PSP FW maybe have problem but PSP driver didn’t find it
> out. If reverting the patch, we also can’t find out wrong PSP FW and
> have big problem when support new PSP command.

Understood.

> The temporary solution is: do not return error if response is invalid
> but add warning message to notify, it will not block old FW and get
> attention if new PSP FW have some issue.
There is still a small typo in *response* in the summary.


Kind regards,

Paul


[-- Attachment #1.2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 5174 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-01-15 11:07 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-14  8:47 [[PATCH v2]drm/amdgpu/psp: ignore psp reponse status] drm/amdgpu/psp: ignore psp reponse status Aaron Liu
     [not found] ` <1547455677-7074-1-git-send-email-aaron.liu-5C7GfCeVMHo@public.gmane.org>
2019-01-14 13:23   ` Paul Menzel
     [not found]     ` <a4b67076-9903-30ed-9478-71cdbac54327-KUpvgZVWgV9o1qOY/usvUg@public.gmane.org>
2019-01-15  6:30       ` Liu, Aaron
     [not found]         ` <DM6PR12MB361131D6DD69B1A720F7A265F0810-lmeGfMZKVrGUZgGQSl7qawdYzm3356FpvxpqHgZTriW3zl9H0oFU5g@public.gmane.org>
2019-01-15 11:07           ` Paul Menzel

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.