diff options
Diffstat (limited to 'meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1493-drm-amdkfd-Implement-image-tiling-mode-support.patch')
-rw-r--r-- | meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1493-drm-amdkfd-Implement-image-tiling-mode-support.patch | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1493-drm-amdkfd-Implement-image-tiling-mode-support.patch b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1493-drm-amdkfd-Implement-image-tiling-mode-support.patch new file mode 100644 index 00000000..d9394907 --- /dev/null +++ b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1493-drm-amdkfd-Implement-image-tiling-mode-support.patch @@ -0,0 +1,77 @@ +From 0cf53651114b923401c697d5c77e8f123fee0ac0 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 1493/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 + |