diff options
| -rw-r--r-- | drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 10 |
1 files changed, 9 insertions, 1 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 910ff8ab9c9c..d8135adb2238 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | |||
| @@ -645,6 +645,7 @@ static int create_sdma_queue_nocpsch(struct device_queue_manager *dqm, | |||
| 645 | pr_debug(" sdma queue id: %d\n", q->properties.sdma_queue_id); | 645 | pr_debug(" sdma queue id: %d\n", q->properties.sdma_queue_id); |
| 646 | pr_debug(" sdma engine id: %d\n", q->properties.sdma_engine_id); | 646 | pr_debug(" sdma engine id: %d\n", q->properties.sdma_engine_id); |
| 647 | 647 | ||
| 648 | init_sdma_vm(dqm, q, qpd); | ||
| 648 | retval = mqd->init_mqd(mqd, &q->mqd, &q->mqd_mem_obj, | 649 | retval = mqd->init_mqd(mqd, &q->mqd, &q->mqd_mem_obj, |
| 649 | &q->gart_mqd_addr, &q->properties); | 650 | &q->gart_mqd_addr, &q->properties); |
| 650 | if (retval != 0) { | 651 | if (retval != 0) { |
| @@ -652,7 +653,14 @@ static int create_sdma_queue_nocpsch(struct device_queue_manager *dqm, | |||
| 652 | return retval; | 653 | return retval; |
| 653 | } | 654 | } |
| 654 | 655 | ||
| 655 | init_sdma_vm(dqm, q, qpd); | 656 | retval = mqd->load_mqd(mqd, q->mqd, 0, |
| 657 | 0, NULL); | ||
| 658 | if (retval != 0) { | ||
| 659 | deallocate_sdma_queue(dqm, q->sdma_id); | ||
| 660 | mqd->uninit_mqd(mqd, q->mqd, q->mqd_mem_obj); | ||
| 661 | return retval; | ||
| 662 | } | ||
| 663 | |||
| 656 | return 0; | 664 | return 0; |
| 657 | } | 665 | } |
| 658 | 666 | ||
