diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0283-drm-amdgpu-reset-wptr-at-cp-compute-resume-v2.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0283-drm-amdgpu-reset-wptr-at-cp-compute-resume-v2.patch | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0283-drm-amdgpu-reset-wptr-at-cp-compute-resume-v2.patch b/common/recipes-kernel/linux/files/0283-drm-amdgpu-reset-wptr-at-cp-compute-resume-v2.patch new file mode 100644 index 00000000..2dfe5e9c --- /dev/null +++ b/common/recipes-kernel/linux/files/0283-drm-amdgpu-reset-wptr-at-cp-compute-resume-v2.patch @@ -0,0 +1,38 @@ +From 845253e78a7871ae87cdc5c135a914c58d6d4f64 Mon Sep 17 00:00:00 2001 +From: Sonny Jiang <sonny.jiang@amd.com> +Date: Tue, 23 Jun 2015 11:59:55 -0400 +Subject: [PATCH 0283/1050] drm/amdgpu: reset wptr at cp compute resume (v2) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This patch is to resolve compute hang at resume time. + +v2: (agd5f) squash in second fix + +Signed-off-by: Sonny Jiang <sonny.jiang@amd.com> +Reviewed-by: Christian König <christian.koenig@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c +index 7683d7f..7b683fb 100644 +--- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c ++++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c +@@ -3144,6 +3144,12 @@ static int gfx_v8_0_cp_compute_resume(struct amdgpu_device *adev) + WREG32(mmCP_HQD_PQ_DOORBELL_CONTROL, + mqd->cp_hqd_pq_doorbell_control); + ++ /* reset read and write pointers, similar to CP_RB0_WPTR/_RPTR */ ++ ring->wptr = 0; ++ mqd->cp_hqd_pq_wptr = ring->wptr; ++ WREG32(mmCP_HQD_PQ_WPTR, mqd->cp_hqd_pq_wptr); ++ mqd->cp_hqd_pq_rptr = RREG32(mmCP_HQD_PQ_RPTR); ++ + /* set the vmid for the queue */ + mqd->cp_hqd_vmid = 0; + WREG32(mmCP_HQD_VMID, mqd->cp_hqd_vmid); +-- +1.9.1 + |