aboutsummaryrefslogtreecommitdiffstats
path: root/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1419-drm-amdgpu-Add-GPUVM-and-Hawaii-to-gfx_v7-KFD-suppor.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1419-drm-amdgpu-Add-GPUVM-and-Hawaii-to-gfx_v7-KFD-suppor.patch')
-rw-r--r--meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1419-drm-amdgpu-Add-GPUVM-and-Hawaii-to-gfx_v7-KFD-suppor.patch307
1 files changed, 0 insertions, 307 deletions
diff --git a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1419-drm-amdgpu-Add-GPUVM-and-Hawaii-to-gfx_v7-KFD-suppor.patch b/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1419-drm-amdgpu-Add-GPUVM-and-Hawaii-to-gfx_v7-KFD-suppor.patch
deleted file mode 100644
index 42ec9e84..00000000
--- a/meta-v1000/recipes-kernel/linux/linux-yocto-4.14.71/1419-drm-amdgpu-Add-GPUVM-and-Hawaii-to-gfx_v7-KFD-suppor.patch
+++ /dev/null
@@ -1,307 +0,0 @@
-From 522fb50ef41ce9f57f6dd2db0ca29dacb0cde6ee Mon Sep 17 00:00:00 2001
-From: Felix Kuehling <Felix.Kuehling@amd.com>
-Date: Fri, 22 Apr 2016 16:20:36 -0400
-Subject: [PATCH 1419/4131] drm/amdgpu: Add GPUVM and Hawaii to gfx_v7 KFD
- support
-
-Change-Id: If328aa3db713b6a2590035c19e22928b5db2d10c
-Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
----
- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 7 +-
- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 2 -
- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 148 ++++------------------
- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 1 -
- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 3 +-
- 5 files changed, 25 insertions(+), 136 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
-index 62e7145..ea5372b 100755
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
-@@ -67,6 +67,7 @@ bool amdgpu_amdkfd_load_interface(struct amdgpu_device *adev)
- {
- switch (adev->asic_type) {
- case CHIP_KAVERI:
-+ case CHIP_HAWAII:
- kfd2kgd = amdgpu_amdkfd_gfx_7_get_functions();
- break;
- case CHIP_CARRIZO:
-@@ -423,12 +424,6 @@ void get_cu_info(struct kgd_dev *kgd, struct kfd_cu_info *cu_info)
- cu_info->lds_size = acu_info.lds_size;
- }
-
--int map_gtt_bo_to_kernel(struct kgd_dev *kgd,
-- struct kgd_mem *mem, void **kptr)
--{
-- return 0;
--}
--
- int amdgpu_amdkfd_get_dmabuf_info(struct kgd_dev *kgd, int dma_buf_fd,
- struct kgd_dev **dma_buf_kgd,
- uint64_t *bo_size, void *metadata_buffer,
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
-index 5fa506d..b7b30af 100755
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
-@@ -108,8 +108,6 @@ uint64_t get_gpu_clock_counter(struct kgd_dev *kgd);
-
- uint32_t get_max_engine_clock_in_mhz(struct kgd_dev *kgd);
- void get_cu_info(struct kgd_dev *kgd, struct kfd_cu_info *cu_info);
--int map_gtt_bo_to_kernel(struct kgd_dev *kgd,
-- struct kgd_mem *mem, void **kptr);
- int amdgpu_amdkfd_get_dmabuf_info(struct kgd_dev *kgd, int dma_buf_fd,
- struct kgd_dev **dmabuf_kgd,
- uint64_t *bo_size, void *metadata_buffer,
-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 9eca46f..1051556 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
-@@ -83,21 +83,7 @@ union TCP_WATCH_CNTL_BITS {
- float f32All;
- };
-
--static int create_process_vm(struct kgd_dev *kgd, void **vm);
--static void destroy_process_vm(struct kgd_dev *kgd, void *vm);
--
--static uint32_t get_process_page_dir(void *vm);
--
- static int open_graphic_handle(struct kgd_dev *kgd, uint64_t va, void *vm, int fd, uint32_t handle, struct kgd_mem **mem);
--static int map_memory_to_gpu(struct kgd_dev *kgd, struct kgd_mem *mem,
-- void *vm);
--static int unmap_memory_from_gpu(struct kgd_dev *kgd, struct kgd_mem *mem,
-- void *vm);
--static int alloc_memory_of_gpu(struct kgd_dev *kgd, uint64_t va, size_t size,
-- void *vm, struct kgd_mem **mem,
-- uint64_t *offset, void **kptr, struct kfd_process_device *pdd,
-- uint32_t flags);
--static int free_memory_of_gpu(struct kgd_dev *kgd, struct kgd_mem *mem);
-
- static uint16_t get_fw_version(struct kgd_dev *kgd, enum kgd_engine_type type);
-
-@@ -144,7 +130,6 @@ static int alloc_memory_of_scratch(struct kgd_dev *kgd,
- uint64_t va, uint32_t vmid);
- static int write_config_static_mem(struct kgd_dev *kgd, bool swizzle_enable,
- uint8_t element_size, uint8_t index_stride, uint8_t mtype);
--static int mmap_bo(struct kgd_dev *kgd, struct vm_area_struct *vma);
- static void set_vm_context_page_table_base(struct kgd_dev *kgd, uint32_t vmid,
- uint32_t page_table_base);
-
-@@ -154,9 +139,9 @@ static const struct kfd2kgd_calls kfd2kgd = {
- .get_local_mem_info = get_local_mem_info,
- .get_gpu_clock_counter = get_gpu_clock_counter,
- .get_max_engine_clock_in_mhz = get_max_engine_clock_in_mhz,
-- .create_process_vm = create_process_vm,
-- .destroy_process_vm = destroy_process_vm,
-- .get_process_page_dir = get_process_page_dir,
-+ .create_process_vm = amdgpu_amdkfd_gpuvm_create_process_vm,
-+ .destroy_process_vm = amdgpu_amdkfd_gpuvm_destroy_process_vm,
-+ .get_process_page_dir = amdgpu_amdkfd_gpuvm_get_process_page_dir,
- .open_graphic_handle = open_graphic_handle,
- .program_sh_mem_settings = kgd_program_sh_mem_settings,
- .set_pasid_vmid_mapping = kgd_set_pasid_vmid_mapping,
-@@ -172,22 +157,30 @@ static const struct kfd2kgd_calls kfd2kgd = {
- .address_watch_execute = kgd_address_watch_execute,
- .wave_control_execute = kgd_wave_control_execute,
- .address_watch_get_offset = kgd_address_watch_get_offset,
-- .get_atc_vmid_pasid_mapping_pasid = get_atc_vmid_pasid_mapping_pasid,
-- .get_atc_vmid_pasid_mapping_valid = get_atc_vmid_pasid_mapping_valid,
-+ .get_atc_vmid_pasid_mapping_pasid =
-+ get_atc_vmid_pasid_mapping_pasid,
-+ .get_atc_vmid_pasid_mapping_valid =
-+ get_atc_vmid_pasid_mapping_valid,
- .write_vmid_invalidate_request = write_vmid_invalidate_request,
-- .alloc_memory_of_gpu = alloc_memory_of_gpu,
-- .free_memory_of_gpu = free_memory_of_gpu,
-- .map_memory_to_gpu = map_memory_to_gpu,
-- .unmap_memory_to_gpu = unmap_memory_from_gpu,
-+ .alloc_memory_of_gpu = amdgpu_amdkfd_gpuvm_alloc_memory_of_gpu,
-+ .free_memory_of_gpu = amdgpu_amdkfd_gpuvm_free_memory_of_gpu,
-+ .map_memory_to_gpu = amdgpu_amdkfd_gpuvm_map_memory_to_gpu,
-+ .unmap_memory_to_gpu = amdgpu_amdkfd_gpuvm_unmap_memory_from_gpu,
- .get_fw_version = get_fw_version,
- .set_num_of_requests = set_num_of_requests,
- .get_cu_info = get_cu_info,
- .alloc_memory_of_scratch = alloc_memory_of_scratch,
- .write_config_static_mem = write_config_static_mem,
-- .mmap_bo = mmap_bo,
-- .map_gtt_bo_to_kernel = map_gtt_bo_to_kernel,
-+ .mmap_bo = amdgpu_amdkfd_gpuvm_mmap_bo,
-+ .map_gtt_bo_to_kernel = amdgpu_amdkfd_gpuvm_map_gtt_bo_to_kernel,
- .set_vm_context_page_table_base = set_vm_context_page_table_base,
-+ .get_pdd_from_buffer_object =
-+ amdgpu_amdkfd_gpuvm_get_pdd_from_buffer_object,
-+ .return_bo_size = amdgpu_amdkfd_gpuvm_return_bo_size,
-+ .pin_get_sg_table_bo = amdgpu_amdkfd_gpuvm_pin_get_sg_table,
-+ .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,
- .get_vm_fault_info = amdgpu_amdkfd_gpuvm_get_vm_fault_info
- };
-
-@@ -196,76 +189,6 @@ struct kfd2kgd_calls *amdgpu_amdkfd_gfx_7_get_functions()
- return (struct kfd2kgd_calls *)&kfd2kgd;
- }
-
--/*
-- * Creates a VM context for HSA process
-- */
--static int create_process_vm(struct kgd_dev *kgd, void **vm)
--{
-- int ret;
-- struct amdgpu_vm *new_vm;
-- struct amdgpu_device *adev = (struct amdgpu_device *) kgd;
--
-- BUG_ON(kgd == NULL);
-- BUG_ON(vm == NULL);
--
-- new_vm = kzalloc(sizeof(struct amdgpu_vm), GFP_KERNEL);
-- if (new_vm == NULL)
-- return -ENOMEM;
--
-- /* Initialize the VM context, allocate the page directory and zero it */
-- ret = amdgpu_vm_init(adev, new_vm);
-- if (ret != 0) {
-- /* Undo everything related to the new VM context */
-- amdgpu_vm_fini(adev, new_vm);
-- kfree(new_vm);
-- new_vm = NULL;
-- }
--
-- /* Pin the PD directory*/
-- amdgpu_bo_reserve(new_vm->page_directory, true);
-- amdgpu_bo_pin(new_vm->page_directory, AMDGPU_GEM_DOMAIN_VRAM, NULL);
-- amdgpu_bo_unreserve(new_vm->page_directory);
--#if 0
-- new_vm->pd_gpu_addr = amdgpu_bo_gpu_offset(new_vm->page_directory);
--#endif
-- *vm = (void *) new_vm;
--
-- return ret;
--}
--
--/*
-- * Destroys a VM context of HSA process
-- */
--static void destroy_process_vm(struct kgd_dev *kgd, void *vm)
--{
-- struct amdgpu_device *adev = (struct amdgpu_device *) kgd;
-- struct amdgpu_vm *rvm = (struct amdgpu_vm *) vm;
--
-- BUG_ON(kgd == NULL);
-- BUG_ON(vm == NULL);
--
-- /* Unpin the PD directory*/
-- amdgpu_bo_reserve(rvm->page_directory, true);
-- amdgpu_bo_unpin(rvm->page_directory);
-- amdgpu_bo_unreserve(rvm->page_directory);
--
-- /* Release the VM context */
-- amdgpu_vm_fini(adev, rvm);
-- kfree(vm);
--}
--
--static uint32_t get_process_page_dir(void *vm)
--{
--#if 0
-- struct amdgpu_vm *rvm = (struct amdgpu_vm *) vm;
--
-- BUG_ON(vm == NULL);
--
-- return rvm->pd_gpu_addr >> AMDGPU_GPU_PAGE_SHIFT;
--#endif
-- return 0;
--}
--
- static int open_graphic_handle(struct kgd_dev *kgd, uint64_t va, void *vm,
- int fd, uint32_t handle, struct kgd_mem **mem)
- {
-@@ -386,7 +309,7 @@ static inline uint32_t get_sdma_base_addr(struct cik_sdma_rlc_registers *m)
-
- retval = m->sdma_engine_id * SDMA1_REGISTER_OFFSET +
- m->sdma_queue_id * KFD_CIK_SDMA_QUEUE_OFFSET;
-- pr_err("kfd: sdma base address: 0x%x\n", retval);
-+ pr_debug("kfd: sdma base address: 0x%x\n", retval);
-
- return retval;
- }
-@@ -543,7 +466,8 @@ static int kgd_hqd_destroy(struct kgd_dev *kgd, uint32_t reset_type,
-
- while (true) {
- temp = RREG32(mmCP_HQD_ACTIVE);
-- if (temp & CP_HQD_ACTIVE__ACTIVE__SHIFT)
-+ /* FIXME: this looks backwards */
-+ if (temp & CP_HQD_ACTIVE__ACTIVE_MASK)
- break;
- if (timeout <= 0) {
- pr_err("kfd: cp queue preemption time out (%dms)\n",
-@@ -730,29 +654,6 @@ static int alloc_memory_of_scratch(struct kgd_dev *kgd,
- }
-
-
--static int alloc_memory_of_gpu(struct kgd_dev *kgd, uint64_t va, size_t size,
-- void *vm, struct kgd_mem **mem, uint64_t *offset,
-- void **kptr, struct kfd_process_device *pdd, uint32_t flags)
--{
-- return -EFAULT;
--}
--
--static int free_memory_of_gpu(struct kgd_dev *kgd, struct kgd_mem *mem)
--{
-- return -EFAULT;
--}
--
--static int map_memory_to_gpu(struct kgd_dev *kgd, struct kgd_mem *mem, void *vm)
--{
-- return -EFAULT;
--}
--
--static int unmap_memory_from_gpu(struct kgd_dev *kgd, struct kgd_mem *mem,
-- void *vm)
--{
-- return -EFAULT;
--}
--
- static uint16_t get_fw_version(struct kgd_dev *kgd, enum kgd_engine_type type)
- {
- struct amdgpu_device *adev = (struct amdgpu_device *) kgd;
-@@ -824,11 +725,6 @@ static void set_num_of_requests(struct kgd_dev *dev, uint8_t num_of_req)
- WREG32(mmATC_ATS_DEBUG, value);
- }
-
--static int mmap_bo(struct kgd_dev *kgd, struct vm_area_struct *vma)
--{
-- return 0;
--}
--
- static void set_vm_context_page_table_base(struct kgd_dev *kgd, uint32_t vmid,
- uint32_t page_table_base)
- {
-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 41925d3..0c6e3a4 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
-@@ -149,7 +149,6 @@ static const struct kfd2kgd_calls kfd2kgd = {
- .get_fw_version = get_fw_version,
- .set_num_of_requests = set_num_of_requests,
- .get_cu_info = get_cu_info,
-- .set_num_of_requests = set_num_of_requests,
- .alloc_memory_of_scratch = alloc_memory_of_scratch,
- .write_config_static_mem = write_config_static_mem,
- .mmap_bo = amdgpu_amdkfd_gpuvm_mmap_bo,
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
-index 896b9df..c9f7af6 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
-@@ -333,7 +333,8 @@ static int __alloc_memory_of_gpu(struct kgd_dev *kgd, uint64_t va,
- }
-
- adev = get_amdgpu_device(kgd);
-- byte_align = adev->asic_type != CHIP_FIJI ? VI_BO_SIZE_ALIGN : 1;
-+ byte_align = (adev->family == AMDGPU_FAMILY_VI &&
-+ adev->asic_type != CHIP_FIJI) ? VI_BO_SIZE_ALIGN : 1;
-
- *mem = kzalloc(sizeof(struct kgd_mem), GFP_KERNEL);
- if (*mem == NULL) {
---
-2.7.4
-