This patch series adds support for GFXv9 GPUs to KFD. In this series it enables support for Vega10. Raven support requires some extra work that will follow shortly, but Raven support is already included and I didn't go out of my way to keep it out. Felix Kuehling (19): drm/amdgpu: Remove unused interface from kfd2kgd interface drm/amd: Update GFXv9 SDMA MQD structure drm/amdgpu: Add GFXv9 TLB invalidation packet definition drm/amdgpu: Add GFXv9 kfd2kgd interface functions drm/amdgpu: Add doorbell routing info to kgd2kfd_shared_resources drm/amdkfd: Make doorbell size ASIC-dependent drm/amdkfd: Implement doorbell allocation for SOC15 drm/amdkfd: Move packet writer functions into ASIC-specific file drm/amdkfd: Add GFXv9 PM4 packet writer functions drm/amdkfd: Add GFXv9 MQD manager drm/amdkfd: Add GFXv9 device queue manager drm/amdkfd: Add SOC15 interrupt processing support drm/amdkfd: Fix goto usage drm/amdkfd: Fix kernel queue rollback_packet drm/amdkfd: Add 64-bit doorbell and wptr support to kernel queue drm/amdkfd: Remove limit on number of GPUs (follow-up) drm/amdkfd: Support flat memory apertures for GFXv9 drm/amdkfd: Add GFXv9 CWSR trap handler drm/amdkfd: Add Vega10 topology and device info Harish Kasiviswanathan (1): drm/amdkfd: Clean up KFD_MMAP_ offset handling welu (1): drm/amdkfd: Try to enable atomics for all GPUs MAINTAINERS | 2 + drivers/gpu/drm/amd/amdgpu/Makefile | 3 +- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 26 + drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 10 - drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 10 - drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c | 1043 ++++++++++++++ drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 1 + drivers/gpu/drm/amd/amdgpu/soc15d.h | 5 + drivers/gpu/drm/amd/amdkfd/Makefile | 10 +- .../gpu/drm/amd/amdkfd/cwsr_trap_handler_gfx9.asm | 1495 ++++++++++++++++++++ drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 42 +- drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 11 + drivers/gpu/drm/amd/amdkfd/kfd_device.c | 89 +- .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 102 +- .../gpu/drm/amd/amdkfd/kfd_device_queue_manager.h | 2 + .../drm/amd/amdkfd/kfd_device_queue_manager_v9.c | 84 ++ drivers/gpu/drm/amd/amdkfd/kfd_doorbell.c | 65 +- drivers/gpu/drm/amd/amdkfd/kfd_events.c | 2 +- drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c | 119 +- drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c | 84 ++ drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c | 39 +- drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.h | 7 +- drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_cik.c | 9 + drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_v9.c | 340 +++++ drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_vi.c | 319 +++++ drivers/gpu/drm/amd/amdkfd/kfd_module.c | 5 + drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c | 3 + drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c | 443 ++++++ drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c | 385 +---- drivers/gpu/drm/amd/amdkfd/kfd_pm4_headers_ai.h | 583 ++++++++ drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 106 +- drivers/gpu/drm/amd/amdkfd/kfd_process.c | 40 +- .../gpu/drm/amd/amdkfd/kfd_process_queue_manager.c | 12 +- drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 6 + drivers/gpu/drm/amd/amdkfd/kfd_topology.h | 1 + drivers/gpu/drm/amd/amdkfd/soc15_int.h | 47 + drivers/gpu/drm/amd/include/kgd_kfd_interface.h | 20 +- drivers/gpu/drm/amd/include/v9_structs.h | 48 +- 39 files changed, 5118 insertions(+), 501 deletions(-) create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c create mode 100644 drivers/gpu/drm/amd/amdkfd/cwsr_trap_handler_gfx9.asm create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_v9.c create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue_v9.c create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c create mode 100644 drivers/gpu/drm/amd/amdkfd/kfd_pm4_headers_ai.h create mode 100644 drivers/gpu/drm/amd/amdkfd/soc15_int.h -- 2.7.4