diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2731-drm-amdgpu-Relocate-kgd2kfd-function-declaration.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2731-drm-amdgpu-Relocate-kgd2kfd-function-declaration.patch | 226 |
1 files changed, 226 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2731-drm-amdgpu-Relocate-kgd2kfd-function-declaration.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2731-drm-amdgpu-Relocate-kgd2kfd-function-declaration.patch new file mode 100644 index 00000000..1b1bddb7 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/2731-drm-amdgpu-Relocate-kgd2kfd-function-declaration.patch @@ -0,0 +1,226 @@ +From 1e0eded5bb2aa3c2bef95b01a60f2cd4f1d8939f Mon Sep 17 00:00:00 2001 +From: Amber Lin <Amber.Lin@amd.com> +Date: Thu, 13 Dec 2018 11:57:35 -0500 +Subject: [PATCH 2731/2940] drm/amdgpu: Relocate kgd2kfd function declaration +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Since amdkfd is merged into amdgpu module and amdgpu can access amdkfd +directly, move declaration of kgd2kfd functions from kfd_priv.h to +amdgpu_amdkfd.h + +Signed-off-by: Amber Lin <Amber.Lin@amd.com> +Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com> +Acked-by: Christian König <christian.koenig@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 43 +++++++++++++++++++ + drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 20 ++++++++- + .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c | 1 + + .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 2 + + drivers/gpu/drm/amd/amdkfd/kfd_module.c | 2 +- + drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 22 ---------- + .../gpu/drm/amd/include/kgd_kfd_interface.h | 3 -- + 7 files changed, 66 insertions(+), 27 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c +index 81e606a642a0..067c017bbdd7 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c +@@ -607,4 +607,47 @@ struct kfd2kgd_calls *amdgpu_amdkfd_gfx_9_0_get_functions(void) + { + return NULL; + } ++ ++struct kfd_dev *kgd2kfd_probe(struct kgd_dev *kgd, struct pci_dev *pdev, ++ const struct kfd2kgd_calls *f2g) ++{ ++ return NULL; ++} ++ ++bool kgd2kfd_device_init(struct kfd_dev *kfd, ++ const struct kgd2kfd_shared_resources *gpu_resources) ++{ ++ return false; ++} ++ ++void kgd2kfd_device_exit(struct kfd_dev *kfd) ++{ ++} ++ ++void kgd2kfd_exit(void) ++{ ++} ++ ++void kgd2kfd_suspend(struct kfd_dev *kfd) ++{ ++} ++ ++int kgd2kfd_resume(struct kfd_dev *kfd) ++{ ++ return 0; ++} ++ ++int kgd2kfd_pre_reset(struct kfd_dev *kfd) ++{ ++ return 0; ++} ++ ++int kgd2kfd_post_reset(struct kfd_dev *kfd) ++{ ++ return 0; ++} ++ ++void kgd2kfd_interrupt(struct kfd_dev *kfd, const void *ih_ring_entry) ++{ ++} + #endif +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h +index 28ec41a04b1f..0f913f9823bc 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h +@@ -33,7 +33,6 @@ + #include "amdgpu_sync.h" + #include "amdgpu_vm.h" + +-extern const struct kgd2kfd_calls *kgd2kfd; + extern uint64_t amdgpu_amdkfd_total_mem_size; + + struct amdgpu_device; +@@ -213,4 +212,23 @@ int amdgpu_amdkfd_gpuvm_import_dmabuf(struct kgd_dev *kgd, + void amdgpu_amdkfd_gpuvm_init_mem_limits(void); + void amdgpu_amdkfd_unreserve_memory_limit(struct amdgpu_bo *bo); + ++/* KGD2KFD callbacks */ ++int kgd2kfd_init(unsigned interface_version, ++ const struct kgd2kfd_calls **g2f); ++void kgd2kfd_exit(void); ++struct kfd_dev *kgd2kfd_probe(struct kgd_dev *kgd, struct pci_dev *pdev, ++ const struct kfd2kgd_calls *f2g); ++bool kgd2kfd_device_init(struct kfd_dev *kfd, ++ const struct kgd2kfd_shared_resources *gpu_resources); ++void kgd2kfd_device_exit(struct kfd_dev *kfd); ++void kgd2kfd_suspend(struct kfd_dev *kfd); ++int kgd2kfd_resume(struct kfd_dev *kfd); ++int kgd2kfd_pre_reset(struct kfd_dev *kfd); ++int kgd2kfd_post_reset(struct kfd_dev *kfd); ++void kgd2kfd_interrupt(struct kfd_dev *kfd, const void *ih_ring_entry); ++int kgd2kfd_quiesce_mm(struct mm_struct *mm); ++int kgd2kfd_resume_mm(struct mm_struct *mm); ++int kgd2kfd_schedule_evict_and_restore_process(struct mm_struct *mm, ++ struct dma_fence *fence); ++ + #endif /* AMDGPU_AMDKFD_H_INCLUDED */ +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c +index 574c1181ae9a..3c7055ecd990 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c +@@ -31,6 +31,7 @@ + + static const struct dma_fence_ops amdkfd_fence_ops; + static atomic_t fence_seq = ATOMIC_INIT(0); ++extern const struct kgd2kfd_calls *kgd2kfd; + + /* Eviction Fence + * Fence helper functions to deal with KFD memory eviction. +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +index b1cc59490f96..5ca697af9a53 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +@@ -44,6 +44,8 @@ + */ + #define AMDGPU_USERPTR_RESTORE_DELAY_MS 1 + ++extern const struct kgd2kfd_calls *kgd2kfd; ++ + /* Impose limit on how much memory KFD can use */ + static struct { + uint64_t max_system_mem_limit; +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_module.c b/drivers/gpu/drm/amd/amdkfd/kfd_module.c +index b445674bba9a..4fe5ceff7ec8 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_module.c ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_module.c +@@ -24,6 +24,7 @@ + #include <linux/moduleparam.h> + #include <linux/device.h> + #include "kfd_priv.h" ++#include "amdgpu_amdkfd.h" + + static const struct kgd2kfd_calls kgd2kfd = { + .exit = kgd2kfd_exit, +@@ -149,7 +150,6 @@ int kgd2kfd_init(unsigned int interface_version, + + return 0; + } +-EXPORT_SYMBOL(kgd2kfd_init); + + void kgd2kfd_exit(void) + { +diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h +index 0e218c4f8408..c56b877e59b5 100644 +--- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h ++++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h +@@ -294,14 +294,6 @@ struct kfd_dev { + bool pci_atomic_requested; + }; + +-/* KGD2KFD callbacks */ +-void kgd2kfd_exit(void); +-struct kfd_dev *kgd2kfd_probe(struct kgd_dev *kgd, +- struct pci_dev *pdev, const struct kfd2kgd_calls *f2g); +-bool kgd2kfd_device_init(struct kfd_dev *kfd, +- const struct kgd2kfd_shared_resources *gpu_resources); +-void kgd2kfd_device_exit(struct kfd_dev *kfd); +- + enum kfd_mempool { + KFD_MEMPOOL_SYSTEM_CACHEABLE = 1, + KFD_MEMPOOL_SYSTEM_WRITECOMBINE = 2, +@@ -569,11 +561,6 @@ struct qcm_process_device { + /* Approx. time before evicting the process again */ + #define PROCESS_ACTIVE_TIME_MS 10 + +-int kgd2kfd_quiesce_mm(struct mm_struct *mm); +-int kgd2kfd_resume_mm(struct mm_struct *mm); +-int kgd2kfd_schedule_evict_and_restore_process(struct mm_struct *mm, +- struct dma_fence *fence); +- + /* 8 byte handle containing GPU ID in the most significant 4 bytes and + * idr_handle in the least significant 4 bytes + */ +@@ -828,20 +815,11 @@ int kfd_numa_node_to_apic_id(int numa_node_id); + /* Interrupts */ + int kfd_interrupt_init(struct kfd_dev *dev); + void kfd_interrupt_exit(struct kfd_dev *dev); +-void kgd2kfd_interrupt(struct kfd_dev *kfd, const void *ih_ring_entry); + bool enqueue_ih_ring_entry(struct kfd_dev *kfd, const void *ih_ring_entry); + bool interrupt_is_wanted(struct kfd_dev *dev, + const uint32_t *ih_ring_entry, + uint32_t *patched_ihre, bool *flag); + +-/* Power Management */ +-void kgd2kfd_suspend(struct kfd_dev *kfd); +-int kgd2kfd_resume(struct kfd_dev *kfd); +- +-/* GPU reset */ +-int kgd2kfd_pre_reset(struct kfd_dev *kfd); +-int kgd2kfd_post_reset(struct kfd_dev *kfd); +- + /* amdkfd Apertures */ + int kfd_init_apertures(struct kfd_process *process); + +diff --git a/drivers/gpu/drm/amd/include/kgd_kfd_interface.h b/drivers/gpu/drm/amd/include/kgd_kfd_interface.h +index 0285e1a71fa4..08be33912e40 100644 +--- a/drivers/gpu/drm/amd/include/kgd_kfd_interface.h ++++ b/drivers/gpu/drm/amd/include/kgd_kfd_interface.h +@@ -354,7 +354,4 @@ struct kgd2kfd_calls { + int (*post_reset)(struct kfd_dev *kfd); + }; + +-int kgd2kfd_init(unsigned interface_version, +- const struct kgd2kfd_calls **g2f); +- + #endif /* KGD_KFD_INTERFACE_H_INCLUDED */ +-- +2.17.1 + |