On 7/13/26 20:27, Alex Deucher wrote: > Use this interface to issue TLB invalidations using > SDMA.
Hui? What should that be good for? Regards, Christian. > > Signed-off-by: Alex Deucher <[email protected]> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.h | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.h > b/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.h > index 4f4e56022c970..4ab92d287675a 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.h > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.h > @@ -155,6 +155,23 @@ struct amdgpu_buffer_funcs { > uint64_t dst_offset, > /* number of byte to fill */ > uint32_t byte_count); > + > + /* number of dw to reserve per operation */ > + unsigned tlb_inv_num_dw; > + > + /* used for buffer clearing */ > + void (*emit_tlb_inv)(struct amdgpu_device *adev, > + struct amdgpu_ib *ib, > + /* vmid to target */ > + unsigned int vmid, > + /* vmhub to target */ > + u32 vmhub, > + /* inv eng to target */ > + u32 eng, > + /* flush type */ > + u32 flush_type, > + /* XCC to target */ > + u32 xcc_inst); > }; > > int amdgpu_sdma_reset_engine(struct amdgpu_device *adev, uint32_t > instance_id, > @@ -162,6 +179,7 @@ int amdgpu_sdma_reset_engine(struct amdgpu_device *adev, > uint32_t instance_id, > > #define amdgpu_emit_copy_buffer(adev, ib, s, d, b, t) > (adev)->mman.buffer_funcs->emit_copy_buffer((ib), (s), (d), (b), (t)) > #define amdgpu_emit_fill_buffer(adev, ib, s, d, b) > (adev)->mman.buffer_funcs->emit_fill_buffer((ib), (s), (d), (b)) > +#define amdgpu_emit_tlb_inv(adev, ib, v, h, e, f, x) > (adev)->mman.buffer_funcs->emit_tlb_inv((adev), (ib), (v), (h), (e), (f), (x)) > > struct amdgpu_sdma_instance * > amdgpu_sdma_get_instance_from_ring(struct amdgpu_ring *ring);
