From 59d2f6bcc97144a60aa4123c03131af3c5be3312 Mon Sep 17 00:00:00 2001 From: Yong Zhao Date: Tue, 17 Oct 2017 17:02:14 -0400 Subject: [PATCH 2128/4131] drm/amdkfd: Fix a logical error in calculating SDMA engine id and queue id The denominator should be CIK_SDMA_ENGINE_NUM instead of CIK_SDMA_QUEUES_PER_ENGINE. The error did not cause any issue though, because they were equal. Change-Id: Ib2e22dd187bf68dbf4322e063ed8019030f3a5e9 Signed-off-by: Yong Zhao --- drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 8 ++++---- drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c index e762a59..cd0990e 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c @@ -863,8 +863,8 @@ static int create_sdma_queue_nocpsch(struct device_queue_manager *dqm, if (retval) return retval; - q->properties.sdma_queue_id = q->sdma_id / CIK_SDMA_QUEUES_PER_ENGINE; - q->properties.sdma_engine_id = q->sdma_id % CIK_SDMA_QUEUES_PER_ENGINE; + q->properties.sdma_queue_id = q->sdma_id / CIK_SDMA_ENGINE_NUM; + q->properties.sdma_engine_id = q->sdma_id % CIK_SDMA_ENGINE_NUM; retval = allocate_doorbell(qpd, q); if (retval) @@ -1088,9 +1088,9 @@ static int create_queue_cpsch(struct device_queue_manager *dqm, struct queue *q, if (retval) goto out_unlock; q->properties.sdma_queue_id = - q->sdma_id / CIK_SDMA_QUEUES_PER_ENGINE; + q->sdma_id / CIK_SDMA_ENGINE_NUM; q->properties.sdma_engine_id = - q->sdma_id % CIK_SDMA_QUEUES_PER_ENGINE; + q->sdma_id % CIK_SDMA_ENGINE_NUM; } retval = allocate_doorbell(qpd, q); diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h index 841283a..ac9a24f 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h @@ -34,9 +34,10 @@ #define QUEUE_PREEMPT_DEFAULT_TIMEOUT_MS (2 * KFD_UNMAP_LATENCY_MS + 1000) #define KFD_DQM_FIRST_PIPE (0) -#define CIK_SDMA_QUEUES (4) #define CIK_SDMA_QUEUES_PER_ENGINE (2) #define CIK_SDMA_ENGINE_NUM (2) +#define CIK_SDMA_QUEUES (CIK_SDMA_QUEUES_PER_ENGINE \ + * CIK_SDMA_ENGINE_NUM) struct device_process_node { struct qcm_process_device *qpd; -- 2.7.4