[PATCH 3/3] drm/amdgpu: add more debug friendly prompts
Quan, Evan
Evan.Quan at amd.com
Fri Mar 22 08:31:04 UTC 2019
Ping..
> -----Original Message-----
> From: Evan Quan <evan.quan at amd.com>
> Sent: 2019年3月15日 14:02
> To: amd-gfx at lists.freedesktop.org
> Cc: Quan, Evan <Evan.Quan at amd.com>
> Subject: [PATCH 3/3] drm/amdgpu: add more debug friendly prompts
>
> Large piece of codes share one error prompt. That is not friendly for
> debugging.
>
> Change-Id: I15f77210af6a409981fe44cf5dd3aa8ce48d948f
> Signed-off-by: Evan Quan <evan.quan at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 38 ++++++++++++++++++-
> ------
> 1 file changed, 28 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> index 32388b5218e9..5888e24219d9 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
> @@ -136,7 +136,7 @@ psp_cmd_submit_buf(struct psp_context *psp,
>
> while (*((unsigned int *)psp->fence_buf) != index) {
> if (--timeout == 0)
> - return -EINVAL;
> + break;
> msleep(1);
> }
>
> @@ -147,12 +147,14 @@ 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) {
> + if (psp->cmd_buf_mem->resp.status || !timeout) {
> if (ucode)
> DRM_WARN("failed to load ucode id (%d) ",
> ucode->ucode_id);
> DRM_WARN("psp command failed and response status is
> (%d)\n",
> psp->cmd_buf_mem->resp.status);
> + if (!timeout)
> + return -EINVAL;
> }
>
> /* get xGMI session id from response buffer */ @@ -677,25 +679,35
> @@ static int psp_hw_start(struct psp_context *psp)
>
> if (!amdgpu_sriov_vf(adev) || !adev->in_gpu_reset) {
> ret = psp_bootloader_load_sysdrv(psp);
> - if (ret)
> + if (ret) {
> + DRM_ERROR("PSP load sysdrv failed!\n");
> return ret;
> + }
>
> ret = psp_bootloader_load_sos(psp);
> - if (ret)
> + if (ret) {
> + DRM_ERROR("PSP load sos failed!\n");
> return ret;
> + }
> }
>
> ret = psp_ring_create(psp, PSP_RING_TYPE__KM);
> - if (ret)
> + if (ret) {
> + DRM_ERROR("PSP create ring failed!\n");
> return ret;
> + }
>
> ret = psp_tmr_load(psp);
> - if (ret)
> + if (ret) {
> + DRM_ERROR("PSP load tmr failed!\n");
> return ret;
> + }
>
> ret = psp_asd_load(psp);
> - if (ret)
> + if (ret) {
> + DRM_ERROR("PSP load asd failed!\n");
> return ret;
> + }
>
> if (adev->gmc.xgmi.num_physical_nodes > 1) {
> ret = psp_xgmi_initialize(psp);
> @@ -890,16 +902,22 @@ static int psp_load_fw(struct amdgpu_device
> *adev)
> memset(psp->fence_buf, 0, PSP_FENCE_BUFFER_SIZE);
>
> ret = psp_ring_init(psp, PSP_RING_TYPE__KM);
> - if (ret)
> + if (ret) {
> + DRM_ERROR("PSP ring init failed!\n");
> goto failed_mem;
> + }
>
> ret = psp_tmr_init(psp);
> - if (ret)
> + if (ret) {
> + DRM_ERROR("PSP tmr init failed!\n");
> goto failed_mem;
> + }
>
> ret = psp_asd_init(psp);
> - if (ret)
> + if (ret) {
> + DRM_ERROR("PSP asd init failed!\n");
> goto failed_mem;
> + }
>
> skip_memalloc:
> ret = psp_hw_start(psp);
> --
> 2.21.0
More information about the amd-gfx
mailing list