diff options
Diffstat (limited to 'drivers/gpu')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 43 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 20 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdkfd/kfd_module.c | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 22 | ||||
| -rw-r--r-- | drivers/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 2dfaf158ef07..358f69041164 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c @@ -619,4 +619,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 70429f7aa9a8..3214d319071b 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; @@ -214,4 +213,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 be1ab43473c6..3fc2618ca646 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 8018163414ff..030b39d62973 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_module.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_module.c @@ -23,6 +23,7 @@  #include <linux/sched.h>  #include <linux/device.h>  #include "kfd_priv.h" +#include "amdgpu_amdkfd.h"  static const struct kgd2kfd_calls kgd2kfd = {  	.exit		= kgd2kfd_exit, @@ -104,7 +105,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 0689d4ccbbc0..12b66330fc6d 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h +++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h @@ -266,14 +266,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, @@ -541,11 +533,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   */ @@ -800,20 +787,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 8154d67388cc..3d5c3b00d917 100644 --- a/drivers/gpu/drm/amd/include/kgd_kfd_interface.h +++ b/drivers/gpu/drm/amd/include/kgd_kfd_interface.h @@ -379,7 +379,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 */ | 
