summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c
diff options
context:
space:
mode:
authorshaoyunl <Shaoyun.Liu@amd.com>2017-09-27 00:09:56 -0400
committerOded Gabbay <oded.gabbay@gmail.com>2017-09-27 00:09:56 -0400
commite139cd2a2ff842bd4a5d089b9d251ca62f58ecac (patch)
treeed0d1cd3f936217993e400db36b05fb37f8ee61d /drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c
parent36c2d7eb5e99a4d765b1ec241823d563c71b1125 (diff)
downloadlinux-stable-e139cd2a2ff842bd4a5d089b9d251ca62f58ecac.tar.gz
linux-stable-e139cd2a2ff842bd4a5d089b9d251ca62f58ecac.tar.bz2
linux-stable-e139cd2a2ff842bd4a5d089b9d251ca62f58ecac.zip
drm/amdkfd: Improve multiple SDMA queues support per process
HWS does not support over-subscription and the scheduler can not internally modify the engine. Driver needs to program the correct engine ID. Fix the queue and engine selection to create queues on alternating SDMA engines. This allows concurrent bi-directional DMA transfers in a process that creates two SDMA queues. Signed-off-by: shaoyun liu <shaoyun.liu@amd.com> Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com> Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c')
-rw-r--r--drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c
index 5d1770e577e9..16da8ad02d8b 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager.c
@@ -203,7 +203,7 @@ static int pm_create_map_queue(struct packet_manager *pm, uint32_t *buffer,
queue_type__mes_map_queues__debug_interface_queue_vi;
break;
case KFD_QUEUE_TYPE_SDMA:
- packet->bitfields2.engine_sel =
+ packet->bitfields2.engine_sel = q->properties.sdma_engine_id +
engine_sel__mes_map_queues__sdma0_vi;
use_static = false; /* no static queues under SDMA */
break;