aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0317-drm-amdkfd-Implement-create_map_queues-for-Carrizo.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0317-drm-amdkfd-Implement-create_map_queues-for-Carrizo.patch')
-rw-r--r--common/recipes-kernel/linux/files/0317-drm-amdkfd-Implement-create_map_queues-for-Carrizo.patch131
1 files changed, 0 insertions, 131 deletions
diff --git a/common/recipes-kernel/linux/files/0317-drm-amdkfd-Implement-create_map_queues-for-Carrizo.patch b/common/recipes-kernel/linux/files/0317-drm-amdkfd-Implement-create_map_queues-for-Carrizo.patch
deleted file mode 100644
index 5b5b49f2..00000000
--- a/common/recipes-kernel/linux/files/0317-drm-amdkfd-Implement-create_map_queues-for-Carrizo.patch
+++ /dev/null
@@ -1,131 +0,0 @@
-From d7b8f73ea03923dbf7c61093743b9eb1842fa8d7 Mon Sep 17 00:00:00 2001
-From: Ben Goz <ben.goz@amd.com>
-Date: Tue, 6 Jan 2015 11:35:50 +0200
-Subject: [PATCH 0317/1050] drm/amdkfd: Implement create_map_queues() for
- Carrizo
-
-Signed-off-by: Ben Goz <ben.goz@amd.com>
-Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
----
- drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c | 91 +++++++++++++++++++++++--
- 1 file changed, 87 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c
-index e3230cc..90f3914 100644
---- a/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c
-+++ b/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c
-@@ -182,6 +182,71 @@ static int pm_create_map_process(struct packet_manager *pm, uint32_t *buffer,
- return 0;
- }
-
-+static int pm_create_map_queue_vi(struct packet_manager *pm, uint32_t *buffer,
-+ struct queue *q, bool is_static)
-+{
-+ struct pm4_mes_map_queues *packet;
-+ bool use_static = is_static;
-+
-+ BUG_ON(!pm || !buffer || !q);
-+
-+ pr_debug("kfd: In func %s\n", __func__);
-+
-+ packet = (struct pm4_mes_map_queues *)buffer;
-+ memset(buffer, 0, sizeof(struct pm4_map_queues));
-+
-+ packet->header.u32all = build_pm4_header(IT_MAP_QUEUES,
-+ sizeof(struct pm4_map_queues));
-+ packet->bitfields2.alloc_format =
-+ alloc_format__mes_map_queues__one_per_pipe_vi;
-+ packet->bitfields2.num_queues = 1;
-+ packet->bitfields2.queue_sel =
-+ queue_sel__mes_map_queues__map_to_hws_determined_queue_slots_vi;
-+
-+ packet->bitfields2.engine_sel =
-+ engine_sel__mes_map_queues__compute_vi;
-+ packet->bitfields2.queue_type =
-+ queue_type__mes_map_queues__normal_compute_vi;
-+
-+ switch (q->properties.type) {
-+ case KFD_QUEUE_TYPE_COMPUTE:
-+ if (use_static)
-+ packet->bitfields2.queue_type =
-+ queue_type__mes_map_queues__normal_latency_static_queue_vi;
-+ break;
-+ case KFD_QUEUE_TYPE_DIQ:
-+ packet->bitfields2.queue_type =
-+ queue_type__mes_map_queues__debug_interface_queue_vi;
-+ break;
-+ case KFD_QUEUE_TYPE_SDMA:
-+ packet->bitfields2.engine_sel =
-+ engine_sel__mes_map_queues__sdma0_vi;
-+ use_static = false; /* no static queues under SDMA */
-+ break;
-+ default:
-+ pr_err("kfd: in %s queue type %d\n", __func__,
-+ q->properties.type);
-+ BUG();
-+ break;
-+ }
-+ packet->bitfields3.doorbell_offset =
-+ q->properties.doorbell_off;
-+
-+ packet->mqd_addr_lo =
-+ lower_32_bits(q->gart_mqd_addr);
-+
-+ packet->mqd_addr_hi =
-+ upper_32_bits(q->gart_mqd_addr);
-+
-+ packet->wptr_addr_lo =
-+ lower_32_bits((uint64_t)q->properties.write_ptr);
-+
-+ packet->wptr_addr_hi =
-+ upper_32_bits((uint64_t)q->properties.write_ptr);
-+
-+ return 0;
-+}
-+
- static int pm_create_map_queue(struct packet_manager *pm, uint32_t *buffer,
- struct queue *q, bool is_static)
- {
-@@ -298,8 +363,17 @@ static int pm_create_runlist_ib(struct packet_manager *pm,
- pr_debug("kfd: static_queue, mapping kernel q %d, is debug status %d\n",
- kq->queue->queue, qpd->is_debug);
-
-- retval = pm_create_map_queue(pm, &rl_buffer[rl_wptr],
-- kq->queue, qpd->is_debug);
-+ if (pm->dqm->dev->device_info->asic_family ==
-+ CHIP_CARRIZO)
-+ retval = pm_create_map_queue_vi(pm,
-+ &rl_buffer[rl_wptr],
-+ kq->queue,
-+ qpd->is_debug);
-+ else
-+ retval = pm_create_map_queue(pm,
-+ &rl_buffer[rl_wptr],
-+ kq->queue,
-+ qpd->is_debug);
- if (retval != 0)
- return retval;
-
-@@ -315,8 +389,17 @@ static int pm_create_runlist_ib(struct packet_manager *pm,
- pr_debug("kfd: static_queue, mapping user queue %d, is debug status %d\n",
- q->queue, qpd->is_debug);
-
-- retval = pm_create_map_queue(pm, &rl_buffer[rl_wptr],
-- q, qpd->is_debug);
-+ if (pm->dqm->dev->device_info->asic_family ==
-+ CHIP_CARRIZO)
-+ retval = pm_create_map_queue_vi(pm,
-+ &rl_buffer[rl_wptr],
-+ q,
-+ qpd->is_debug);
-+ else
-+ retval = pm_create_map_queue(pm,
-+ &rl_buffer[rl_wptr],
-+ q,
-+ qpd->is_debug);
-
- if (retval != 0)
- return retval;
---
-1.9.1
-