The series is Reviewed-by: Felix Kuehling <Felix.Kuehling@xxxxxxx> On 2018-12-14 10:22 a.m., Lin, Amber wrote: > 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@xxxxxxx> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 43 ++++++++++++++++++++++++ > drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 20 ++++++++++- > drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_fence.c | 1 + > drivers/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 ------------ > 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 2dfaf15..358f690 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 70429f7..3214d31 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 574c118..3c7055e 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 be1ab43..3fc2618 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 8018163..030b39d 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 0689d4c..12b6633 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 8154d67..3d5c3b0 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 */ _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx