diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3392-drm-amd-Update-kgd_kfd-interface-for-resuming-SDMA-q.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3392-drm-amd-Update-kgd_kfd-interface-for-resuming-SDMA-q.patch | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3392-drm-amd-Update-kgd_kfd-interface-for-resuming-SDMA-q.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3392-drm-amd-Update-kgd_kfd-interface-for-resuming-SDMA-q.patch new file mode 100644 index 00000000..f8649147 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/3392-drm-amd-Update-kgd_kfd-interface-for-resuming-SDMA-q.patch @@ -0,0 +1,39 @@ +From 082a1cee4f26da42fda20211729a56c2bebafce9 Mon Sep 17 00:00:00 2001 +From: Felix Kuehling <Felix.Kuehling@amd.com> +Date: Wed, 1 Nov 2017 19:21:58 -0400 +Subject: [PATCH 3392/4131] drm/amd: Update kgd_kfd interface for resuming SDMA + queues + +Add wptr and mm parameters to hqd_sdma_load and pass these parameters +from device_queue_manager through the mqd_manager. + +SDMA doesn't support polling while the engine believes it's idle. The +driver must update the wptr. The new parameters will be used for looking +up the updated value from the specified mm when SDMA queues are resumed +after being disabled. + +Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com> +Reviewed-by: Oded Gabbay <oded.gabbay@gmail.com> +Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com> +--- + drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c +index 4728fad..ea02bfa 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_cik.c +@@ -160,7 +160,9 @@ static int load_mqd_sdma(struct mqd_manager *mm, void *mqd, + uint32_t pipe_id, uint32_t queue_id, + struct queue_properties *p, struct mm_struct *mms) + { +- return mm->dev->kfd2kgd->hqd_sdma_load(mm->dev->kgd, mqd); ++ return mm->dev->kfd2kgd->hqd_sdma_load(mm->dev->kgd, mqd, ++ (uint32_t __user *)p->write_ptr, ++ mms); + } + + static int update_mqd(struct mqd_manager *mm, void *mqd, +-- +2.7.4 + |