diff options
Diffstat (limited to 'meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1120-Make-to-stock-kfd-driver.patch')
-rw-r--r-- | meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1120-Make-to-stock-kfd-driver.patch | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1120-Make-to-stock-kfd-driver.patch b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1120-Make-to-stock-kfd-driver.patch deleted file mode 100644 index 66c5efd1..00000000 --- a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1120-Make-to-stock-kfd-driver.patch +++ /dev/null @@ -1,126 +0,0 @@ -From 0725474af32b57860a9f33e6bc4ab1d063a2ff50 Mon Sep 17 00:00:00 2001 -From: Sanjay R Mehta <sanju.mehta@amd.com> -Date: Tue, 20 Feb 2018 14:32:01 +0530 -Subject: [PATCH 1120/4131] Make to stock kfd driver - -Signed-off-by: Sanjay R Mehta <sanju.mehta@amd.com> ---- - drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 2 -- - drivers/gpu/drm/amd/amdkfd/kfd_events.c | 5 +---- - drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c | 22 +++++----------------- - drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 1 - - .../gpu/drm/amd/amdkfd/kfd_process_queue_manager.c | 1 + - 5 files changed, 7 insertions(+), 24 deletions(-) - -diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c -index 8a05efa..abdafb9 100644 ---- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c -+++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c -@@ -893,8 +893,6 @@ static int kfd_ioctl_get_tile_config(struct file *filep, - int err = 0; - - dev = kfd_device_by_id(args->gpu_id); -- if (!dev) -- return -EINVAL; - - dev->kfd2kgd->get_tile_config(dev->kgd, &config); - -diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_events.c b/drivers/gpu/drm/amd/amdkfd/kfd_events.c -index 944abfa..5979158 100644 ---- a/drivers/gpu/drm/amd/amdkfd/kfd_events.c -+++ b/drivers/gpu/drm/amd/amdkfd/kfd_events.c -@@ -292,10 +292,7 @@ static int create_signal_event(struct file *devkfd, - struct kfd_event *ev) - { - if (p->signal_event_count == KFD_SIGNAL_EVENT_LIMIT) { -- if (!p->signal_event_limit_reached) { -- pr_warn("Signal event wasn't created because limit was reached\n"); -- p->signal_event_limit_reached = true; -- } -+ pr_warn("Signal event wasn't created because limit was reached\n"); - return -ENOMEM; - } - -diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c -index ed71ad4..681b639 100644 ---- a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c -+++ b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c -@@ -183,8 +183,8 @@ static void uninitialize(struct kernel_queue *kq) - { - if (kq->queue->properties.type == KFD_QUEUE_TYPE_HIQ) - kq->mqd->destroy_mqd(kq->mqd, -- kq->queue->mqd, -- KFD_PREEMPT_TYPE_WAVEFRONT_RESET, -+ NULL, -+ false, - QUEUE_PREEMPT_DEFAULT_TIMEOUT_MS, - kq->queue->pipe, - kq->queue->queue); -@@ -210,11 +210,6 @@ static int acquire_packet_buffer(struct kernel_queue *kq, - uint32_t wptr, rptr; - unsigned int *queue_address; - -- /* When rptr == wptr, the buffer is empty. -- * When rptr == wptr + 1, the buffer is full. -- * It is always rptr that advances to the position of wptr, rather than -- * the opposite. So we can only use up to queue_size_dwords - 1 dwords. -- */ - rptr = *kq->rptr_kernel; - wptr = *kq->wptr_kernel; - queue_address = (unsigned int *)kq->pq_kernel_addr; -@@ -224,10 +219,11 @@ static int acquire_packet_buffer(struct kernel_queue *kq, - pr_debug("wptr: %d\n", wptr); - pr_debug("queue_address 0x%p\n", queue_address); - -- available_size = (rptr + queue_size_dwords - 1 - wptr) % -+ available_size = (rptr - 1 - wptr + queue_size_dwords) % - queue_size_dwords; - -- if (packet_size_in_dwords > available_size) { -+ if (packet_size_in_dwords >= queue_size_dwords || -+ packet_size_in_dwords >= available_size) { - /* - * make sure calling functions know - * acquire_packet_buffer() failed -@@ -237,14 +233,6 @@ static int acquire_packet_buffer(struct kernel_queue *kq, - } - - if (wptr + packet_size_in_dwords >= queue_size_dwords) { -- /* make sure after rolling back to position 0, there is -- * still enough space. -- */ -- if (packet_size_in_dwords >= rptr) { -- *buffer_ptr = NULL; -- return -ENOMEM; -- } -- /* fill nops, roll back and start at position 0 */ - while (wptr > 0) { - queue_address[wptr] = kq->nop_packet; - wptr = (wptr + 1) % queue_size_dwords; -diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h -index b87e96c..b397ec7 100644 ---- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h -+++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h -@@ -521,7 +521,6 @@ struct kfd_process { - struct list_head signal_event_pages; - u32 next_nonsignal_event_id; - size_t signal_event_count; -- bool signal_event_limit_reached; - }; - - /** -diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c -index f9a1a4d..4142d63 100644 ---- a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c -+++ b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c -@@ -143,6 +143,7 @@ int pqm_create_queue(struct process_queue_manager *pqm, - int num_queues = 0; - struct queue *cur; - -+ memset(&q_properties, 0, sizeof(struct queue_properties)); - memcpy(&q_properties, properties, sizeof(struct queue_properties)); - q = NULL; - kq = NULL; --- -2.7.4 - |