From: Shashank Sharma <contactshashanksharma@xxxxxxxxx> This patch series re-designs the current doorbell handling of the AMDGPU driver and prepares it for Usermode queues. The fundamental changes are: - Introduce and accommodate a new GEM domain for doorbells. - Prepare the AMDGPU ttm backend for handling doorbell memory. - Rename, move and re-arrange some existing structures to differentiate between doorbell handling and VRAM handling. The idea is that a usermode app can directly allocate a page from the doorbell bar and use it's offsets for different usermode queues. Corresponding libdrm changes: https://gitlab.freedesktop.org/mesa/drm/-/merge_requests/286 Alex Deucher (11): drm/amdgpu: add UAPI for allocating doorbell memory drm/amdgpu: rename vram_mgr functions to bar_mgr drm/amdgpu: rename amdgpu_vram_mgr.c/h to amdgpu_bar_mgr.c/h drm/amdgpu: replace aper_base_kaddr with vram_aper_base_kaddr drm/amdgpu: add doorbell support to amdgpu_bar_mgr drm/amdgpu: rename gmc.aper_base/size drm/amdgpu: store doorbell info in gmc structure drm/amdgpu: move doorbell ptr into mman structure drm/amdgpu: accommodate DOMAIN/PL_DOORBELL drm/amdgpu: doorbell support in get_memory functions drm/amdgpu: introduce doorbell bo in kernel Shashank Sharma (2): drm/amdgpu: initialize doorbell memory pool drm/amdgpu: add domain info in bo_create_kernel_at drivers/gpu/drm/amd/amdgpu/Makefile | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 13 +- .../{amdgpu_vram_mgr.c => amdgpu_bar_mgr.c} | 300 +++++++++++------- .../{amdgpu_vram_mgr.h => amdgpu_bar_mgr.h} | 19 +- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 68 ++-- drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c | 9 +- drivers/gpu/drm/amd/amdgpu/amdgpu_doorbell.h | 8 - drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 4 +- drivers/gpu/drm/amd/amdgpu/amdgpu_fdinfo.c | 4 +- drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h | 11 +- drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 4 +- drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 53 +++- drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 5 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 4 +- .../gpu/drm/amd/amdgpu/amdgpu_res_cursor.h | 16 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 71 ++++- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h | 50 +-- drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 3 +- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 15 +- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h | 3 +- drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 2 +- drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 10 +- drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c | 10 +- drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c | 6 +- drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 12 +- drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 10 +- drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 10 +- drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c | 4 +- drivers/gpu/drm/amd/amdgpu/nbio_v4_3.c | 4 +- drivers/gpu/drm/amd/amdgpu/nbio_v6_1.c | 4 +- drivers/gpu/drm/amd/amdgpu/nbio_v7_2.c | 4 +- drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c | 4 +- drivers/gpu/drm/amd/amdgpu/nbio_v7_7.c | 4 +- drivers/gpu/drm/amd/amdgpu/psp_v11_0.c | 10 +- drivers/gpu/drm/amd/amdgpu/psp_v13_0.c | 10 +- drivers/gpu/drm/amd/amdkfd/kfd_migrate.c | 4 +- include/uapi/drm/amdgpu_drm.h | 7 +- 41 files changed, 482 insertions(+), 303 deletions(-) rename drivers/gpu/drm/amd/amdgpu/{amdgpu_vram_mgr.c => amdgpu_bar_mgr.c} (70%) rename drivers/gpu/drm/amd/amdgpu/{amdgpu_vram_mgr.h => amdgpu_bar_mgr.h} (79%) -- 2.34.1