On Tue, Jul 14, 2026 at 3:19 AM Christian König <[email protected]> wrote: > > 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?
To use as a replacement for doing the invalidation using MES. Alex > > 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); >
