aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1560-drm-amdgpu-Add-mmap_offset-for-KFD-BO-import-dmabuf.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1560-drm-amdgpu-Add-mmap_offset-for-KFD-BO-import-dmabuf.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1560-drm-amdgpu-Add-mmap_offset-for-KFD-BO-import-dmabuf.patch84
1 files changed, 84 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1560-drm-amdgpu-Add-mmap_offset-for-KFD-BO-import-dmabuf.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1560-drm-amdgpu-Add-mmap_offset-for-KFD-BO-import-dmabuf.patch
new file mode 100644
index 00000000..9571cb0d
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1560-drm-amdgpu-Add-mmap_offset-for-KFD-BO-import-dmabuf.patch
@@ -0,0 +1,84 @@
+From 30d762830460053cd28e347210cab18d7cff7b6a Mon Sep 17 00:00:00 2001
+From: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com>
+Date: Fri, 18 Nov 2016 17:53:08 -0500
+Subject: [PATCH 1560/4131] drm/amdgpu: Add mmap_offset for KFD BO import
+ dmabuf
+
+Change-Id: Ida621e50cbadf376cf7618077079f3ba2eccd373
+Signed-off-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 3 ++-
+ drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 6 +++++-
+ drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 3 ++-
+ drivers/gpu/drm/amd/include/kgd_kfd_interface.h | 3 ++-
+ 4 files changed, 11 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
+index 362132b..6003b77 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
+@@ -194,7 +194,8 @@ void amdgpu_amdkfd_gpuvm_unpin_put_sg_table(
+ struct kgd_mem *mem, struct sg_table *sg);
+ 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);
++ struct kgd_mem **mem, uint64_t *size,
++ uint64_t *mmap_offset);
+ 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);
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
+index 3a7bfa1..a5d84d7 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
+@@ -1791,7 +1791,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)
++ struct kgd_mem **mem, uint64_t *size,
++ uint64_t *mmap_offset)
+ {
+ struct amdgpu_device *adev = (struct amdgpu_device *)kgd;
+ struct dma_buf *dma_buf;
+@@ -1822,6 +1823,9 @@ int amdgpu_amdkfd_gpuvm_import_dmabuf(struct kgd_dev *kgd, int dma_buf_fd,
+ if (size)
+ *size = amdgpu_bo_size(bo);
+
++ if (mmap_offset)
++ *mmap_offset = amdgpu_bo_mmap_offset(bo);
++
+ *mem = kzalloc(sizeof(struct kgd_mem), GFP_KERNEL);
+ if (*mem == NULL) {
+ r = -ENOMEM;
+diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
+index f56d24a..f28b1c3 100644
+--- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
++++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
+@@ -1798,7 +1798,8 @@ static int kfd_ioctl_import_dmabuf(struct file *filep,
+
+ r = dev->kfd2kgd->import_dmabuf(dev->kgd, args->dmabuf_fd,
+ args->va_addr, pdd->vm,
+- (struct kgd_mem **)&mem, &size);
++ (struct kgd_mem **)&mem, &size,
++ NULL);
+ if (r)
+ return r;
+
+diff --git a/drivers/gpu/drm/amd/include/kgd_kfd_interface.h b/drivers/gpu/drm/amd/include/kgd_kfd_interface.h
+index 68b72cd..a655b37 100644
+--- a/drivers/gpu/drm/amd/include/kgd_kfd_interface.h
++++ b/drivers/gpu/drm/amd/include/kgd_kfd_interface.h
+@@ -356,7 +356,8 @@ struct kfd2kgd_calls {
+ void *metadata_buffer, size_t buffer_size,
+ 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);
++ void *vm, struct kgd_mem **mem, uint64_t *size,
++ uint64_t *mmap_offset);
+ int (*export_dmabuf)(struct kgd_dev *kgd, void *vm, struct kgd_mem *mem,
+ int *dma_buf_fd);
+
+--
+2.7.4
+