aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1176-drm-amdkfd-Implement-image-tiling-mode-support.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1176-drm-amdkfd-Implement-image-tiling-mode-support.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1176-drm-amdkfd-Implement-image-tiling-mode-support.patch77
1 files changed, 77 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1176-drm-amdkfd-Implement-image-tiling-mode-support.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1176-drm-amdkfd-Implement-image-tiling-mode-support.patch
new file mode 100644
index 00000000..901b37ea
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1176-drm-amdkfd-Implement-image-tiling-mode-support.patch
@@ -0,0 +1,77 @@
+From 632338206b4b6118615d700c179cda4ad6537681 Mon Sep 17 00:00:00 2001
+From: Yong Zhao <yong.zhao@amd.com>
+Date: Wed, 24 Aug 2016 12:49:42 -0400
+Subject: [PATCH 1176/4131] drm/amdkfd: Implement image tiling mode support
+
+Change-Id: Iae2398fd7079abb1fbc59672803a82d88a33e9c2
+Signed-off-by: Yong Zhao <yong.zhao@amd.com>
+---
+ drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 45 +++++++++++++++++++++++++++++++-
+ 1 file changed, 44 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
+index 50e32bd..831f63f 100644
+--- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
++++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
+@@ -1776,6 +1776,46 @@ static int kfd_ioctl_import_dmabuf(struct file *filep,
+ return 0;
+ }
+
++static int kfd_ioctl_get_tile_config(struct file *filep,
++ struct kfd_process *p, void *data)
++{
++ struct kfd_ioctl_get_tile_config_args *args = data;
++ struct kfd_dev *dev;
++ struct tile_config config;
++ int err = 0;
++
++ dev = kfd_device_by_id(args->gpu_id);
++
++ dev->kfd2kgd->get_tile_config(dev->kgd, &config);
++
++ args->gb_addr_config = config.gb_addr_config;
++ args->num_banks = config.num_banks;
++ args->num_ranks = config.num_ranks;
++
++ if (args->num_tile_configs > config.num_tile_configs)
++ args->num_tile_configs = config.num_tile_configs;
++ err = copy_to_user((void __user *)args->tile_config_ptr,
++ config.tile_config_ptr,
++ args->num_tile_configs * sizeof(uint32_t));
++ if (err) {
++ args->num_tile_configs = 0;
++ return -EFAULT;
++ }
++
++ if (args->num_macro_tile_configs > config.num_macro_tile_configs)
++ args->num_macro_tile_configs =
++ config.num_macro_tile_configs;
++ err = copy_to_user((void __user *)args->macro_tile_config_ptr,
++ config.macro_tile_config_ptr,
++ args->num_macro_tile_configs * sizeof(uint32_t));
++ if (err) {
++ args->num_macro_tile_configs = 0;
++ return -EFAULT;
++ }
++
++ return 0;
++}
++
+ #define AMDKFD_IOCTL_DEF(ioctl, _func, _flags) \
+ [_IOC_NR(ioctl)] = {.cmd = ioctl, .func = _func, .flags = _flags, .cmd_drv = 0, .name = #ioctl}
+
+@@ -1875,7 +1915,10 @@ static const struct amdkfd_ioctl_desc amdkfd_ioctls[] = {
+ kfd_ioctl_get_dmabuf_info, 0),
+
+ AMDKFD_IOCTL_DEF(AMDKFD_IOC_IMPORT_DMABUF,
+- kfd_ioctl_import_dmabuf, 0)
++ kfd_ioctl_import_dmabuf, 0),
++
++ AMDKFD_IOCTL_DEF(AMDKFD_IOC_GET_TILE_CONFIG,
++ kfd_ioctl_get_tile_config, 0)
+ };
+
+ #define AMDKFD_CORE_IOCTL_COUNT ARRAY_SIZE(amdkfd_ioctls)
+--
+2.7.4
+