aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu.h
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2016-01-31 06:20:55 -0500
committerAlex Deucher <alexander.deucher@amd.com>2016-02-10 14:17:20 -0500
commit9e5d53094c5366a9a14e0694e45e794902cc2c04 (patch)
treeaa539c677510e73aaa8aa55a6e34c8a4d928f7f5 /drivers/gpu/drm/amd/amdgpu/amdgpu.h
parent4c0b242cf27094b666df6604420417e201260af9 (diff)
drm/amdgpu: make pad_ib a ring function v3
The padding depends on the firmware version and we need that for BO moves as well, not only for VM updates. v2: new approach of making pad_ib a ring function v3: fix typo in macro name Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucer@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu.h')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 364b0d1c4566..c23eea308991 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -289,8 +289,6 @@ struct amdgpu_vm_pte_funcs {
289 uint64_t pe, 289 uint64_t pe,
290 uint64_t addr, unsigned count, 290 uint64_t addr, unsigned count,
291 uint32_t incr, uint32_t flags); 291 uint32_t incr, uint32_t flags);
292 /* pad the indirect buffer to the necessary number of dw */
293 void (*pad_ib)(struct amdgpu_ib *ib);
294}; 292};
295 293
296/* provided by the gmc block */ 294/* provided by the gmc block */
@@ -340,6 +338,8 @@ struct amdgpu_ring_funcs {
340 int (*test_ib)(struct amdgpu_ring *ring); 338 int (*test_ib)(struct amdgpu_ring *ring);
341 /* insert NOP packets */ 339 /* insert NOP packets */
342 void (*insert_nop)(struct amdgpu_ring *ring, uint32_t count); 340 void (*insert_nop)(struct amdgpu_ring *ring, uint32_t count);
341 /* pad the indirect buffer to the necessary number of dw */
342 void (*pad_ib)(struct amdgpu_ring *ring, struct amdgpu_ib *ib);
343}; 343};
344 344
345/* 345/*
@@ -1188,6 +1188,7 @@ void amdgpu_ib_pool_fini(struct amdgpu_device *adev);
1188int amdgpu_ib_ring_tests(struct amdgpu_device *adev); 1188int amdgpu_ib_ring_tests(struct amdgpu_device *adev);
1189int amdgpu_ring_alloc(struct amdgpu_ring *ring, unsigned ndw); 1189int amdgpu_ring_alloc(struct amdgpu_ring *ring, unsigned ndw);
1190void amdgpu_ring_insert_nop(struct amdgpu_ring *ring, uint32_t count); 1190void amdgpu_ring_insert_nop(struct amdgpu_ring *ring, uint32_t count);
1191void amdgpu_ring_generic_pad_ib(struct amdgpu_ring *ring, struct amdgpu_ib *ib);
1191void amdgpu_ring_commit(struct amdgpu_ring *ring); 1192void amdgpu_ring_commit(struct amdgpu_ring *ring);
1192void amdgpu_ring_undo(struct amdgpu_ring *ring); 1193void amdgpu_ring_undo(struct amdgpu_ring *ring);
1193unsigned amdgpu_ring_backup(struct amdgpu_ring *ring, 1194unsigned amdgpu_ring_backup(struct amdgpu_ring *ring,
@@ -2224,7 +2225,6 @@ amdgpu_get_sdma_instance(struct amdgpu_ring *ring)
2224#define amdgpu_vm_copy_pte(adev, ib, pe, src, count) ((adev)->vm_manager.vm_pte_funcs->copy_pte((ib), (pe), (src), (count))) 2225#define amdgpu_vm_copy_pte(adev, ib, pe, src, count) ((adev)->vm_manager.vm_pte_funcs->copy_pte((ib), (pe), (src), (count)))
2225#define amdgpu_vm_write_pte(adev, ib, pa, pe, addr, count, incr, flags) ((adev)->vm_manager.vm_pte_funcs->write_pte((ib), (pa), (pe), (addr), (count), (incr), (flags))) 2226#define amdgpu_vm_write_pte(adev, ib, pa, pe, addr, count, incr, flags) ((adev)->vm_manager.vm_pte_funcs->write_pte((ib), (pa), (pe), (addr), (count), (incr), (flags)))
2226#define amdgpu_vm_set_pte_pde(adev, ib, pe, addr, count, incr, flags) ((adev)->vm_manager.vm_pte_funcs->set_pte_pde((ib), (pe), (addr), (count), (incr), (flags))) 2227#define amdgpu_vm_set_pte_pde(adev, ib, pe, addr, count, incr, flags) ((adev)->vm_manager.vm_pte_funcs->set_pte_pde((ib), (pe), (addr), (count), (incr), (flags)))
2227#define amdgpu_vm_pad_ib(adev, ib) ((adev)->vm_manager.vm_pte_funcs->pad_ib((ib)))
2228#define amdgpu_ring_parse_cs(r, p, ib) ((r)->funcs->parse_cs((p), (ib))) 2228#define amdgpu_ring_parse_cs(r, p, ib) ((r)->funcs->parse_cs((p), (ib)))
2229#define amdgpu_ring_test_ring(r) (r)->funcs->test_ring((r)) 2229#define amdgpu_ring_test_ring(r) (r)->funcs->test_ring((r))
2230#define amdgpu_ring_test_ib(r) (r)->funcs->test_ib((r)) 2230#define amdgpu_ring_test_ib(r) (r)->funcs->test_ib((r))
@@ -2236,6 +2236,7 @@ amdgpu_get_sdma_instance(struct amdgpu_ring *ring)
2236#define amdgpu_ring_emit_fence(r, addr, seq, flags) (r)->funcs->emit_fence((r), (addr), (seq), (flags)) 2236#define amdgpu_ring_emit_fence(r, addr, seq, flags) (r)->funcs->emit_fence((r), (addr), (seq), (flags))
2237#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)) 2237#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))
2238#define amdgpu_ring_emit_hdp_flush(r) (r)->funcs->emit_hdp_flush((r)) 2238#define amdgpu_ring_emit_hdp_flush(r) (r)->funcs->emit_hdp_flush((r))
2239#define amdgpu_ring_pad_ib(r, ib) ((r)->funcs->pad_ib((r), (ib)))
2239#define amdgpu_ih_get_wptr(adev) (adev)->irq.ih_funcs->get_wptr((adev)) 2240#define amdgpu_ih_get_wptr(adev) (adev)->irq.ih_funcs->get_wptr((adev))
2240#define amdgpu_ih_decode_iv(adev, iv) (adev)->irq.ih_funcs->decode_iv((adev), (iv)) 2241#define amdgpu_ih_decode_iv(adev, iv) (adev)->irq.ih_funcs->decode_iv((adev), (iv))
2241#define amdgpu_ih_set_rptr(adev) (adev)->irq.ih_funcs->set_rptr((adev)) 2242#define amdgpu_ih_set_rptr(adev) (adev)->irq.ih_funcs->set_rptr((adev))