aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu
diff options
context:
space:
mode:
authorBoyuan Zhang <boyuan.zhang@amd.com>2018-06-01 12:30:17 -0400
committerAlex Deucher <alexander.deucher@amd.com>2018-06-15 13:20:37 -0400
commitc8c1a1d2ef040d2661fc9c7f0b32aec5b1058ae3 (patch)
treec1cc92ef357d0bf8c8960d6cec55fff1dcec47c2 /drivers/gpu/drm/amd/amdgpu
parent8a998052f29b811497b004b87dfe1ea1dfef75d1 (diff)
drm/amdgpu: define and add extra dword for jpeg ring
Define extra dword for jpeg ring. Jpeg ring will allocate extra dword to store the patch commands for fixing the known issue. v2: dropping extra_dw for rings other than jpeg. Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h1
-rw-r--r--drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c1
3 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
index c6850b629d0e..19e45a3953e0 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
@@ -304,7 +304,7 @@ int amdgpu_ring_init(struct amdgpu_device *adev, struct amdgpu_ring *ring,
304 0xffffffffffffffff : ring->buf_mask; 304 0xffffffffffffffff : ring->buf_mask;
305 /* Allocate ring buffer */ 305 /* Allocate ring buffer */
306 if (ring->ring_obj == NULL) { 306 if (ring->ring_obj == NULL) {
307 r = amdgpu_bo_create_kernel(adev, ring->ring_size, PAGE_SIZE, 307 r = amdgpu_bo_create_kernel(adev, ring->ring_size + ring->funcs->extra_dw, PAGE_SIZE,
308 AMDGPU_GEM_DOMAIN_GTT, 308 AMDGPU_GEM_DOMAIN_GTT,
309 &ring->ring_obj, 309 &ring->ring_obj,
310 &ring->gpu_addr, 310 &ring->gpu_addr,
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
index a3908efabb66..a293f4e6760d 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
@@ -113,6 +113,7 @@ struct amdgpu_ring_funcs {
113 u32 nop; 113 u32 nop;
114 bool support_64bit_ptrs; 114 bool support_64bit_ptrs;
115 unsigned vmhub; 115 unsigned vmhub;
116 unsigned extra_dw;
116 117
117 /* ring read/write ptr handling */ 118 /* ring read/write ptr handling */
118 u64 (*get_rptr)(struct amdgpu_ring *ring); 119 u64 (*get_rptr)(struct amdgpu_ring *ring);
diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c b/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c
index 92f78c559fc5..8fecdc5cef43 100644
--- a/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c
@@ -1690,6 +1690,7 @@ static const struct amdgpu_ring_funcs vcn_v1_0_jpeg_ring_vm_funcs = {
1690 .nop = PACKET0(0x81ff, 0), 1690 .nop = PACKET0(0x81ff, 0),
1691 .support_64bit_ptrs = false, 1691 .support_64bit_ptrs = false,
1692 .vmhub = AMDGPU_MMHUB, 1692 .vmhub = AMDGPU_MMHUB,
1693 .extra_dw = 64,
1693 .get_rptr = vcn_v1_0_jpeg_ring_get_rptr, 1694 .get_rptr = vcn_v1_0_jpeg_ring_get_rptr,
1694 .get_wptr = vcn_v1_0_jpeg_ring_get_wptr, 1695 .get_wptr = vcn_v1_0_jpeg_ring_get_wptr,
1695 .set_wptr = vcn_v1_0_jpeg_ring_set_wptr, 1696 .set_wptr = vcn_v1_0_jpeg_ring_set_wptr,