diff options
| author | Dave Airlie <airlied@redhat.com> | 2026-01-15 14:49:33 +1000 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2026-01-15 14:49:33 +1000 |
| commit | 83dc0ba2755296b5e5882e044c80973b7c3fce9e (patch) | |
| tree | 53774323449c41eb1b17e101be83197c6b5cbb82 /drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c | |
| parent | a87fef0880c4f52769b5a3c2fc1b2d73aaa04eb3 (diff) | |
| parent | 38a0f4cf8c6147fd10baa206ab349f8ff724e391 (diff) | |
Merge tag 'amd-drm-next-6.20-2026-01-09' of https://gitlab.freedesktop.org/agd5f/linux into drm-next
amd-drm-next-6.20-2026-01-09:
amdgpu:
- GPUVM updates
- Initial support for larger GPU address spaces
- Initial SMUIO 15.x support
- Documentation updates
- Initial PSP 15.x support
- Initial IH 7.1 support
- Initial IH 6.1.1 support
- SMU 13.0.12 updates
- RAS updates
- Initial MMHUB 3.4 support
- Initial MMHUB 4.2 support
- Initial GC 12.1 support
- Initial GC 11.5.4 support
- HDMI fixes
- Panel replay improvements
- DML updates
- DC FP fixes
- Initial SDMA 6.1.4 support
- Initial SDMA 7.1 support
- Userq updates
- DC HPD refactor
- SwSMU cleanups and refactoring
- TTM memory ops parallelization
- DCN 3.5 fixes
- DP audio fixes
- Clang fixes
- Misc spelling fixes and cleanups
- Initial SDMA 7.11.4 support
- Convert legacy DRM logging helpers to new drm logging helpers
- Initial JPEG 5.3 support
- Add support for changing UMA size via the driver
- DC analog fixes
- GC 9 gfx queue reset support
- Initial SMU 15.x support
amdkfd:
- Reserved SDMA rework
- Refactor SPM
- Initial GC 12.1 support
- Initial GC 11.5.4 support
- Initial SDMA 7.1 support
- Initial SDMA 6.1.4 support
- Increase the kfd process hash table
- Per context support
- Topology fixes
radeon:
- Convert legacy DRM logging helpers to new drm logging helpers
- Use devm for i2c adapters
- Variable sized array fix
- Misc cleanups
UAPI:
- KFD context support. Proposed userspace:
https://github.com/ROCm/rocm-systems/pull/1705
https://github.com/ROCm/rocm-systems/pull/1701
- Add userq metadata queries for more queue types. Proposed userspace:
https://gitlab.freedesktop.org/yogeshmohan/mesa/-/commits/userq_query
From: Alex Deucher <alexander.deucher@amd.com>
Link: https://patch.msgid.link/20260109154713.3242957-1-alexander.deucher@amd.com
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c | 63 |
1 files changed, 2 insertions, 61 deletions
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c index fb3129883a4c..961a4b84e974 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c @@ -57,19 +57,7 @@ static bool kq_initialize(struct kernel_queue *kq, struct kfd_node *dev, kq->dev = dev; kq->nop_packet = nop.u32all; - switch (type) { - case KFD_QUEUE_TYPE_DIQ: - kq->mqd_mgr = dev->dqm->mqd_mgrs[KFD_MQD_TYPE_DIQ]; - break; - case KFD_QUEUE_TYPE_HIQ: - kq->mqd_mgr = dev->dqm->mqd_mgrs[KFD_MQD_TYPE_HIQ]; - break; - default: - WARN(1, "Invalid queue type %d\n", type); - dev_err(dev->adev->dev, "Invalid queue type %d\n", type); - return false; - } - + kq->mqd_mgr = dev->dqm->mqd_mgrs[KFD_MQD_TYPE_HIQ]; if (!kq->mqd_mgr) return false; @@ -141,7 +129,6 @@ static bool kq_initialize(struct kernel_queue *kq, struct kfd_node *dev, goto err_init_queue; kq->queue->device = dev; - kq->queue->process = kfd_get_process(current); kq->queue->mqd_mem_obj = kq->mqd_mgr->allocate_mqd(kq->mqd_mgr->dev, &kq->queue->properties); @@ -159,24 +146,11 @@ static bool kq_initialize(struct kernel_queue *kq, struct kfd_node *dev, kq->mqd_mgr->load_mqd(kq->mqd_mgr, kq->queue->mqd, kq->queue->pipe, kq->queue->queue, &kq->queue->properties, NULL); - } else { - /* allocate fence for DIQ */ - - retval = kfd_gtt_sa_allocate(dev, sizeof(uint32_t), - &kq->fence_mem_obj); - - if (retval != 0) - goto err_alloc_fence; - - kq->fence_kernel_address = kq->fence_mem_obj->cpu_ptr; - kq->fence_gpu_addr = kq->fence_mem_obj->gpu_addr; } print_queue(kq->queue); return true; -err_alloc_fence: - kq->mqd_mgr->free_mqd(kq->mqd_mgr, kq->queue->mqd, kq->queue->mqd_mem_obj); err_allocate_mqd: uninit_queue(kq->queue); err_init_queue: @@ -206,8 +180,6 @@ static void kq_uninitialize(struct kernel_queue *kq) kq->queue->queue); up_read(&kq->dev->adev->reset_domain->sem); } - else if (kq->queue->properties.type == KFD_QUEUE_TYPE_DIQ) - kfd_gtt_sa_free(kq->dev, kq->fence_mem_obj); kq->mqd_mgr->free_mqd(kq->mqd_mgr, kq->queue->mqd, kq->queue->mqd_mem_obj); @@ -256,7 +228,7 @@ int kq_acquire_packet_buffer(struct kernel_queue *kq, if (packet_size_in_dwords > available_size) { /* * make sure calling functions know - * acquire_packet_buffer() failed + * kq_acquire_packet_buffer() failed */ goto err_no_space; } @@ -355,34 +327,3 @@ void kernel_queue_uninit(struct kernel_queue *kq) kq_uninitialize(kq); kfree(kq); } - -/* FIXME: Can this test be removed? */ -static __attribute__((unused)) void test_kq(struct kfd_node *dev) -{ - struct kernel_queue *kq; - uint32_t *buffer, i; - int retval; - - dev_err(dev->adev->dev, "Starting kernel queue test\n"); - - kq = kernel_queue_init(dev, KFD_QUEUE_TYPE_HIQ); - if (unlikely(!kq)) { - dev_err(dev->adev->dev, " Failed to initialize HIQ\n"); - dev_err(dev->adev->dev, "Kernel queue test failed\n"); - return; - } - - retval = kq_acquire_packet_buffer(kq, 5, &buffer); - if (unlikely(retval != 0)) { - dev_err(dev->adev->dev, " Failed to acquire packet buffer\n"); - dev_err(dev->adev->dev, "Kernel queue test failed\n"); - return; - } - for (i = 0; i < 5; i++) - buffer[i] = kq->nop_packet; - kq_submit_packet(kq); - - dev_err(dev->adev->dev, "Ending kernel queue test\n"); -} - - |
