diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/1683-drm-amdgpu-add-more-debug-friendly-prompts.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.19.8/1683-drm-amdgpu-add-more-debug-friendly-prompts.patch | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/1683-drm-amdgpu-add-more-debug-friendly-prompts.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/1683-drm-amdgpu-add-more-debug-friendly-prompts.patch new file mode 100644 index 00000000..837fd766 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/1683-drm-amdgpu-add-more-debug-friendly-prompts.patch @@ -0,0 +1,115 @@ +From 09b581dea297e2d1e8af16c2aeff2b9214e93500 Mon Sep 17 00:00:00 2001 +From: Evan Quan <evan.quan@amd.com> +Date: Fri, 15 Mar 2019 10:26:49 +0800 +Subject: [PATCH 1683/2940] 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@amd.com> +Reviewed-by: Feifei Xu <Feifei.Xu@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 39 ++++++++++++++++++------- + 1 file changed, 28 insertions(+), 11 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +index 9578de6e8b37..6e8c5feec1ec 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +@@ -137,7 +137,7 @@ psp_cmd_submit_buf(struct psp_context *psp, + + while (*((unsigned int *)psp->fence_buf) != index) { + if (--timeout == 0) +- return -EINVAL; ++ break; + msleep(1); + } + +@@ -150,13 +150,14 @@ psp_cmd_submit_buf(struct psp_context *psp, + */ + + /* the status field must be 0 after psp command completion */ +- if (psp->cmd_buf_mem->resp.status) { ++ if (psp->cmd_buf_mem->resp.status || !timeout) { + if (ucode) + DRM_ERROR("failed to load ucode id (%d) ", + ucode->ucode_id); + DRM_ERROR("psp command failed and response status is (%d)\n", + psp->cmd_buf_mem->resp.status); +- return -EINVAL; ++ if (!timeout) ++ return -EINVAL; + } + + /* get xGMI session id from response buffer */ +@@ -681,25 +682,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); +@@ -894,16 +905,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.17.1 + |