This series implements LSDMA ring mode, creates LSDMA ring and implement amdgpu ring related functions. Introduce a new module parameter amdgpu_lsdma to enable LSDMA, switch buffer and paging funcs from SDMA to LSDMA. It changes amdgpu driver buffer operations to LSDMA, changes default page table update to LSDMA. Since LSDMA is outside GFX domain, it can work without waking up GFX which saves power in mutiple scenarios. With LSDMA dedicated ring create, it also exposes interfaces for users to utilize LSDMA capabilies. This series is tested on gfx 11.0.4. Yifan Zhang (6): drm/amdgpu: add lsdma hw ip definition drm/amdgpu: add lsdma interrupt src id drm/amdgpu: update lsdma headers drm/amdgpu: add ring mode support for lsdma drm/amdgpu: skip LSDMA for mes self test. drm/amdgpu: Default disable LSDMA until proven stable. drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 22 + drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 10 + drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 15 + drivers/gpu/drm/amd/amdgpu/amdgpu_lsdma.c | 40 + drivers/gpu/drm/amd/amdgpu/amdgpu_lsdma.h | 33 +- drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c | 3 + drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 1 + drivers/gpu/drm/amd/amdgpu/lsdma_v6_0.c | 1293 +++++++++++++++++ drivers/gpu/drm/amd/amdgpu/lsdma_v6_0.h | 3 +- drivers/gpu/drm/amd/include/amd_shared.h | 1 + .../asic_reg/lsdma/lsdma_6_0_0_offset.h | 48 + .../asic_reg/lsdma/lsdma_6_0_0_sh_mask.h | 452 ++++++ .../include/ivsrcid/gfx/irqsrcs_gfx_11_0_0.h | 20 + include/uapi/drm/amdgpu_drm.h | 3 +- 17 files changed, 1940 insertions(+), 7 deletions(-) -- 2.37.3