aboutsummaryrefslogtreecommitdiffstats
path: root/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1559-drm-amdgpu-Export-dmabuf-support-for-KFD-BOs.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1559-drm-amdgpu-Export-dmabuf-support-for-KFD-BOs.patch')
-rw-r--r--meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1559-drm-amdgpu-Export-dmabuf-support-for-KFD-BOs.patch129
1 files changed, 0 insertions, 129 deletions
diff --git a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1559-drm-amdgpu-Export-dmabuf-support-for-KFD-BOs.patch b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1559-drm-amdgpu-Export-dmabuf-support-for-KFD-BOs.patch
deleted file mode 100644
index 4a0cedf0..00000000
--- a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1559-drm-amdgpu-Export-dmabuf-support-for-KFD-BOs.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From 2cedb24cf8ae3857d9c64eb54ca3b110bb076fe8 Mon Sep 17 00:00:00 2001
-From: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com>
-Date: Fri, 18 Nov 2016 17:30:00 -0500
-Subject: [PATCH 1559/4131] drm/amdgpu: Export dmabuf support for KFD BOs
-
-Change-Id: Id0a30c029f1c9d0eff8fc76df40d391a3cddfdbb
-Signed-off-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com>
----
- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 ++
- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 2 ++
- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 1 +
- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 1 +
- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 27 +++++++++++++++++++++++
- drivers/gpu/drm/amd/include/kgd_kfd_interface.h | 4 ++++
- 6 files changed, 37 insertions(+)
-
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-index 11b759e..ee6069f 100755
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
-@@ -408,6 +408,8 @@ amdgpu_gem_prime_import_sg_table(struct drm_device *dev,
- struct dma_buf *amdgpu_gem_prime_export(struct drm_device *dev,
- struct drm_gem_object *gobj,
- int flags);
-+struct drm_gem_object *
-+amdgpu_gem_prime_foreign_bo(struct amdgpu_device *adev, struct amdgpu_bo *bo);
- struct drm_gem_object *amdgpu_gem_prime_import(struct drm_device *dev,
- struct dma_buf *dma_buf);
- int amdgpu_gem_prime_pin(struct drm_gem_object *obj);
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
-index 9c8c941..362132b 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
-@@ -195,6 +195,8 @@ void amdgpu_amdkfd_gpuvm_unpin_put_sg_table(
- int amdgpu_amdkfd_gpuvm_import_dmabuf(struct kgd_dev *kgd, int dma_buf_fd,
- uint64_t va, void *vm,
- struct kgd_mem **mem, uint64_t *size);
-+int amdgpu_amdkfd_gpuvm_export_dmabuf(struct kgd_dev *kgd, void *vm,
-+ struct kgd_mem *mem, int *dmabuf_fd);
- int amdgpu_amdkfd_gpuvm_evict_mem(struct kgd_mem *mem, struct mm_struct *mm);
- int amdgpu_amdkfd_gpuvm_restore_mem(struct kgd_mem *mem, struct mm_struct *mm);
-
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
-index 7ab108e..4896541 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
-@@ -224,6 +224,7 @@ static const struct kfd2kgd_calls kfd2kgd = {
- .unpin_put_sg_table_bo = amdgpu_amdkfd_gpuvm_unpin_put_sg_table,
- .get_dmabuf_info = amdgpu_amdkfd_get_dmabuf_info,
- .import_dmabuf = amdgpu_amdkfd_gpuvm_import_dmabuf,
-+ .export_dmabuf = amdgpu_amdkfd_gpuvm_export_dmabuf,
- .get_vm_fault_info = amdgpu_amdkfd_gpuvm_get_vm_fault_info,
- .submit_ib = amdgpu_amdkfd_submit_ib,
- .get_tile_config = amdgpu_amdkfd_get_tile_config,
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
-index ba316e8..60dafce 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
-@@ -203,6 +203,7 @@ static const struct kfd2kgd_calls kfd2kgd = {
- .unpin_put_sg_table_bo = amdgpu_amdkfd_gpuvm_unpin_put_sg_table,
- .get_dmabuf_info = amdgpu_amdkfd_get_dmabuf_info,
- .import_dmabuf = amdgpu_amdkfd_gpuvm_import_dmabuf,
-+ .export_dmabuf = amdgpu_amdkfd_gpuvm_export_dmabuf,
- .get_vm_fault_info = amdgpu_amdkfd_gpuvm_get_vm_fault_info,
- .submit_ib = amdgpu_amdkfd_submit_ib,
- .get_tile_config = amdgpu_amdkfd_get_tile_config,
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
-index 0926000..3a7bfa1 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
-@@ -1845,6 +1845,33 @@ int amdgpu_amdkfd_gpuvm_import_dmabuf(struct kgd_dev *kgd, int dma_buf_fd,
- return r;
- }
-
-+int amdgpu_amdkfd_gpuvm_export_dmabuf(struct kgd_dev *kgd, void *vm,
-+ struct kgd_mem *mem, int *dmabuf_fd)
-+{
-+ struct dma_buf *dmabuf;
-+ struct amdgpu_device *adev = NULL;
-+ struct amdgpu_bo *bo = NULL;
-+ struct drm_gem_object *gobj = NULL;
-+
-+ if (!dmabuf_fd || !kgd || !vm || !mem)
-+ return -EINVAL;
-+
-+ adev = get_amdgpu_device(kgd);
-+ bo = mem->bo;
-+
-+ gobj = amdgpu_gem_prime_foreign_bo(adev, bo);
-+ if (gobj == NULL) {
-+ pr_err("Export BO failed. Unable to find/create GEM object\n");
-+ return -EINVAL;
-+ }
-+
-+ dmabuf = amdgpu_gem_prime_export(adev->ddev, gobj, 0);
-+ *dmabuf_fd = dma_buf_fd(dmabuf, 0);
-+
-+ pr_debug("Exported: %d\n", *dmabuf_fd);
-+ return 0;
-+}
-+
- /* Runs out of process context. mem->lock must be held. */
- int amdgpu_amdkfd_gpuvm_evict_mem(struct kgd_mem *mem, struct mm_struct *mm)
- {
-diff --git a/drivers/gpu/drm/amd/include/kgd_kfd_interface.h b/drivers/gpu/drm/amd/include/kgd_kfd_interface.h
-index 910dca1..68b72cd 100644
---- a/drivers/gpu/drm/amd/include/kgd_kfd_interface.h
-+++ b/drivers/gpu/drm/amd/include/kgd_kfd_interface.h
-@@ -217,6 +217,8 @@ struct tile_config {
- * @import_dmabuf: Imports a DMA buffer, creating a new kgd_mem object
- * Supports only DMA buffers created by GPU driver on the same GPU
- *
-+ * @export_dmabuf: Emports a KFD BO for sharing with other process
-+ *
- * @submit_ib: Submits an IB to the engine specified by inserting the IB to
- * the corresonded ring (ring type).
- *
-@@ -355,6 +357,8 @@ struct kfd2kgd_calls {
- uint32_t *metadata_size, uint32_t *flags);
- int (*import_dmabuf)(struct kgd_dev *kgd, int dma_buf_fd, uint64_t va,
- void *vm, struct kgd_mem **mem, uint64_t *size);
-+ int (*export_dmabuf)(struct kgd_dev *kgd, void *vm, struct kgd_mem *mem,
-+ int *dma_buf_fd);
-
- int (*get_vm_fault_info)(struct kgd_dev *kgd,
- struct kfd_vm_fault_info *info);
---
-2.7.4
-