aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu.h1
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c7
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h1
-rw-r--r--drivers/gpu/drm/amd/amdgpu/cik_sdma.c10
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c39
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c26
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c19
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c14
-rw-r--r--drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c10
-rw-r--r--drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c11
-rw-r--r--drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c13
-rw-r--r--drivers/gpu/drm/amd/amdgpu/si_dma.c19
-rw-r--r--drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c30
-rw-r--r--drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c30
-rw-r--r--drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c35
-rw-r--r--drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c37
-rw-r--r--drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c18
17 files changed, 18 insertions, 302 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 8367f92de09a..b7c60bb4457d 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -1797,7 +1797,6 @@ amdgpu_get_sdma_instance(struct amdgpu_ring *ring)
1797#define amdgpu_ring_emit_fence(r, addr, seq, flags) (r)->funcs->emit_fence((r), (addr), (seq), (flags)) 1797#define amdgpu_ring_emit_fence(r, addr, seq, flags) (r)->funcs->emit_fence((r), (addr), (seq), (flags))
1798#define amdgpu_ring_emit_gds_switch(r, v, db, ds, wb, ws, ab, as) (r)->funcs->emit_gds_switch((r), (v), (db), (ds), (wb), (ws), (ab), (as)) 1798#define amdgpu_ring_emit_gds_switch(r, v, db, ds, wb, ws, ab, as) (r)->funcs->emit_gds_switch((r), (v), (db), (ds), (wb), (ws), (ab), (as))
1799#define amdgpu_ring_emit_hdp_flush(r) (r)->funcs->emit_hdp_flush((r)) 1799#define amdgpu_ring_emit_hdp_flush(r) (r)->funcs->emit_hdp_flush((r))
1800#define amdgpu_ring_emit_hdp_invalidate(r) (r)->funcs->emit_hdp_invalidate((r))
1801#define amdgpu_ring_emit_switch_buffer(r) (r)->funcs->emit_switch_buffer((r)) 1800#define amdgpu_ring_emit_switch_buffer(r) (r)->funcs->emit_switch_buffer((r))
1802#define amdgpu_ring_emit_cntxcntl(r, d) (r)->funcs->emit_cntxcntl((r), (d)) 1801#define amdgpu_ring_emit_cntxcntl(r, d) (r)->funcs->emit_cntxcntl((r), (d))
1803#define amdgpu_ring_emit_rreg(r, d) (r)->funcs->emit_rreg((r), (d)) 1802#define amdgpu_ring_emit_rreg(r, d) (r)->funcs->emit_rreg((r), (d))
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
index e87c9952c901..8ea342dc6376 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c
@@ -225,12 +225,7 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned num_ibs,
225#ifdef CONFIG_X86_64 225#ifdef CONFIG_X86_64
226 if (!(adev->flags & AMD_IS_APU)) 226 if (!(adev->flags & AMD_IS_APU))
227#endif 227#endif
228 { 228 amdgpu_asic_invalidate_hdp(adev, ring);
229 if (ring->funcs->emit_hdp_invalidate)
230 amdgpu_ring_emit_hdp_invalidate(ring);
231 else
232 amdgpu_asic_invalidate_hdp(adev, ring);
233 }
234 229
235 r = amdgpu_fence_emit(ring, f); 230 r = amdgpu_fence_emit(ring, f);
236 if (r) { 231 if (r) {
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
index 12b9a06f4d21..70d05ec7bc07 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h
@@ -128,7 +128,6 @@ struct amdgpu_ring_funcs {
128 void (*emit_vm_flush)(struct amdgpu_ring *ring, unsigned vmid, 128 void (*emit_vm_flush)(struct amdgpu_ring *ring, unsigned vmid,
129 unsigned pasid, uint64_t pd_addr); 129 unsigned pasid, uint64_t pd_addr);
130 void (*emit_hdp_flush)(struct amdgpu_ring *ring); 130 void (*emit_hdp_flush)(struct amdgpu_ring *ring);
131 void (*emit_hdp_invalidate)(struct amdgpu_ring *ring);
132 void (*emit_gds_switch)(struct amdgpu_ring *ring, uint32_t vmid, 131 void (*emit_gds_switch)(struct amdgpu_ring *ring, uint32_t vmid,
133 uint32_t gds_base, uint32_t gds_size, 132 uint32_t gds_base, uint32_t gds_size,
134 uint32_t gws_base, uint32_t gws_size, 133 uint32_t gws_base, uint32_t gws_size,
diff --git a/drivers/gpu/drm/amd/amdgpu/cik_sdma.c b/drivers/gpu/drm/amd/amdgpu/cik_sdma.c
index 1d32dedb2534..5d18512cd090 100644
--- a/drivers/gpu/drm/amd/amdgpu/cik_sdma.c
+++ b/drivers/gpu/drm/amd/amdgpu/cik_sdma.c
@@ -261,13 +261,6 @@ static void cik_sdma_ring_emit_hdp_flush(struct amdgpu_ring *ring)
261 amdgpu_ring_write(ring, (0xfff << 16) | 10); /* retry count, poll interval */ 261 amdgpu_ring_write(ring, (0xfff << 16) | 10); /* retry count, poll interval */
262} 262}
263 263
264static void cik_sdma_ring_emit_hdp_invalidate(struct amdgpu_ring *ring)
265{
266 amdgpu_ring_write(ring, SDMA_PACKET(SDMA_OPCODE_SRBM_WRITE, 0, 0xf000));
267 amdgpu_ring_write(ring, mmHDP_DEBUG0);
268 amdgpu_ring_write(ring, 1);
269}
270
271/** 264/**
272 * cik_sdma_ring_emit_fence - emit a fence on the DMA ring 265 * cik_sdma_ring_emit_fence - emit a fence on the DMA ring
273 * 266 *
@@ -1277,7 +1270,7 @@ static const struct amdgpu_ring_funcs cik_sdma_ring_funcs = {
1277 .set_wptr = cik_sdma_ring_set_wptr, 1270 .set_wptr = cik_sdma_ring_set_wptr,
1278 .emit_frame_size = 1271 .emit_frame_size =
1279 6 + /* cik_sdma_ring_emit_hdp_flush */ 1272 6 + /* cik_sdma_ring_emit_hdp_flush */
1280 3 + /* cik_sdma_ring_emit_hdp_invalidate */ 1273 3 + /* hdp invalidate */
1281 6 + /* cik_sdma_ring_emit_pipeline_sync */ 1274 6 + /* cik_sdma_ring_emit_pipeline_sync */
1282 CIK_FLUSH_GPU_TLB_NUM_WREG * 3 + 6 + /* cik_sdma_ring_emit_vm_flush */ 1275 CIK_FLUSH_GPU_TLB_NUM_WREG * 3 + 6 + /* cik_sdma_ring_emit_vm_flush */
1283 9 + 9 + 9, /* cik_sdma_ring_emit_fence x3 for user fence, vm fence */ 1276 9 + 9 + 9, /* cik_sdma_ring_emit_fence x3 for user fence, vm fence */
@@ -1287,7 +1280,6 @@ static const struct amdgpu_ring_funcs cik_sdma_ring_funcs = {
1287 .emit_pipeline_sync = cik_sdma_ring_emit_pipeline_sync, 1280 .emit_pipeline_sync = cik_sdma_ring_emit_pipeline_sync,
1288 .emit_vm_flush = cik_sdma_ring_emit_vm_flush, 1281 .emit_vm_flush = cik_sdma_ring_emit_vm_flush,
1289 .emit_hdp_flush = cik_sdma_ring_emit_hdp_flush, 1282 .emit_hdp_flush = cik_sdma_ring_emit_hdp_flush,
1290 .emit_hdp_invalidate = cik_sdma_ring_emit_hdp_invalidate,
1291 .test_ring = cik_sdma_ring_test_ring, 1283 .test_ring = cik_sdma_ring_test_ring,
1292 .test_ib = cik_sdma_ring_test_ib, 1284 .test_ib = cik_sdma_ring_test_ib,
1293 .insert_nop = cik_sdma_ring_insert_nop, 1285 .insert_nop = cik_sdma_ring_insert_nop,
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
index e6c3a2465ba4..3517fd9e11c9 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
@@ -1809,17 +1809,6 @@ static int gfx_v6_0_ring_test_ring(struct amdgpu_ring *ring)
1809 return r; 1809 return r;
1810} 1810}
1811 1811
1812static void gfx_v6_0_ring_emit_hdp_flush(struct amdgpu_ring *ring)
1813{
1814 /* flush hdp cache */
1815 amdgpu_ring_write(ring, PACKET3(PACKET3_WRITE_DATA, 3));
1816 amdgpu_ring_write(ring, (WRITE_DATA_ENGINE_SEL(1) |
1817 WRITE_DATA_DST_SEL(0)));
1818 amdgpu_ring_write(ring, mmHDP_MEM_COHERENCY_FLUSH_CNTL);
1819 amdgpu_ring_write(ring, 0);
1820 amdgpu_ring_write(ring, 0x1);
1821}
1822
1823static void gfx_v6_0_ring_emit_vgt_flush(struct amdgpu_ring *ring) 1812static void gfx_v6_0_ring_emit_vgt_flush(struct amdgpu_ring *ring)
1824{ 1813{
1825 amdgpu_ring_write(ring, PACKET3(PACKET3_EVENT_WRITE, 0)); 1814 amdgpu_ring_write(ring, PACKET3(PACKET3_EVENT_WRITE, 0));
@@ -1827,24 +1816,6 @@ static void gfx_v6_0_ring_emit_vgt_flush(struct amdgpu_ring *ring)
1827 EVENT_INDEX(0)); 1816 EVENT_INDEX(0));
1828} 1817}
1829 1818
1830/**
1831 * gfx_v6_0_ring_emit_hdp_invalidate - emit an hdp invalidate on the cp
1832 *
1833 * @adev: amdgpu_device pointer
1834 * @ridx: amdgpu ring index
1835 *
1836 * Emits an hdp invalidate on the cp.
1837 */
1838static void gfx_v6_0_ring_emit_hdp_invalidate(struct amdgpu_ring *ring)
1839{
1840 amdgpu_ring_write(ring, PACKET3(PACKET3_WRITE_DATA, 3));
1841 amdgpu_ring_write(ring, (WRITE_DATA_ENGINE_SEL(1) |
1842 WRITE_DATA_DST_SEL(0)));
1843 amdgpu_ring_write(ring, mmHDP_DEBUG0);
1844 amdgpu_ring_write(ring, 0);
1845 amdgpu_ring_write(ring, 0x1);
1846}
1847
1848static void gfx_v6_0_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, 1819static void gfx_v6_0_ring_emit_fence(struct amdgpu_ring *ring, u64 addr,
1849 u64 seq, unsigned flags) 1820 u64 seq, unsigned flags)
1850{ 1821{
@@ -3507,8 +3478,7 @@ static const struct amdgpu_ring_funcs gfx_v6_0_ring_funcs_gfx = {
3507 .get_wptr = gfx_v6_0_ring_get_wptr, 3478 .get_wptr = gfx_v6_0_ring_get_wptr,
3508 .set_wptr = gfx_v6_0_ring_set_wptr_gfx, 3479 .set_wptr = gfx_v6_0_ring_set_wptr_gfx,
3509 .emit_frame_size = 3480 .emit_frame_size =
3510 5 + /* gfx_v6_0_ring_emit_hdp_flush */ 3481 5 + 5 + /* hdp flush / invalidate */
3511 5 + /* gfx_v6_0_ring_emit_hdp_invalidate */
3512 14 + 14 + 14 + /* gfx_v6_0_ring_emit_fence x3 for user fence, vm fence */ 3482 14 + 14 + 14 + /* gfx_v6_0_ring_emit_fence x3 for user fence, vm fence */
3513 7 + 4 + /* gfx_v6_0_ring_emit_pipeline_sync */ 3483 7 + 4 + /* gfx_v6_0_ring_emit_pipeline_sync */
3514 SI_FLUSH_GPU_TLB_NUM_WREG * 5 + 7 + 6 + /* gfx_v6_0_ring_emit_vm_flush */ 3484 SI_FLUSH_GPU_TLB_NUM_WREG * 5 + 7 + 6 + /* gfx_v6_0_ring_emit_vm_flush */
@@ -3518,8 +3488,6 @@ static const struct amdgpu_ring_funcs gfx_v6_0_ring_funcs_gfx = {
3518 .emit_fence = gfx_v6_0_ring_emit_fence, 3488 .emit_fence = gfx_v6_0_ring_emit_fence,
3519 .emit_pipeline_sync = gfx_v6_0_ring_emit_pipeline_sync, 3489 .emit_pipeline_sync = gfx_v6_0_ring_emit_pipeline_sync,
3520 .emit_vm_flush = gfx_v6_0_ring_emit_vm_flush, 3490 .emit_vm_flush = gfx_v6_0_ring_emit_vm_flush,
3521 .emit_hdp_flush = gfx_v6_0_ring_emit_hdp_flush,
3522 .emit_hdp_invalidate = gfx_v6_0_ring_emit_hdp_invalidate,
3523 .test_ring = gfx_v6_0_ring_test_ring, 3491 .test_ring = gfx_v6_0_ring_test_ring,
3524 .test_ib = gfx_v6_0_ring_test_ib, 3492 .test_ib = gfx_v6_0_ring_test_ib,
3525 .insert_nop = amdgpu_ring_insert_nop, 3493 .insert_nop = amdgpu_ring_insert_nop,
@@ -3535,8 +3503,7 @@ static const struct amdgpu_ring_funcs gfx_v6_0_ring_funcs_compute = {
3535 .get_wptr = gfx_v6_0_ring_get_wptr, 3503 .get_wptr = gfx_v6_0_ring_get_wptr,
3536 .set_wptr = gfx_v6_0_ring_set_wptr_compute, 3504 .set_wptr = gfx_v6_0_ring_set_wptr_compute,
3537 .emit_frame_size = 3505 .emit_frame_size =
3538 5 + /* gfx_v6_0_ring_emit_hdp_flush */ 3506 5 + 5 + /* hdp flush / invalidate */
3539 5 + /* gfx_v6_0_ring_emit_hdp_invalidate */
3540 7 + /* gfx_v6_0_ring_emit_pipeline_sync */ 3507 7 + /* gfx_v6_0_ring_emit_pipeline_sync */
3541 SI_FLUSH_GPU_TLB_NUM_WREG * 5 + 7 + /* gfx_v6_0_ring_emit_vm_flush */ 3508 SI_FLUSH_GPU_TLB_NUM_WREG * 5 + 7 + /* gfx_v6_0_ring_emit_vm_flush */
3542 14 + 14 + 14, /* gfx_v6_0_ring_emit_fence x3 for user fence, vm fence */ 3509 14 + 14 + 14, /* gfx_v6_0_ring_emit_fence x3 for user fence, vm fence */
@@ -3545,8 +3512,6 @@ static const struct amdgpu_ring_funcs gfx_v6_0_ring_funcs_compute = {
3545 .emit_fence = gfx_v6_0_ring_emit_fence, 3512 .emit_fence = gfx_v6_0_ring_emit_fence,
3546 .emit_pipeline_sync = gfx_v6_0_ring_emit_pipeline_sync, 3513 .emit_pipeline_sync = gfx_v6_0_ring_emit_pipeline_sync,
3547 .emit_vm_flush = gfx_v6_0_ring_emit_vm_flush, 3514 .emit_vm_flush = gfx_v6_0_ring_emit_vm_flush,
3548 .emit_hdp_flush = gfx_v6_0_ring_emit_hdp_flush,
3549 .emit_hdp_invalidate = gfx_v6_0_ring_emit_hdp_invalidate,
3550 .test_ring = gfx_v6_0_ring_test_ring, 3515 .test_ring = gfx_v6_0_ring_test_ring,
3551 .test_ib = gfx_v6_0_ring_test_ib, 3516 .test_ib = gfx_v6_0_ring_test_ib,
3552 .insert_nop = amdgpu_ring_insert_nop, 3517 .insert_nop = amdgpu_ring_insert_nop,
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
index 3c2b678436f2..764e068fc2dd 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
@@ -2147,26 +2147,6 @@ static void gfx_v7_0_ring_emit_vgt_flush(struct amdgpu_ring *ring)
2147 EVENT_INDEX(0)); 2147 EVENT_INDEX(0));
2148} 2148}
2149 2149
2150
2151/**
2152 * gfx_v7_0_ring_emit_hdp_invalidate - emit an hdp invalidate on the cp
2153 *
2154 * @adev: amdgpu_device pointer
2155 * @ridx: amdgpu ring index
2156 *
2157 * Emits an hdp invalidate on the cp.
2158 */
2159static void gfx_v7_0_ring_emit_hdp_invalidate(struct amdgpu_ring *ring)
2160{
2161 amdgpu_ring_write(ring, PACKET3(PACKET3_WRITE_DATA, 3));
2162 amdgpu_ring_write(ring, (WRITE_DATA_ENGINE_SEL(0) |
2163 WRITE_DATA_DST_SEL(0) |
2164 WR_CONFIRM));
2165 amdgpu_ring_write(ring, mmHDP_DEBUG0);
2166 amdgpu_ring_write(ring, 0);
2167 amdgpu_ring_write(ring, 1);
2168}
2169
2170/** 2150/**
2171 * gfx_v7_0_ring_emit_fence_gfx - emit a fence on the gfx ring 2151 * gfx_v7_0_ring_emit_fence_gfx - emit a fence on the gfx ring
2172 * 2152 *
@@ -5110,7 +5090,7 @@ static const struct amdgpu_ring_funcs gfx_v7_0_ring_funcs_gfx = {
5110 .emit_frame_size = 5090 .emit_frame_size =
5111 20 + /* gfx_v7_0_ring_emit_gds_switch */ 5091 20 + /* gfx_v7_0_ring_emit_gds_switch */
5112 7 + /* gfx_v7_0_ring_emit_hdp_flush */ 5092 7 + /* gfx_v7_0_ring_emit_hdp_flush */
5113 5 + /* gfx_v7_0_ring_emit_hdp_invalidate */ 5093 5 + /* hdp invalidate */
5114 12 + 12 + 12 + /* gfx_v7_0_ring_emit_fence_gfx x3 for user fence, vm fence */ 5094 12 + 12 + 12 + /* gfx_v7_0_ring_emit_fence_gfx x3 for user fence, vm fence */
5115 7 + 4 + /* gfx_v7_0_ring_emit_pipeline_sync */ 5095 7 + 4 + /* gfx_v7_0_ring_emit_pipeline_sync */
5116 CIK_FLUSH_GPU_TLB_NUM_WREG * 5 + 7 + 6 + /* gfx_v7_0_ring_emit_vm_flush */ 5096 CIK_FLUSH_GPU_TLB_NUM_WREG * 5 + 7 + 6 + /* gfx_v7_0_ring_emit_vm_flush */
@@ -5122,7 +5102,6 @@ static const struct amdgpu_ring_funcs gfx_v7_0_ring_funcs_gfx = {
5122 .emit_vm_flush = gfx_v7_0_ring_emit_vm_flush, 5102 .emit_vm_flush = gfx_v7_0_ring_emit_vm_flush,
5123 .emit_gds_switch = gfx_v7_0_ring_emit_gds_switch, 5103 .emit_gds_switch = gfx_v7_0_ring_emit_gds_switch,
5124 .emit_hdp_flush = gfx_v7_0_ring_emit_hdp_flush, 5104 .emit_hdp_flush = gfx_v7_0_ring_emit_hdp_flush,
5125 .emit_hdp_invalidate = gfx_v7_0_ring_emit_hdp_invalidate,
5126 .test_ring = gfx_v7_0_ring_test_ring, 5105 .test_ring = gfx_v7_0_ring_test_ring,
5127 .test_ib = gfx_v7_0_ring_test_ib, 5106 .test_ib = gfx_v7_0_ring_test_ib,
5128 .insert_nop = amdgpu_ring_insert_nop, 5107 .insert_nop = amdgpu_ring_insert_nop,
@@ -5142,7 +5121,7 @@ static const struct amdgpu_ring_funcs gfx_v7_0_ring_funcs_compute = {
5142 .emit_frame_size = 5121 .emit_frame_size =
5143 20 + /* gfx_v7_0_ring_emit_gds_switch */ 5122 20 + /* gfx_v7_0_ring_emit_gds_switch */
5144 7 + /* gfx_v7_0_ring_emit_hdp_flush */ 5123 7 + /* gfx_v7_0_ring_emit_hdp_flush */
5145 5 + /* gfx_v7_0_ring_emit_hdp_invalidate */ 5124 5 + /* hdp invalidate */
5146 7 + /* gfx_v7_0_ring_emit_pipeline_sync */ 5125 7 + /* gfx_v7_0_ring_emit_pipeline_sync */
5147 CIK_FLUSH_GPU_TLB_NUM_WREG * 5 + 7 + /* gfx_v7_0_ring_emit_vm_flush */ 5126 CIK_FLUSH_GPU_TLB_NUM_WREG * 5 + 7 + /* gfx_v7_0_ring_emit_vm_flush */
5148 7 + 7 + 7, /* gfx_v7_0_ring_emit_fence_compute x3 for user fence, vm fence */ 5127 7 + 7 + 7, /* gfx_v7_0_ring_emit_fence_compute x3 for user fence, vm fence */
@@ -5153,7 +5132,6 @@ static const struct amdgpu_ring_funcs gfx_v7_0_ring_funcs_compute = {
5153 .emit_vm_flush = gfx_v7_0_ring_emit_vm_flush, 5132 .emit_vm_flush = gfx_v7_0_ring_emit_vm_flush,
5154 .emit_gds_switch = gfx_v7_0_ring_emit_gds_switch, 5133 .emit_gds_switch = gfx_v7_0_ring_emit_gds_switch,
5155 .emit_hdp_flush = gfx_v7_0_ring_emit_hdp_flush, 5134 .emit_hdp_flush = gfx_v7_0_ring_emit_hdp_flush,
5156 .emit_hdp_invalidate = gfx_v7_0_ring_emit_hdp_invalidate,
5157 .test_ring = gfx_v7_0_ring_test_ring, 5135 .test_ring = gfx_v7_0_ring_test_ring,
5158 .test_ib = gfx_v7_0_ring_test_ib, 5136 .test_ib = gfx_v7_0_ring_test_ib,
5159 .insert_nop = amdgpu_ring_insert_nop, 5137 .insert_nop = amdgpu_ring_insert_nop,
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
index e4d209b5c879..5a2e4d5a5bd1 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
@@ -6230,19 +6230,6 @@ static void gfx_v8_0_ring_emit_vgt_flush(struct amdgpu_ring *ring)
6230 EVENT_INDEX(0)); 6230 EVENT_INDEX(0));
6231} 6231}
6232 6232
6233
6234static void gfx_v8_0_ring_emit_hdp_invalidate(struct amdgpu_ring *ring)
6235{
6236 amdgpu_ring_write(ring, PACKET3(PACKET3_WRITE_DATA, 3));
6237 amdgpu_ring_write(ring, (WRITE_DATA_ENGINE_SEL(0) |
6238 WRITE_DATA_DST_SEL(0) |
6239 WR_CONFIRM));
6240 amdgpu_ring_write(ring, mmHDP_DEBUG0);
6241 amdgpu_ring_write(ring, 0);
6242 amdgpu_ring_write(ring, 1);
6243
6244}
6245
6246static void gfx_v8_0_ring_emit_ib_gfx(struct amdgpu_ring *ring, 6233static void gfx_v8_0_ring_emit_ib_gfx(struct amdgpu_ring *ring,
6247 struct amdgpu_ib *ib, 6234 struct amdgpu_ib *ib,
6248 unsigned vmid, bool ctx_switch) 6235 unsigned vmid, bool ctx_switch)
@@ -6887,7 +6874,6 @@ static const struct amdgpu_ring_funcs gfx_v8_0_ring_funcs_gfx = {
6887 .emit_vm_flush = gfx_v8_0_ring_emit_vm_flush, 6874 .emit_vm_flush = gfx_v8_0_ring_emit_vm_flush,
6888 .emit_gds_switch = gfx_v8_0_ring_emit_gds_switch, 6875 .emit_gds_switch = gfx_v8_0_ring_emit_gds_switch,
6889 .emit_hdp_flush = gfx_v8_0_ring_emit_hdp_flush, 6876 .emit_hdp_flush = gfx_v8_0_ring_emit_hdp_flush,
6890 .emit_hdp_invalidate = gfx_v8_0_ring_emit_hdp_invalidate,
6891 .test_ring = gfx_v8_0_ring_test_ring, 6877 .test_ring = gfx_v8_0_ring_test_ring,
6892 .test_ib = gfx_v8_0_ring_test_ib, 6878 .test_ib = gfx_v8_0_ring_test_ib,
6893 .insert_nop = amdgpu_ring_insert_nop, 6879 .insert_nop = amdgpu_ring_insert_nop,
@@ -6910,7 +6896,7 @@ static const struct amdgpu_ring_funcs gfx_v8_0_ring_funcs_compute = {
6910 .emit_frame_size = 6896 .emit_frame_size =
6911 20 + /* gfx_v8_0_ring_emit_gds_switch */ 6897 20 + /* gfx_v8_0_ring_emit_gds_switch */
6912 7 + /* gfx_v8_0_ring_emit_hdp_flush */ 6898 7 + /* gfx_v8_0_ring_emit_hdp_flush */
6913 5 + /* gfx_v8_0_ring_emit_hdp_invalidate */ 6899 5 + /* hdp_invalidate */
6914 7 + /* gfx_v8_0_ring_emit_pipeline_sync */ 6900 7 + /* gfx_v8_0_ring_emit_pipeline_sync */
6915 VI_FLUSH_GPU_TLB_NUM_WREG * 5 + 7 + /* gfx_v8_0_ring_emit_vm_flush */ 6901 VI_FLUSH_GPU_TLB_NUM_WREG * 5 + 7 + /* gfx_v8_0_ring_emit_vm_flush */
6916 7 + 7 + 7, /* gfx_v8_0_ring_emit_fence_compute x3 for user fence, vm fence */ 6902 7 + 7 + 7, /* gfx_v8_0_ring_emit_fence_compute x3 for user fence, vm fence */
@@ -6921,7 +6907,6 @@ static const struct amdgpu_ring_funcs gfx_v8_0_ring_funcs_compute = {
6921 .emit_vm_flush = gfx_v8_0_ring_emit_vm_flush, 6907 .emit_vm_flush = gfx_v8_0_ring_emit_vm_flush,
6922 .emit_gds_switch = gfx_v8_0_ring_emit_gds_switch, 6908 .emit_gds_switch = gfx_v8_0_ring_emit_gds_switch,
6923 .emit_hdp_flush = gfx_v8_0_ring_emit_hdp_flush, 6909 .emit_hdp_flush = gfx_v8_0_ring_emit_hdp_flush,
6924 .emit_hdp_invalidate = gfx_v8_0_ring_emit_hdp_invalidate,
6925 .test_ring = gfx_v8_0_ring_test_ring, 6910 .test_ring = gfx_v8_0_ring_test_ring,
6926 .test_ib = gfx_v8_0_ring_test_ib, 6911 .test_ib = gfx_v8_0_ring_test_ib,
6927 .insert_nop = amdgpu_ring_insert_nop, 6912 .insert_nop = amdgpu_ring_insert_nop,
@@ -6941,7 +6926,7 @@ static const struct amdgpu_ring_funcs gfx_v8_0_ring_funcs_kiq = {
6941 .emit_frame_size = 6926 .emit_frame_size =
6942 20 + /* gfx_v8_0_ring_emit_gds_switch */ 6927 20 + /* gfx_v8_0_ring_emit_gds_switch */
6943 7 + /* gfx_v8_0_ring_emit_hdp_flush */ 6928 7 + /* gfx_v8_0_ring_emit_hdp_flush */
6944 5 + /* gfx_v8_0_ring_emit_hdp_invalidate */ 6929 5 + /* hdp_invalidate */
6945 7 + /* gfx_v8_0_ring_emit_pipeline_sync */ 6930 7 + /* gfx_v8_0_ring_emit_pipeline_sync */
6946 17 + /* gfx_v8_0_ring_emit_vm_flush */ 6931 17 + /* gfx_v8_0_ring_emit_vm_flush */
6947 7 + 7 + 7, /* gfx_v8_0_ring_emit_fence_kiq x3 for user fence, vm fence */ 6932 7 + 7 + 7, /* gfx_v8_0_ring_emit_fence_kiq x3 for user fence, vm fence */
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
index afdf57206efa..cd2b24ce785b 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
@@ -3585,14 +3585,6 @@ static void gfx_v9_0_ring_emit_hdp_flush(struct amdgpu_ring *ring)
3585 ref_and_mask, ref_and_mask, 0x20); 3585 ref_and_mask, ref_and_mask, 0x20);
3586} 3586}
3587 3587
3588static void gfx_v9_0_ring_emit_hdp_invalidate(struct amdgpu_ring *ring)
3589{
3590 struct amdgpu_device *adev = ring->adev;
3591
3592 gfx_v9_0_write_data_to_reg(ring, 0, true,
3593 SOC15_REG_OFFSET(HDP, 0, mmHDP_READ_CACHE_INVALIDATE), 1);
3594}
3595
3596static void gfx_v9_0_ring_emit_ib_gfx(struct amdgpu_ring *ring, 3588static void gfx_v9_0_ring_emit_ib_gfx(struct amdgpu_ring *ring,
3597 struct amdgpu_ib *ib, 3589 struct amdgpu_ib *ib,
3598 unsigned vmid, bool ctx_switch) 3590 unsigned vmid, bool ctx_switch)
@@ -4319,7 +4311,6 @@ static const struct amdgpu_ring_funcs gfx_v9_0_ring_funcs_gfx = {
4319 .emit_vm_flush = gfx_v9_0_ring_emit_vm_flush, 4311 .emit_vm_flush = gfx_v9_0_ring_emit_vm_flush,
4320 .emit_gds_switch = gfx_v9_0_ring_emit_gds_switch, 4312 .emit_gds_switch = gfx_v9_0_ring_emit_gds_switch,
4321 .emit_hdp_flush = gfx_v9_0_ring_emit_hdp_flush, 4313 .emit_hdp_flush = gfx_v9_0_ring_emit_hdp_flush,
4322 .emit_hdp_invalidate = gfx_v9_0_ring_emit_hdp_invalidate,
4323 .test_ring = gfx_v9_0_ring_test_ring, 4314 .test_ring = gfx_v9_0_ring_test_ring,
4324 .test_ib = gfx_v9_0_ring_test_ib, 4315 .test_ib = gfx_v9_0_ring_test_ib,
4325 .insert_nop = amdgpu_ring_insert_nop, 4316 .insert_nop = amdgpu_ring_insert_nop,
@@ -4344,7 +4335,7 @@ static const struct amdgpu_ring_funcs gfx_v9_0_ring_funcs_compute = {
4344 .emit_frame_size = 4335 .emit_frame_size =
4345 20 + /* gfx_v9_0_ring_emit_gds_switch */ 4336 20 + /* gfx_v9_0_ring_emit_gds_switch */
4346 7 + /* gfx_v9_0_ring_emit_hdp_flush */ 4337 7 + /* gfx_v9_0_ring_emit_hdp_flush */
4347 5 + /* gfx_v9_0_ring_emit_hdp_invalidate */ 4338 5 + /* hdp invalidate */
4348 7 + /* gfx_v9_0_ring_emit_pipeline_sync */ 4339 7 + /* gfx_v9_0_ring_emit_pipeline_sync */
4349 SOC15_FLUSH_GPU_TLB_NUM_WREG * 5 + 9 + /* gfx_v9_0_ring_emit_vm_flush */ 4340 SOC15_FLUSH_GPU_TLB_NUM_WREG * 5 + 9 + /* gfx_v9_0_ring_emit_vm_flush */
4350 8 + 8 + 8, /* gfx_v9_0_ring_emit_fence x3 for user fence, vm fence */ 4341 8 + 8 + 8, /* gfx_v9_0_ring_emit_fence x3 for user fence, vm fence */
@@ -4355,7 +4346,6 @@ static const struct amdgpu_ring_funcs gfx_v9_0_ring_funcs_compute = {
4355 .emit_vm_flush = gfx_v9_0_ring_emit_vm_flush, 4346 .emit_vm_flush = gfx_v9_0_ring_emit_vm_flush,
4356 .emit_gds_switch = gfx_v9_0_ring_emit_gds_switch, 4347 .emit_gds_switch = gfx_v9_0_ring_emit_gds_switch,
4357 .emit_hdp_flush = gfx_v9_0_ring_emit_hdp_flush, 4348 .emit_hdp_flush = gfx_v9_0_ring_emit_hdp_flush,
4358 .emit_hdp_invalidate = gfx_v9_0_ring_emit_hdp_invalidate,
4359 .test_ring = gfx_v9_0_ring_test_ring, 4349 .test_ring = gfx_v9_0_ring_test_ring,
4360 .test_ib = gfx_v9_0_ring_test_ib, 4350 .test_ib = gfx_v9_0_ring_test_ib,
4361 .insert_nop = amdgpu_ring_insert_nop, 4351 .insert_nop = amdgpu_ring_insert_nop,
@@ -4376,7 +4366,7 @@ static const struct amdgpu_ring_funcs gfx_v9_0_ring_funcs_kiq = {
4376 .emit_frame_size = 4366 .emit_frame_size =
4377 20 + /* gfx_v9_0_ring_emit_gds_switch */ 4367 20 + /* gfx_v9_0_ring_emit_gds_switch */
4378 7 + /* gfx_v9_0_ring_emit_hdp_flush */ 4368 7 + /* gfx_v9_0_ring_emit_hdp_flush */
4379 5 + /* gfx_v9_0_ring_emit_hdp_invalidate */ 4369 5 + /* hdp invalidate */
4380 7 + /* gfx_v9_0_ring_emit_pipeline_sync */ 4370 7 + /* gfx_v9_0_ring_emit_pipeline_sync */
4381 SOC15_FLUSH_GPU_TLB_NUM_WREG * 5 + 9 + /* gfx_v9_0_ring_emit_vm_flush */ 4371 SOC15_FLUSH_GPU_TLB_NUM_WREG * 5 + 9 + /* gfx_v9_0_ring_emit_vm_flush */
4382 8 + 8 + 8, /* gfx_v9_0_ring_emit_fence_kiq x3 for user fence, vm fence */ 4372 8 + 8 + 8, /* gfx_v9_0_ring_emit_fence_kiq x3 for user fence, vm fence */
diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c b/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c
index 0aa336371816..6a7a82a8c65d 100644
--- a/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c
+++ b/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c
@@ -289,13 +289,6 @@ static void sdma_v2_4_ring_emit_hdp_flush(struct amdgpu_ring *ring)
289 SDMA_PKT_POLL_REGMEM_DW5_INTERVAL(10)); /* retry count, poll interval */ 289 SDMA_PKT_POLL_REGMEM_DW5_INTERVAL(10)); /* retry count, poll interval */
290} 290}
291 291
292static void sdma_v2_4_ring_emit_hdp_invalidate(struct amdgpu_ring *ring)
293{
294 amdgpu_ring_write(ring, SDMA_PKT_HEADER_OP(SDMA_OP_SRBM_WRITE) |
295 SDMA_PKT_SRBM_WRITE_HEADER_BYTE_EN(0xf));
296 amdgpu_ring_write(ring, mmHDP_DEBUG0);
297 amdgpu_ring_write(ring, 1);
298}
299/** 292/**
300 * sdma_v2_4_ring_emit_fence - emit a fence on the DMA ring 293 * sdma_v2_4_ring_emit_fence - emit a fence on the DMA ring
301 * 294 *
@@ -1200,7 +1193,7 @@ static const struct amdgpu_ring_funcs sdma_v2_4_ring_funcs = {
1200 .set_wptr = sdma_v2_4_ring_set_wptr, 1193 .set_wptr = sdma_v2_4_ring_set_wptr,
1201 .emit_frame_size = 1194 .emit_frame_size =
1202 6 + /* sdma_v2_4_ring_emit_hdp_flush */ 1195 6 + /* sdma_v2_4_ring_emit_hdp_flush */
1203 3 + /* sdma_v2_4_ring_emit_hdp_invalidate */ 1196 3 + /* hdp invalidate */
1204 6 + /* sdma_v2_4_ring_emit_pipeline_sync */ 1197 6 + /* sdma_v2_4_ring_emit_pipeline_sync */
1205 VI_FLUSH_GPU_TLB_NUM_WREG * 3 + 6 + /* sdma_v2_4_ring_emit_vm_flush */ 1198 VI_FLUSH_GPU_TLB_NUM_WREG * 3 + 6 + /* sdma_v2_4_ring_emit_vm_flush */
1206 10 + 10 + 10, /* sdma_v2_4_ring_emit_fence x3 for user fence, vm fence */ 1199 10 + 10 + 10, /* sdma_v2_4_ring_emit_fence x3 for user fence, vm fence */
@@ -1210,7 +1203,6 @@ static const struct amdgpu_ring_funcs sdma_v2_4_ring_funcs = {
1210 .emit_pipeline_sync = sdma_v2_4_ring_emit_pipeline_sync, 1203 .emit_pipeline_sync = sdma_v2_4_ring_emit_pipeline_sync,
1211 .emit_vm_flush = sdma_v2_4_ring_emit_vm_flush, 1204 .emit_vm_flush = sdma_v2_4_ring_emit_vm_flush,
1212 .emit_hdp_flush = sdma_v2_4_ring_emit_hdp_flush, 1205 .emit_hdp_flush = sdma_v2_4_ring_emit_hdp_flush,
1213 .emit_hdp_invalidate = sdma_v2_4_ring_emit_hdp_invalidate,
1214 .test_ring = sdma_v2_4_ring_test_ring, 1206 .test_ring = sdma_v2_4_ring_test_ring,
1215 .test_ib = sdma_v2_4_ring_test_ib, 1207 .test_ib = sdma_v2_4_ring_test_ib,
1216 .insert_nop = sdma_v2_4_ring_insert_nop, 1208 .insert_nop = sdma_v2_4_ring_insert_nop,
diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
index e417546e2048..88178d81bd5a 100644
--- a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
@@ -460,14 +460,6 @@ static void sdma_v3_0_ring_emit_hdp_flush(struct amdgpu_ring *ring)
460 SDMA_PKT_POLL_REGMEM_DW5_INTERVAL(10)); /* retry count, poll interval */ 460 SDMA_PKT_POLL_REGMEM_DW5_INTERVAL(10)); /* retry count, poll interval */
461} 461}
462 462
463static void sdma_v3_0_ring_emit_hdp_invalidate(struct amdgpu_ring *ring)
464{
465 amdgpu_ring_write(ring, SDMA_PKT_HEADER_OP(SDMA_OP_SRBM_WRITE) |
466 SDMA_PKT_SRBM_WRITE_HEADER_BYTE_EN(0xf));
467 amdgpu_ring_write(ring, mmHDP_DEBUG0);
468 amdgpu_ring_write(ring, 1);
469}
470
471/** 463/**
472 * sdma_v3_0_ring_emit_fence - emit a fence on the DMA ring 464 * sdma_v3_0_ring_emit_fence - emit a fence on the DMA ring
473 * 465 *
@@ -1634,7 +1626,7 @@ static const struct amdgpu_ring_funcs sdma_v3_0_ring_funcs = {
1634 .set_wptr = sdma_v3_0_ring_set_wptr, 1626 .set_wptr = sdma_v3_0_ring_set_wptr,
1635 .emit_frame_size = 1627 .emit_frame_size =
1636 6 + /* sdma_v3_0_ring_emit_hdp_flush */ 1628 6 + /* sdma_v3_0_ring_emit_hdp_flush */
1637 3 + /* sdma_v3_0_ring_emit_hdp_invalidate */ 1629 3 + /* hdp invalidate */
1638 6 + /* sdma_v3_0_ring_emit_pipeline_sync */ 1630 6 + /* sdma_v3_0_ring_emit_pipeline_sync */
1639 12 + /* sdma_v3_0_ring_emit_vm_flush */ 1631 12 + /* sdma_v3_0_ring_emit_vm_flush */
1640 10 + 10 + 10, /* sdma_v3_0_ring_emit_fence x3 for user fence, vm fence */ 1632 10 + 10 + 10, /* sdma_v3_0_ring_emit_fence x3 for user fence, vm fence */
@@ -1644,7 +1636,6 @@ static const struct amdgpu_ring_funcs sdma_v3_0_ring_funcs = {
1644 .emit_pipeline_sync = sdma_v3_0_ring_emit_pipeline_sync, 1636 .emit_pipeline_sync = sdma_v3_0_ring_emit_pipeline_sync,
1645 .emit_vm_flush = sdma_v3_0_ring_emit_vm_flush, 1637 .emit_vm_flush = sdma_v3_0_ring_emit_vm_flush,
1646 .emit_hdp_flush = sdma_v3_0_ring_emit_hdp_flush, 1638 .emit_hdp_flush = sdma_v3_0_ring_emit_hdp_flush,
1647 .emit_hdp_invalidate = sdma_v3_0_ring_emit_hdp_invalidate,
1648 .test_ring = sdma_v3_0_ring_test_ring, 1639 .test_ring = sdma_v3_0_ring_test_ring,
1649 .test_ib = sdma_v3_0_ring_test_ib, 1640 .test_ib = sdma_v3_0_ring_test_ib,
1650 .insert_nop = sdma_v3_0_ring_insert_nop, 1641 .insert_nop = sdma_v3_0_ring_insert_nop,
diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
index ee919477d7ed..e9b1b834fee1 100644
--- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
@@ -375,16 +375,6 @@ static void sdma_v4_0_ring_emit_hdp_flush(struct amdgpu_ring *ring)
375 SDMA_PKT_POLL_REGMEM_DW5_INTERVAL(10)); /* retry count, poll interval */ 375 SDMA_PKT_POLL_REGMEM_DW5_INTERVAL(10)); /* retry count, poll interval */
376} 376}
377 377
378static void sdma_v4_0_ring_emit_hdp_invalidate(struct amdgpu_ring *ring)
379{
380 struct amdgpu_device *adev = ring->adev;
381
382 amdgpu_ring_write(ring, SDMA_PKT_HEADER_OP(SDMA_OP_SRBM_WRITE) |
383 SDMA_PKT_SRBM_WRITE_HEADER_BYTE_EN(0xf));
384 amdgpu_ring_write(ring, SOC15_REG_OFFSET(HDP, 0, mmHDP_READ_CACHE_INVALIDATE));
385 amdgpu_ring_write(ring, 1);
386}
387
388/** 378/**
389 * sdma_v4_0_ring_emit_fence - emit a fence on the DMA ring 379 * sdma_v4_0_ring_emit_fence - emit a fence on the DMA ring
390 * 380 *
@@ -1583,7 +1573,7 @@ static const struct amdgpu_ring_funcs sdma_v4_0_ring_funcs = {
1583 .set_wptr = sdma_v4_0_ring_set_wptr, 1573 .set_wptr = sdma_v4_0_ring_set_wptr,
1584 .emit_frame_size = 1574 .emit_frame_size =
1585 6 + /* sdma_v4_0_ring_emit_hdp_flush */ 1575 6 + /* sdma_v4_0_ring_emit_hdp_flush */
1586 3 + /* sdma_v4_0_ring_emit_hdp_invalidate */ 1576 3 + /* hdp invalidate */
1587 6 + /* sdma_v4_0_ring_emit_pipeline_sync */ 1577 6 + /* sdma_v4_0_ring_emit_pipeline_sync */
1588 SOC15_FLUSH_GPU_TLB_NUM_WREG * 3 + 6 + /* sdma_v4_0_ring_emit_vm_flush */ 1578 SOC15_FLUSH_GPU_TLB_NUM_WREG * 3 + 6 + /* sdma_v4_0_ring_emit_vm_flush */
1589 10 + 10 + 10, /* sdma_v4_0_ring_emit_fence x3 for user fence, vm fence */ 1579 10 + 10 + 10, /* sdma_v4_0_ring_emit_fence x3 for user fence, vm fence */
@@ -1593,7 +1583,6 @@ static const struct amdgpu_ring_funcs sdma_v4_0_ring_funcs = {
1593 .emit_pipeline_sync = sdma_v4_0_ring_emit_pipeline_sync, 1583 .emit_pipeline_sync = sdma_v4_0_ring_emit_pipeline_sync,
1594 .emit_vm_flush = sdma_v4_0_ring_emit_vm_flush, 1584 .emit_vm_flush = sdma_v4_0_ring_emit_vm_flush,
1595 .emit_hdp_flush = sdma_v4_0_ring_emit_hdp_flush, 1585 .emit_hdp_flush = sdma_v4_0_ring_emit_hdp_flush,
1596 .emit_hdp_invalidate = sdma_v4_0_ring_emit_hdp_invalidate,
1597 .test_ring = sdma_v4_0_ring_test_ring, 1586 .test_ring = sdma_v4_0_ring_test_ring,
1598 .test_ib = sdma_v4_0_ring_test_ib, 1587 .test_ib = sdma_v4_0_ring_test_ib,
1599 .insert_nop = sdma_v4_0_ring_insert_nop, 1588 .insert_nop = sdma_v4_0_ring_insert_nop,
diff --git a/drivers/gpu/drm/amd/amdgpu/si_dma.c b/drivers/gpu/drm/amd/amdgpu/si_dma.c
index 8f9509f6f15b..e59521bacf0b 100644
--- a/drivers/gpu/drm/amd/amdgpu/si_dma.c
+++ b/drivers/gpu/drm/amd/amdgpu/si_dma.c
@@ -75,20 +75,6 @@ static void si_dma_ring_emit_ib(struct amdgpu_ring *ring,
75 75
76} 76}
77 77
78static void si_dma_ring_emit_hdp_flush(struct amdgpu_ring *ring)
79{
80 amdgpu_ring_write(ring, DMA_PACKET(DMA_PACKET_SRBM_WRITE, 0, 0, 0, 0));
81 amdgpu_ring_write(ring, (0xf << 16) | (HDP_MEM_COHERENCY_FLUSH_CNTL));
82 amdgpu_ring_write(ring, 1);
83}
84
85static void si_dma_ring_emit_hdp_invalidate(struct amdgpu_ring *ring)
86{
87 amdgpu_ring_write(ring, DMA_PACKET(DMA_PACKET_SRBM_WRITE, 0, 0, 0, 0));
88 amdgpu_ring_write(ring, (0xf << 16) | (HDP_DEBUG0));
89 amdgpu_ring_write(ring, 1);
90}
91
92/** 78/**
93 * si_dma_ring_emit_fence - emit a fence on the DMA ring 79 * si_dma_ring_emit_fence - emit a fence on the DMA ring
94 * 80 *
@@ -772,8 +758,7 @@ static const struct amdgpu_ring_funcs si_dma_ring_funcs = {
772 .get_wptr = si_dma_ring_get_wptr, 758 .get_wptr = si_dma_ring_get_wptr,
773 .set_wptr = si_dma_ring_set_wptr, 759 .set_wptr = si_dma_ring_set_wptr,
774 .emit_frame_size = 760 .emit_frame_size =
775 3 + /* si_dma_ring_emit_hdp_flush */ 761 3 + 3 + /* hdp flush / invalidate */
776 3 + /* si_dma_ring_emit_hdp_invalidate */
777 6 + /* si_dma_ring_emit_pipeline_sync */ 762 6 + /* si_dma_ring_emit_pipeline_sync */
778 SI_FLUSH_GPU_TLB_NUM_WREG * 3 + 6 + /* si_dma_ring_emit_vm_flush */ 763 SI_FLUSH_GPU_TLB_NUM_WREG * 3 + 6 + /* si_dma_ring_emit_vm_flush */
779 9 + 9 + 9, /* si_dma_ring_emit_fence x3 for user fence, vm fence */ 764 9 + 9 + 9, /* si_dma_ring_emit_fence x3 for user fence, vm fence */
@@ -782,8 +767,6 @@ static const struct amdgpu_ring_funcs si_dma_ring_funcs = {
782 .emit_fence = si_dma_ring_emit_fence, 767 .emit_fence = si_dma_ring_emit_fence,
783 .emit_pipeline_sync = si_dma_ring_emit_pipeline_sync, 768 .emit_pipeline_sync = si_dma_ring_emit_pipeline_sync,
784 .emit_vm_flush = si_dma_ring_emit_vm_flush, 769 .emit_vm_flush = si_dma_ring_emit_vm_flush,
785 .emit_hdp_flush = si_dma_ring_emit_hdp_flush,
786 .emit_hdp_invalidate = si_dma_ring_emit_hdp_invalidate,
787 .test_ring = si_dma_ring_test_ring, 770 .test_ring = si_dma_ring_test_ring,
788 .test_ib = si_dma_ring_test_ib, 771 .test_ib = si_dma_ring_test_ib,
789 .insert_nop = amdgpu_ring_insert_nop, 772 .insert_nop = amdgpu_ring_insert_nop,
diff --git a/drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c b/drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c
index 8ab10c220910..948bb9437757 100644
--- a/drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c
+++ b/drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c
@@ -464,32 +464,6 @@ static void uvd_v4_2_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, u64 seq
464} 464}
465 465
466/** 466/**
467 * uvd_v4_2_ring_emit_hdp_flush - emit an hdp flush
468 *
469 * @ring: amdgpu_ring pointer
470 *
471 * Emits an hdp flush.
472 */
473static void uvd_v4_2_ring_emit_hdp_flush(struct amdgpu_ring *ring)
474{
475 amdgpu_ring_write(ring, PACKET0(mmHDP_MEM_COHERENCY_FLUSH_CNTL, 0));
476 amdgpu_ring_write(ring, 0);
477}
478
479/**
480 * uvd_v4_2_ring_hdp_invalidate - emit an hdp invalidate
481 *
482 * @ring: amdgpu_ring pointer
483 *
484 * Emits an hdp invalidate.
485 */
486static void uvd_v4_2_ring_emit_hdp_invalidate(struct amdgpu_ring *ring)
487{
488 amdgpu_ring_write(ring, PACKET0(mmHDP_DEBUG0, 0));
489 amdgpu_ring_write(ring, 1);
490}
491
492/**
493 * uvd_v4_2_ring_test_ring - register write test 467 * uvd_v4_2_ring_test_ring - register write test
494 * 468 *
495 * @ring: amdgpu_ring pointer 469 * @ring: amdgpu_ring pointer
@@ -765,14 +739,10 @@ static const struct amdgpu_ring_funcs uvd_v4_2_ring_funcs = {
765 .set_wptr = uvd_v4_2_ring_set_wptr, 739 .set_wptr = uvd_v4_2_ring_set_wptr,
766 .parse_cs = amdgpu_uvd_ring_parse_cs, 740 .parse_cs = amdgpu_uvd_ring_parse_cs,
767 .emit_frame_size = 741 .emit_frame_size =
768 2 + /* uvd_v4_2_ring_emit_hdp_flush */
769 2 + /* uvd_v4_2_ring_emit_hdp_invalidate */
770 14, /* uvd_v4_2_ring_emit_fence x1 no user fence */ 742 14, /* uvd_v4_2_ring_emit_fence x1 no user fence */
771 .emit_ib_size = 4, /* uvd_v4_2_ring_emit_ib */ 743 .emit_ib_size = 4, /* uvd_v4_2_ring_emit_ib */
772 .emit_ib = uvd_v4_2_ring_emit_ib, 744 .emit_ib = uvd_v4_2_ring_emit_ib,
773 .emit_fence = uvd_v4_2_ring_emit_fence, 745 .emit_fence = uvd_v4_2_ring_emit_fence,
774 .emit_hdp_flush = uvd_v4_2_ring_emit_hdp_flush,
775 .emit_hdp_invalidate = uvd_v4_2_ring_emit_hdp_invalidate,
776 .test_ring = uvd_v4_2_ring_test_ring, 746 .test_ring = uvd_v4_2_ring_test_ring,
777 .test_ib = amdgpu_uvd_ring_test_ib, 747 .test_ib = amdgpu_uvd_ring_test_ib,
778 .insert_nop = amdgpu_ring_insert_nop, 748 .insert_nop = amdgpu_ring_insert_nop,
diff --git a/drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c b/drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c
index c1fe30cdba32..6445d55e7d5a 100644
--- a/drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c
@@ -479,32 +479,6 @@ static void uvd_v5_0_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, u64 seq
479} 479}
480 480
481/** 481/**
482 * uvd_v5_0_ring_emit_hdp_flush - emit an hdp flush
483 *
484 * @ring: amdgpu_ring pointer
485 *
486 * Emits an hdp flush.
487 */
488static void uvd_v5_0_ring_emit_hdp_flush(struct amdgpu_ring *ring)
489{
490 amdgpu_ring_write(ring, PACKET0(mmHDP_MEM_COHERENCY_FLUSH_CNTL, 0));
491 amdgpu_ring_write(ring, 0);
492}
493
494/**
495 * uvd_v5_0_ring_hdp_invalidate - emit an hdp invalidate
496 *
497 * @ring: amdgpu_ring pointer
498 *
499 * Emits an hdp invalidate.
500 */
501static void uvd_v5_0_ring_emit_hdp_invalidate(struct amdgpu_ring *ring)
502{
503 amdgpu_ring_write(ring, PACKET0(mmHDP_DEBUG0, 0));
504 amdgpu_ring_write(ring, 1);
505}
506
507/**
508 * uvd_v5_0_ring_test_ring - register write test 482 * uvd_v5_0_ring_test_ring - register write test
509 * 483 *
510 * @ring: amdgpu_ring pointer 484 * @ring: amdgpu_ring pointer
@@ -873,14 +847,10 @@ static const struct amdgpu_ring_funcs uvd_v5_0_ring_funcs = {
873 .set_wptr = uvd_v5_0_ring_set_wptr, 847 .set_wptr = uvd_v5_0_ring_set_wptr,
874 .parse_cs = amdgpu_uvd_ring_parse_cs, 848 .parse_cs = amdgpu_uvd_ring_parse_cs,
875 .emit_frame_size = 849 .emit_frame_size =
876 2 + /* uvd_v5_0_ring_emit_hdp_flush */
877 2 + /* uvd_v5_0_ring_emit_hdp_invalidate */
878 14, /* uvd_v5_0_ring_emit_fence x1 no user fence */ 850 14, /* uvd_v5_0_ring_emit_fence x1 no user fence */
879 .emit_ib_size = 6, /* uvd_v5_0_ring_emit_ib */ 851 .emit_ib_size = 6, /* uvd_v5_0_ring_emit_ib */
880 .emit_ib = uvd_v5_0_ring_emit_ib, 852 .emit_ib = uvd_v5_0_ring_emit_ib,
881 .emit_fence = uvd_v5_0_ring_emit_fence, 853 .emit_fence = uvd_v5_0_ring_emit_fence,
882 .emit_hdp_flush = uvd_v5_0_ring_emit_hdp_flush,
883 .emit_hdp_invalidate = uvd_v5_0_ring_emit_hdp_invalidate,
884 .test_ring = uvd_v5_0_ring_test_ring, 854 .test_ring = uvd_v5_0_ring_test_ring,
885 .test_ib = amdgpu_uvd_ring_test_ib, 855 .test_ib = amdgpu_uvd_ring_test_ib,
886 .insert_nop = amdgpu_ring_insert_nop, 856 .insert_nop = amdgpu_ring_insert_nop,
diff --git a/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c b/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c
index 5f499e663e2a..e7546d5b301c 100644
--- a/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c
@@ -964,32 +964,6 @@ static void uvd_v6_0_enc_ring_emit_fence(struct amdgpu_ring *ring, u64 addr,
964} 964}
965 965
966/** 966/**
967 * uvd_v6_0_ring_emit_hdp_flush - emit an hdp flush
968 *
969 * @ring: amdgpu_ring pointer
970 *
971 * Emits an hdp flush.
972 */
973static void uvd_v6_0_ring_emit_hdp_flush(struct amdgpu_ring *ring)
974{
975 amdgpu_ring_write(ring, PACKET0(mmHDP_MEM_COHERENCY_FLUSH_CNTL, 0));
976 amdgpu_ring_write(ring, 0);
977}
978
979/**
980 * uvd_v6_0_ring_hdp_invalidate - emit an hdp invalidate
981 *
982 * @ring: amdgpu_ring pointer
983 *
984 * Emits an hdp invalidate.
985 */
986static void uvd_v6_0_ring_emit_hdp_invalidate(struct amdgpu_ring *ring)
987{
988 amdgpu_ring_write(ring, PACKET0(mmHDP_DEBUG0, 0));
989 amdgpu_ring_write(ring, 1);
990}
991
992/**
993 * uvd_v6_0_ring_test_ring - register write test 967 * uvd_v6_0_ring_test_ring - register write test
994 * 968 *
995 * @ring: amdgpu_ring pointer 969 * @ring: amdgpu_ring pointer
@@ -1556,15 +1530,11 @@ static const struct amdgpu_ring_funcs uvd_v6_0_ring_phys_funcs = {
1556 .set_wptr = uvd_v6_0_ring_set_wptr, 1530 .set_wptr = uvd_v6_0_ring_set_wptr,
1557 .parse_cs = amdgpu_uvd_ring_parse_cs, 1531 .parse_cs = amdgpu_uvd_ring_parse_cs,
1558 .emit_frame_size = 1532 .emit_frame_size =
1559 2 + /* uvd_v6_0_ring_emit_hdp_flush */
1560 2 + /* uvd_v6_0_ring_emit_hdp_invalidate */
1561 10 + /* uvd_v6_0_ring_emit_pipeline_sync */ 1533 10 + /* uvd_v6_0_ring_emit_pipeline_sync */
1562 14, /* uvd_v6_0_ring_emit_fence x1 no user fence */ 1534 14, /* uvd_v6_0_ring_emit_fence x1 no user fence */
1563 .emit_ib_size = 8, /* uvd_v6_0_ring_emit_ib */ 1535 .emit_ib_size = 8, /* uvd_v6_0_ring_emit_ib */
1564 .emit_ib = uvd_v6_0_ring_emit_ib, 1536 .emit_ib = uvd_v6_0_ring_emit_ib,
1565 .emit_fence = uvd_v6_0_ring_emit_fence, 1537 .emit_fence = uvd_v6_0_ring_emit_fence,
1566 .emit_hdp_flush = uvd_v6_0_ring_emit_hdp_flush,
1567 .emit_hdp_invalidate = uvd_v6_0_ring_emit_hdp_invalidate,
1568 .test_ring = uvd_v6_0_ring_test_ring, 1538 .test_ring = uvd_v6_0_ring_test_ring,
1569 .test_ib = amdgpu_uvd_ring_test_ib, 1539 .test_ib = amdgpu_uvd_ring_test_ib,
1570 .insert_nop = amdgpu_ring_insert_nop, 1540 .insert_nop = amdgpu_ring_insert_nop,
@@ -1582,8 +1552,7 @@ static const struct amdgpu_ring_funcs uvd_v6_0_ring_vm_funcs = {
1582 .get_wptr = uvd_v6_0_ring_get_wptr, 1552 .get_wptr = uvd_v6_0_ring_get_wptr,
1583 .set_wptr = uvd_v6_0_ring_set_wptr, 1553 .set_wptr = uvd_v6_0_ring_set_wptr,
1584 .emit_frame_size = 1554 .emit_frame_size =
1585 2 + /* uvd_v6_0_ring_emit_hdp_flush */ 1555 6 + 6 + /* hdp flush / invalidate */
1586 2 + /* uvd_v6_0_ring_emit_hdp_invalidate */
1587 10 + /* uvd_v6_0_ring_emit_pipeline_sync */ 1556 10 + /* uvd_v6_0_ring_emit_pipeline_sync */
1588 20 + /* uvd_v6_0_ring_emit_vm_flush */ 1557 20 + /* uvd_v6_0_ring_emit_vm_flush */
1589 14 + 14, /* uvd_v6_0_ring_emit_fence x2 vm fence */ 1558 14 + 14, /* uvd_v6_0_ring_emit_fence x2 vm fence */
@@ -1592,8 +1561,6 @@ static const struct amdgpu_ring_funcs uvd_v6_0_ring_vm_funcs = {
1592 .emit_fence = uvd_v6_0_ring_emit_fence, 1561 .emit_fence = uvd_v6_0_ring_emit_fence,
1593 .emit_vm_flush = uvd_v6_0_ring_emit_vm_flush, 1562 .emit_vm_flush = uvd_v6_0_ring_emit_vm_flush,
1594 .emit_pipeline_sync = uvd_v6_0_ring_emit_pipeline_sync, 1563 .emit_pipeline_sync = uvd_v6_0_ring_emit_pipeline_sync,
1595 .emit_hdp_flush = uvd_v6_0_ring_emit_hdp_flush,
1596 .emit_hdp_invalidate = uvd_v6_0_ring_emit_hdp_invalidate,
1597 .test_ring = uvd_v6_0_ring_test_ring, 1564 .test_ring = uvd_v6_0_ring_test_ring,
1598 .test_ib = amdgpu_uvd_ring_test_ib, 1565 .test_ib = amdgpu_uvd_ring_test_ib,
1599 .insert_nop = amdgpu_ring_insert_nop, 1566 .insert_nop = amdgpu_ring_insert_nop,
diff --git a/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c b/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c
index 241e73022cd7..d317c764cc91 100644
--- a/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c
@@ -1136,37 +1136,6 @@ static void uvd_v7_0_enc_ring_emit_fence(struct amdgpu_ring *ring, u64 addr,
1136} 1136}
1137 1137
1138/** 1138/**
1139 * uvd_v7_0_ring_emit_hdp_flush - emit an hdp flush
1140 *
1141 * @ring: amdgpu_ring pointer
1142 *
1143 * Emits an hdp flush.
1144 */
1145static void uvd_v7_0_ring_emit_hdp_flush(struct amdgpu_ring *ring)
1146{
1147 struct amdgpu_device *adev = ring->adev;
1148
1149 amdgpu_ring_write(ring, PACKET0(SOC15_REG_OFFSET(NBIF, 0,
1150 mmHDP_MEM_COHERENCY_FLUSH_CNTL), 0));
1151 amdgpu_ring_write(ring, 0);
1152}
1153
1154/**
1155 * uvd_v7_0_ring_hdp_invalidate - emit an hdp invalidate
1156 *
1157 * @ring: amdgpu_ring pointer
1158 *
1159 * Emits an hdp invalidate.
1160 */
1161static void uvd_v7_0_ring_emit_hdp_invalidate(struct amdgpu_ring *ring)
1162{
1163 struct amdgpu_device *adev = ring->adev;
1164
1165 amdgpu_ring_write(ring, PACKET0(SOC15_REG_OFFSET(HDP, 0, mmHDP_READ_CACHE_INVALIDATE), 0));
1166 amdgpu_ring_write(ring, 1);
1167}
1168
1169/**
1170 * uvd_v7_0_ring_test_ring - register write test 1139 * uvd_v7_0_ring_test_ring - register write test
1171 * 1140 *
1172 * @ring: amdgpu_ring pointer 1141 * @ring: amdgpu_ring pointer
@@ -1693,16 +1662,13 @@ static const struct amdgpu_ring_funcs uvd_v7_0_ring_vm_funcs = {
1693 .get_wptr = uvd_v7_0_ring_get_wptr, 1662 .get_wptr = uvd_v7_0_ring_get_wptr,
1694 .set_wptr = uvd_v7_0_ring_set_wptr, 1663 .set_wptr = uvd_v7_0_ring_set_wptr,
1695 .emit_frame_size = 1664 .emit_frame_size =
1696 2 + /* uvd_v7_0_ring_emit_hdp_flush */ 1665 6 + 6 + /* hdp flush / invalidate */
1697 2 + /* uvd_v7_0_ring_emit_hdp_invalidate */
1698 SOC15_FLUSH_GPU_TLB_NUM_WREG * 6 + 16 + /* uvd_v7_0_ring_emit_vm_flush */ 1666 SOC15_FLUSH_GPU_TLB_NUM_WREG * 6 + 16 + /* uvd_v7_0_ring_emit_vm_flush */
1699 14 + 14, /* uvd_v7_0_ring_emit_fence x2 vm fence */ 1667 14 + 14, /* uvd_v7_0_ring_emit_fence x2 vm fence */
1700 .emit_ib_size = 8, /* uvd_v7_0_ring_emit_ib */ 1668 .emit_ib_size = 8, /* uvd_v7_0_ring_emit_ib */
1701 .emit_ib = uvd_v7_0_ring_emit_ib, 1669 .emit_ib = uvd_v7_0_ring_emit_ib,
1702 .emit_fence = uvd_v7_0_ring_emit_fence, 1670 .emit_fence = uvd_v7_0_ring_emit_fence,
1703 .emit_vm_flush = uvd_v7_0_ring_emit_vm_flush, 1671 .emit_vm_flush = uvd_v7_0_ring_emit_vm_flush,
1704 .emit_hdp_flush = uvd_v7_0_ring_emit_hdp_flush,
1705 .emit_hdp_invalidate = uvd_v7_0_ring_emit_hdp_invalidate,
1706 .test_ring = uvd_v7_0_ring_test_ring, 1672 .test_ring = uvd_v7_0_ring_test_ring,
1707 .test_ib = amdgpu_uvd_ring_test_ib, 1673 .test_ib = amdgpu_uvd_ring_test_ib,
1708 .insert_nop = uvd_v7_0_ring_insert_nop, 1674 .insert_nop = uvd_v7_0_ring_insert_nop,
@@ -1722,6 +1688,7 @@ static const struct amdgpu_ring_funcs uvd_v7_0_enc_ring_vm_funcs = {
1722 .get_wptr = uvd_v7_0_enc_ring_get_wptr, 1688 .get_wptr = uvd_v7_0_enc_ring_get_wptr,
1723 .set_wptr = uvd_v7_0_enc_ring_set_wptr, 1689 .set_wptr = uvd_v7_0_enc_ring_set_wptr,
1724 .emit_frame_size = 1690 .emit_frame_size =
1691 3 + 3 + /* hdp flush / invalidate */
1725 SOC15_FLUSH_GPU_TLB_NUM_WREG * 3 + 8 + /* uvd_v7_0_enc_ring_emit_vm_flush */ 1692 SOC15_FLUSH_GPU_TLB_NUM_WREG * 3 + 8 + /* uvd_v7_0_enc_ring_emit_vm_flush */
1726 5 + 5 + /* uvd_v7_0_enc_ring_emit_fence x2 vm fence */ 1693 5 + 5 + /* uvd_v7_0_enc_ring_emit_fence x2 vm fence */
1727 1, /* uvd_v7_0_enc_ring_insert_end */ 1694 1, /* uvd_v7_0_enc_ring_insert_end */
diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c b/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c
index 76cdef29b9d1..44c041a1fe68 100644
--- a/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c
@@ -810,21 +810,6 @@ static void vcn_v1_0_dec_ring_emit_fence(struct amdgpu_ring *ring, u64 addr, u64
810} 810}
811 811
812/** 812/**
813 * vcn_v1_0_dec_ring_hdp_invalidate - emit an hdp invalidate
814 *
815 * @ring: amdgpu_ring pointer
816 *
817 * Emits an hdp invalidate.
818 */
819static void vcn_v1_0_dec_ring_emit_hdp_invalidate(struct amdgpu_ring *ring)
820{
821 struct amdgpu_device *adev = ring->adev;
822
823 amdgpu_ring_write(ring, PACKET0(SOC15_REG_OFFSET(HDP, 0, mmHDP_READ_CACHE_INVALIDATE), 0));
824 amdgpu_ring_write(ring, 1);
825}
826
827/**
828 * vcn_v1_0_dec_ring_emit_ib - execute indirect buffer 813 * vcn_v1_0_dec_ring_emit_ib - execute indirect buffer
829 * 814 *
830 * @ring: amdgpu_ring pointer 815 * @ring: amdgpu_ring pointer
@@ -1096,7 +1081,7 @@ static const struct amdgpu_ring_funcs vcn_v1_0_dec_ring_vm_funcs = {
1096 .get_wptr = vcn_v1_0_dec_ring_get_wptr, 1081 .get_wptr = vcn_v1_0_dec_ring_get_wptr,
1097 .set_wptr = vcn_v1_0_dec_ring_set_wptr, 1082 .set_wptr = vcn_v1_0_dec_ring_set_wptr,
1098 .emit_frame_size = 1083 .emit_frame_size =
1099 2 + /* vcn_v1_0_dec_ring_emit_hdp_invalidate */ 1084 6 + 6 + /* hdp invalidate / flush */
1100 SOC15_FLUSH_GPU_TLB_NUM_WREG * 6 + 16 + /* vcn_v1_0_dec_ring_emit_vm_flush */ 1085 SOC15_FLUSH_GPU_TLB_NUM_WREG * 6 + 16 + /* vcn_v1_0_dec_ring_emit_vm_flush */
1101 14 + 14 + /* vcn_v1_0_dec_ring_emit_fence x2 vm fence */ 1086 14 + 14 + /* vcn_v1_0_dec_ring_emit_fence x2 vm fence */
1102 6, 1087 6,
@@ -1104,7 +1089,6 @@ static const struct amdgpu_ring_funcs vcn_v1_0_dec_ring_vm_funcs = {
1104 .emit_ib = vcn_v1_0_dec_ring_emit_ib, 1089 .emit_ib = vcn_v1_0_dec_ring_emit_ib,
1105 .emit_fence = vcn_v1_0_dec_ring_emit_fence, 1090 .emit_fence = vcn_v1_0_dec_ring_emit_fence,
1106 .emit_vm_flush = vcn_v1_0_dec_ring_emit_vm_flush, 1091 .emit_vm_flush = vcn_v1_0_dec_ring_emit_vm_flush,
1107 .emit_hdp_invalidate = vcn_v1_0_dec_ring_emit_hdp_invalidate,
1108 .test_ring = amdgpu_vcn_dec_ring_test_ring, 1092 .test_ring = amdgpu_vcn_dec_ring_test_ring,
1109 .test_ib = amdgpu_vcn_dec_ring_test_ib, 1093 .test_ib = amdgpu_vcn_dec_ring_test_ib,
1110 .insert_nop = vcn_v1_0_ring_insert_nop, 1094 .insert_nop = vcn_v1_0_ring_insert_nop,