aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ih.h')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ih.h13
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.h
index f877bb78d10a..d810fd73d574 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.h
@@ -50,15 +50,16 @@ struct amdgpu_ih_ring {
50/* provided by the ih block */ 50/* provided by the ih block */
51struct amdgpu_ih_funcs { 51struct amdgpu_ih_funcs {
52 /* ring read/write ptr handling, called from interrupt context */ 52 /* ring read/write ptr handling, called from interrupt context */
53 u32 (*get_wptr)(struct amdgpu_device *adev); 53 u32 (*get_wptr)(struct amdgpu_device *adev, struct amdgpu_ih_ring *ih);
54 void (*decode_iv)(struct amdgpu_device *adev, 54 void (*decode_iv)(struct amdgpu_device *adev, struct amdgpu_ih_ring *ih,
55 struct amdgpu_iv_entry *entry); 55 struct amdgpu_iv_entry *entry);
56 void (*set_rptr)(struct amdgpu_device *adev); 56 void (*set_rptr)(struct amdgpu_device *adev, struct amdgpu_ih_ring *ih);
57}; 57};
58 58
59#define amdgpu_ih_get_wptr(adev) (adev)->irq.ih_funcs->get_wptr((adev)) 59#define amdgpu_ih_get_wptr(adev, ih) (adev)->irq.ih_funcs->get_wptr((adev), (ih))
60#define amdgpu_ih_decode_iv(adev, iv) (adev)->irq.ih_funcs->decode_iv((adev), (iv)) 60#define amdgpu_ih_decode_iv(adev, iv) \
61#define amdgpu_ih_set_rptr(adev) (adev)->irq.ih_funcs->set_rptr((adev)) 61 (adev)->irq.ih_funcs->decode_iv((adev), (ih), (iv))
62#define amdgpu_ih_set_rptr(adev, ih) (adev)->irq.ih_funcs->set_rptr((adev), (ih))
62 63
63int amdgpu_ih_ring_init(struct amdgpu_device *adev, struct amdgpu_ih_ring *ih, 64int amdgpu_ih_ring_init(struct amdgpu_device *adev, struct amdgpu_ih_ring *ih,
64 unsigned ring_size, bool use_bus_addr); 65 unsigned ring_size, bool use_bus_addr);