aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4017-drm-amdkfd-Delete-unnecessary-function-declarations.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4017-drm-amdkfd-Delete-unnecessary-function-declarations.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4017-drm-amdkfd-Delete-unnecessary-function-declarations.patch434
1 files changed, 434 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4017-drm-amdkfd-Delete-unnecessary-function-declarations.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4017-drm-amdkfd-Delete-unnecessary-function-declarations.patch
new file mode 100644
index 00000000..fb711405
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4017-drm-amdkfd-Delete-unnecessary-function-declarations.patch
@@ -0,0 +1,434 @@
+From 958dec157774c9331eab09ba3a2fdc969d270911 Mon Sep 17 00:00:00 2001
+From: Yong Zhao <Yong.Zhao@amd.com>
+Date: Fri, 27 Sep 2019 21:22:07 -0400
+Subject: [PATCH 4017/4256] drm/amdkfd: Delete unnecessary function
+ declarations
+
+Ajust the function sequences so that those function delcarations are not
+needed any more.
+
+Change-Id: I3a270ade7ac380cd083e90611177d7a45249823f
+Signed-off-by: Yong Zhao <Yong.Zhao@amd.com>
+Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
+---
+ .../drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.c | 115 +++++------------
+ .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 118 +++++-------------
+ .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 114 +++++------------
+ 3 files changed, 90 insertions(+), 257 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.c
+index 684087839c7a..c1f194f9c515 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v10.c
+@@ -46,61 +46,6 @@ enum hqd_dequeue_request_type {
+ SAVE_WAVES
+ };
+
+-/*
+- * Register access functions
+- */
+-
+-static void kgd_program_sh_mem_settings(struct kgd_dev *kgd, uint32_t vmid,
+- uint32_t sh_mem_config,
+- uint32_t sh_mem_ape1_base, uint32_t sh_mem_ape1_limit,
+- uint32_t sh_mem_bases);
+-static int kgd_set_pasid_vmid_mapping(struct kgd_dev *kgd, unsigned int pasid,
+- unsigned int vmid);
+-static int kgd_init_interrupts(struct kgd_dev *kgd, uint32_t pipe_id);
+-static int kgd_hqd_load(struct kgd_dev *kgd, void *mqd, uint32_t pipe_id,
+- uint32_t queue_id, uint32_t __user *wptr,
+- uint32_t wptr_shift, uint32_t wptr_mask,
+- struct mm_struct *mm);
+-static int kgd_hqd_dump(struct kgd_dev *kgd,
+- uint32_t pipe_id, uint32_t queue_id,
+- uint32_t (**dump)[2], uint32_t *n_regs);
+-static int kgd_hqd_sdma_load(struct kgd_dev *kgd, void *mqd,
+- uint32_t __user *wptr, struct mm_struct *mm);
+-static int kgd_hqd_sdma_dump(struct kgd_dev *kgd,
+- uint32_t engine_id, uint32_t queue_id,
+- uint32_t (**dump)[2], uint32_t *n_regs);
+-static bool kgd_hqd_is_occupied(struct kgd_dev *kgd, uint64_t queue_address,
+- uint32_t pipe_id, uint32_t queue_id);
+-static bool kgd_hqd_sdma_is_occupied(struct kgd_dev *kgd, void *mqd);
+-static int kgd_hqd_destroy(struct kgd_dev *kgd, void *mqd,
+- enum kfd_preempt_type reset_type,
+- unsigned int utimeout, uint32_t pipe_id,
+- uint32_t queue_id);
+-static int kgd_hqd_sdma_destroy(struct kgd_dev *kgd, void *mqd,
+- unsigned int utimeout);
+-#if 0
+-static uint32_t get_watch_base_addr(struct amdgpu_device *adev);
+-#endif
+-static int kgd_address_watch_disable(struct kgd_dev *kgd);
+-static int kgd_address_watch_execute(struct kgd_dev *kgd,
+- unsigned int watch_point_id,
+- uint32_t cntl_val,
+- uint32_t addr_hi,
+- uint32_t addr_lo);
+-static int kgd_wave_control_execute(struct kgd_dev *kgd,
+- uint32_t gfx_index_val,
+- uint32_t sq_cmd);
+-static uint32_t kgd_address_watch_get_offset(struct kgd_dev *kgd,
+- unsigned int watch_point_id,
+- unsigned int reg_offset);
+-
+-static bool get_atc_vmid_pasid_mapping_info(struct kgd_dev *kgd,
+- uint8_t vmid, uint16_t *p_pasid);
+-static void set_vm_context_page_table_base(struct kgd_dev *kgd, uint32_t vmid,
+- uint64_t page_table_base);
+-static int invalidate_tlbs(struct kgd_dev *kgd, uint16_t pasid);
+-static int invalidate_tlbs_vmid(struct kgd_dev *kgd, uint16_t vmid);
+-
+ /* Because of REG_GET_FIELD() being used, we put this function in the
+ * asic specific file.
+ */
+@@ -133,36 +78,6 @@ static int amdgpu_amdkfd_get_tile_config(struct kgd_dev *kgd,
+ return 0;
+ }
+
+-static const struct kfd2kgd_calls kfd2kgd = {
+- .program_sh_mem_settings = kgd_program_sh_mem_settings,
+- .set_pasid_vmid_mapping = kgd_set_pasid_vmid_mapping,
+- .init_interrupts = kgd_init_interrupts,
+- .hqd_load = kgd_hqd_load,
+- .hqd_sdma_load = kgd_hqd_sdma_load,
+- .hqd_dump = kgd_hqd_dump,
+- .hqd_sdma_dump = kgd_hqd_sdma_dump,
+- .hqd_is_occupied = kgd_hqd_is_occupied,
+- .hqd_sdma_is_occupied = kgd_hqd_sdma_is_occupied,
+- .hqd_destroy = kgd_hqd_destroy,
+- .hqd_sdma_destroy = kgd_hqd_sdma_destroy,
+- .address_watch_disable = kgd_address_watch_disable,
+- .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_info =
+- get_atc_vmid_pasid_mapping_info,
+- .get_tile_config = amdgpu_amdkfd_get_tile_config,
+- .set_vm_context_page_table_base = set_vm_context_page_table_base,
+- .invalidate_tlbs = invalidate_tlbs,
+- .invalidate_tlbs_vmid = invalidate_tlbs_vmid,
+- .get_hive_id = amdgpu_amdkfd_get_hive_id,
+-};
+-
+-struct kfd2kgd_calls *amdgpu_amdkfd_gfx_10_0_get_functions()
+-{
+- return (struct kfd2kgd_calls *)&kfd2kgd;
+-}
+-
+ static inline struct amdgpu_device *get_amdgpu_device(struct kgd_dev *kgd)
+ {
+ return (struct amdgpu_device *)kgd;
+@@ -900,3 +815,33 @@ static void set_vm_context_page_table_base(struct kgd_dev *kgd, uint32_t vmid,
+ /* SDMA is on gfxhub as well for Navi1* series */
+ gfxhub_v2_0_setup_vm_pt_regs(adev, vmid, page_table_base);
+ }
++
++static const struct kfd2kgd_calls kfd2kgd = {
++ .program_sh_mem_settings = kgd_program_sh_mem_settings,
++ .set_pasid_vmid_mapping = kgd_set_pasid_vmid_mapping,
++ .init_interrupts = kgd_init_interrupts,
++ .hqd_load = kgd_hqd_load,
++ .hqd_sdma_load = kgd_hqd_sdma_load,
++ .hqd_dump = kgd_hqd_dump,
++ .hqd_sdma_dump = kgd_hqd_sdma_dump,
++ .hqd_is_occupied = kgd_hqd_is_occupied,
++ .hqd_sdma_is_occupied = kgd_hqd_sdma_is_occupied,
++ .hqd_destroy = kgd_hqd_destroy,
++ .hqd_sdma_destroy = kgd_hqd_sdma_destroy,
++ .address_watch_disable = kgd_address_watch_disable,
++ .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_info =
++ get_atc_vmid_pasid_mapping_info,
++ .get_tile_config = amdgpu_amdkfd_get_tile_config,
++ .set_vm_context_page_table_base = set_vm_context_page_table_base,
++ .invalidate_tlbs = invalidate_tlbs,
++ .invalidate_tlbs_vmid = invalidate_tlbs_vmid,
++ .get_hive_id = amdgpu_amdkfd_get_hive_id,
++};
++
++struct kfd2kgd_calls *amdgpu_amdkfd_gfx_10_0_get_functions()
++{
++ return (struct kfd2kgd_calls *)&kfd2kgd;
++}
+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 c5078223fac3..f0ef2e64f592 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
+@@ -87,64 +87,6 @@ union TCP_WATCH_CNTL_BITS {
+ float f32All;
+ };
+
+-/*
+- * Register access functions
+- */
+-
+-static void kgd_program_sh_mem_settings(struct kgd_dev *kgd, uint32_t vmid,
+- uint32_t sh_mem_config, uint32_t sh_mem_ape1_base,
+- uint32_t sh_mem_ape1_limit, uint32_t sh_mem_bases);
+-
+-static int kgd_set_pasid_vmid_mapping(struct kgd_dev *kgd, unsigned int pasid,
+- unsigned int vmid);
+-
+-static int kgd_init_interrupts(struct kgd_dev *kgd, uint32_t pipe_id);
+-static int kgd_hqd_load(struct kgd_dev *kgd, void *mqd, uint32_t pipe_id,
+- uint32_t queue_id, uint32_t __user *wptr,
+- uint32_t wptr_shift, uint32_t wptr_mask,
+- struct mm_struct *mm);
+-static int kgd_hqd_dump(struct kgd_dev *kgd,
+- uint32_t pipe_id, uint32_t queue_id,
+- uint32_t (**dump)[2], uint32_t *n_regs);
+-static int kgd_hqd_sdma_load(struct kgd_dev *kgd, void *mqd,
+- uint32_t __user *wptr, struct mm_struct *mm);
+-static int kgd_hqd_sdma_dump(struct kgd_dev *kgd,
+- uint32_t engine_id, uint32_t queue_id,
+- uint32_t (**dump)[2], uint32_t *n_regs);
+-static bool kgd_hqd_is_occupied(struct kgd_dev *kgd, uint64_t queue_address,
+- uint32_t pipe_id, uint32_t queue_id);
+-
+-static int kgd_hqd_destroy(struct kgd_dev *kgd, void *mqd,
+- enum kfd_preempt_type reset_type,
+- unsigned int utimeout, uint32_t pipe_id,
+- uint32_t queue_id);
+-static bool kgd_hqd_sdma_is_occupied(struct kgd_dev *kgd, void *mqd);
+-static int kgd_hqd_sdma_destroy(struct kgd_dev *kgd, void *mqd,
+- unsigned int utimeout);
+-static int kgd_address_watch_disable(struct kgd_dev *kgd);
+-static int kgd_address_watch_execute(struct kgd_dev *kgd,
+- unsigned int watch_point_id,
+- uint32_t cntl_val,
+- uint32_t addr_hi,
+- uint32_t addr_lo);
+-static int kgd_wave_control_execute(struct kgd_dev *kgd,
+- uint32_t gfx_index_val,
+- uint32_t sq_cmd);
+-static uint32_t kgd_address_watch_get_offset(struct kgd_dev *kgd,
+- unsigned int watch_point_id,
+- unsigned int reg_offset);
+-
+-static bool get_atc_vmid_pasid_mapping_info(struct kgd_dev *kgd,
+- uint8_t vmid, uint16_t *p_pasid);
+-
+-static void set_scratch_backing_va(struct kgd_dev *kgd,
+- uint64_t va, uint32_t vmid);
+-static void set_vm_context_page_table_base(struct kgd_dev *kgd, uint32_t vmid,
+- uint64_t page_table_base);
+-static int invalidate_tlbs(struct kgd_dev *kgd, uint16_t pasid);
+-static int invalidate_tlbs_vmid(struct kgd_dev *kgd, uint16_t vmid);
+-static uint32_t read_vmid_from_vmfault_reg(struct kgd_dev *kgd);
+-
+ /* Because of REG_GET_FIELD() being used, we put this function in the
+ * asic specific file.
+ */
+@@ -170,36 +112,6 @@ static int get_tile_config(struct kgd_dev *kgd,
+ return 0;
+ }
+
+-static const struct kfd2kgd_calls kfd2kgd = {
+- .program_sh_mem_settings = kgd_program_sh_mem_settings,
+- .set_pasid_vmid_mapping = kgd_set_pasid_vmid_mapping,
+- .init_interrupts = kgd_init_interrupts,
+- .hqd_load = kgd_hqd_load,
+- .hqd_sdma_load = kgd_hqd_sdma_load,
+- .hqd_dump = kgd_hqd_dump,
+- .hqd_sdma_dump = kgd_hqd_sdma_dump,
+- .hqd_is_occupied = kgd_hqd_is_occupied,
+- .hqd_sdma_is_occupied = kgd_hqd_sdma_is_occupied,
+- .hqd_destroy = kgd_hqd_destroy,
+- .hqd_sdma_destroy = kgd_hqd_sdma_destroy,
+- .address_watch_disable = kgd_address_watch_disable,
+- .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_info = get_atc_vmid_pasid_mapping_info,
+- .set_scratch_backing_va = set_scratch_backing_va,
+- .get_tile_config = get_tile_config,
+- .set_vm_context_page_table_base = set_vm_context_page_table_base,
+- .invalidate_tlbs = invalidate_tlbs,
+- .invalidate_tlbs_vmid = invalidate_tlbs_vmid,
+- .read_vmid_from_vmfault_reg = read_vmid_from_vmfault_reg,
+-};
+-
+-struct kfd2kgd_calls *amdgpu_amdkfd_gfx_7_get_functions(void)
+-{
+- return (struct kfd2kgd_calls *)&kfd2kgd;
+-}
+-
+ static inline struct amdgpu_device *get_amdgpu_device(struct kgd_dev *kgd)
+ {
+ return (struct amdgpu_device *)kgd;
+@@ -841,3 +753,33 @@ static uint32_t read_vmid_from_vmfault_reg(struct kgd_dev *kgd)
+
+ return REG_GET_FIELD(status, VM_CONTEXT1_PROTECTION_FAULT_STATUS, VMID);
+ }
++
++static const struct kfd2kgd_calls kfd2kgd = {
++ .program_sh_mem_settings = kgd_program_sh_mem_settings,
++ .set_pasid_vmid_mapping = kgd_set_pasid_vmid_mapping,
++ .init_interrupts = kgd_init_interrupts,
++ .hqd_load = kgd_hqd_load,
++ .hqd_sdma_load = kgd_hqd_sdma_load,
++ .hqd_dump = kgd_hqd_dump,
++ .hqd_sdma_dump = kgd_hqd_sdma_dump,
++ .hqd_is_occupied = kgd_hqd_is_occupied,
++ .hqd_sdma_is_occupied = kgd_hqd_sdma_is_occupied,
++ .hqd_destroy = kgd_hqd_destroy,
++ .hqd_sdma_destroy = kgd_hqd_sdma_destroy,
++ .address_watch_disable = kgd_address_watch_disable,
++ .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_info = get_atc_vmid_pasid_mapping_info,
++ .set_scratch_backing_va = set_scratch_backing_va,
++ .get_tile_config = get_tile_config,
++ .set_vm_context_page_table_base = set_vm_context_page_table_base,
++ .invalidate_tlbs = invalidate_tlbs,
++ .invalidate_tlbs_vmid = invalidate_tlbs_vmid,
++ .read_vmid_from_vmfault_reg = read_vmid_from_vmfault_reg,
++};
++
++struct kfd2kgd_calls *amdgpu_amdkfd_gfx_7_get_functions(void)
++{
++ return (struct kfd2kgd_calls *)&kfd2kgd;
++}
+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 fabf0dbb3e69..17a31c1b1272 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c
+@@ -51,60 +51,6 @@ static const uint32_t watchRegs[MAX_WATCH_ADDRESSES * ADDRESS_WATCH_REG_MAX] = {
+ mmTCP_WATCH3_ADDR_H, mmTCP_WATCH3_ADDR_L, mmTCP_WATCH3_CNTL
+ };
+
+-/*
+- * Register access functions
+- */
+-
+-static void kgd_program_sh_mem_settings(struct kgd_dev *kgd, uint32_t vmid,
+- uint32_t sh_mem_config,
+- uint32_t sh_mem_ape1_base, uint32_t sh_mem_ape1_limit,
+- uint32_t sh_mem_bases);
+-static int kgd_set_pasid_vmid_mapping(struct kgd_dev *kgd, unsigned int pasid,
+- unsigned int vmid);
+-static int kgd_init_interrupts(struct kgd_dev *kgd, uint32_t pipe_id);
+-static int kgd_hqd_load(struct kgd_dev *kgd, void *mqd, uint32_t pipe_id,
+- uint32_t queue_id, uint32_t __user *wptr,
+- uint32_t wptr_shift, uint32_t wptr_mask,
+- struct mm_struct *mm);
+-static int kgd_hqd_dump(struct kgd_dev *kgd,
+- uint32_t pipe_id, uint32_t queue_id,
+- uint32_t (**dump)[2], uint32_t *n_regs);
+-static int kgd_hqd_sdma_load(struct kgd_dev *kgd, void *mqd,
+- uint32_t __user *wptr, struct mm_struct *mm);
+-static int kgd_hqd_sdma_dump(struct kgd_dev *kgd,
+- uint32_t engine_id, uint32_t queue_id,
+- uint32_t (**dump)[2], uint32_t *n_regs);
+-static bool kgd_hqd_is_occupied(struct kgd_dev *kgd, uint64_t queue_address,
+- uint32_t pipe_id, uint32_t queue_id);
+-static bool kgd_hqd_sdma_is_occupied(struct kgd_dev *kgd, void *mqd);
+-static int kgd_hqd_destroy(struct kgd_dev *kgd, void *mqd,
+- enum kfd_preempt_type reset_type,
+- unsigned int utimeout, uint32_t pipe_id,
+- uint32_t queue_id);
+-static int kgd_hqd_sdma_destroy(struct kgd_dev *kgd, void *mqd,
+- unsigned int utimeout);
+-static int kgd_address_watch_disable(struct kgd_dev *kgd);
+-static int kgd_address_watch_execute(struct kgd_dev *kgd,
+- unsigned int watch_point_id,
+- uint32_t cntl_val,
+- uint32_t addr_hi,
+- uint32_t addr_lo);
+-static int kgd_wave_control_execute(struct kgd_dev *kgd,
+- uint32_t gfx_index_val,
+- uint32_t sq_cmd);
+-static uint32_t kgd_address_watch_get_offset(struct kgd_dev *kgd,
+- unsigned int watch_point_id,
+- unsigned int reg_offset);
+-
+-static bool get_atc_vmid_pasid_mapping_info(struct kgd_dev *kgd,
+- uint8_t vmid, uint16_t *p_pasid);
+-static void set_scratch_backing_va(struct kgd_dev *kgd,
+- uint64_t va, uint32_t vmid);
+-static void set_vm_context_page_table_base(struct kgd_dev *kgd, uint32_t vmid,
+- uint64_t page_table_base);
+-static int invalidate_tlbs(struct kgd_dev *kgd, uint16_t pasid);
+-static int invalidate_tlbs_vmid(struct kgd_dev *kgd, uint16_t vmid);
+-
+ /* Because of REG_GET_FIELD() being used, we put this function in the
+ * asic specific file.
+ */
+@@ -130,36 +76,6 @@ static int get_tile_config(struct kgd_dev *kgd,
+ return 0;
+ }
+
+-static const struct kfd2kgd_calls kfd2kgd = {
+- .program_sh_mem_settings = kgd_program_sh_mem_settings,
+- .set_pasid_vmid_mapping = kgd_set_pasid_vmid_mapping,
+- .init_interrupts = kgd_init_interrupts,
+- .hqd_load = kgd_hqd_load,
+- .hqd_sdma_load = kgd_hqd_sdma_load,
+- .hqd_dump = kgd_hqd_dump,
+- .hqd_sdma_dump = kgd_hqd_sdma_dump,
+- .hqd_is_occupied = kgd_hqd_is_occupied,
+- .hqd_sdma_is_occupied = kgd_hqd_sdma_is_occupied,
+- .hqd_destroy = kgd_hqd_destroy,
+- .hqd_sdma_destroy = kgd_hqd_sdma_destroy,
+- .address_watch_disable = kgd_address_watch_disable,
+- .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_info =
+- get_atc_vmid_pasid_mapping_info,
+- .set_scratch_backing_va = set_scratch_backing_va,
+- .get_tile_config = get_tile_config,
+- .set_vm_context_page_table_base = set_vm_context_page_table_base,
+- .invalidate_tlbs = invalidate_tlbs,
+- .invalidate_tlbs_vmid = invalidate_tlbs_vmid,
+-};
+-
+-struct kfd2kgd_calls *amdgpu_amdkfd_gfx_8_0_get_functions(void)
+-{
+- return (struct kfd2kgd_calls *)&kfd2kgd;
+-}
+-
+ static inline struct amdgpu_device *get_amdgpu_device(struct kgd_dev *kgd)
+ {
+ return (struct amdgpu_device *)kgd;
+@@ -870,3 +786,33 @@ static int invalidate_tlbs_vmid(struct kgd_dev *kgd, uint16_t vmid)
+ RREG32(mmVM_INVALIDATE_RESPONSE);
+ return 0;
+ }
++
++static const struct kfd2kgd_calls kfd2kgd = {
++ .program_sh_mem_settings = kgd_program_sh_mem_settings,
++ .set_pasid_vmid_mapping = kgd_set_pasid_vmid_mapping,
++ .init_interrupts = kgd_init_interrupts,
++ .hqd_load = kgd_hqd_load,
++ .hqd_sdma_load = kgd_hqd_sdma_load,
++ .hqd_dump = kgd_hqd_dump,
++ .hqd_sdma_dump = kgd_hqd_sdma_dump,
++ .hqd_is_occupied = kgd_hqd_is_occupied,
++ .hqd_sdma_is_occupied = kgd_hqd_sdma_is_occupied,
++ .hqd_destroy = kgd_hqd_destroy,
++ .hqd_sdma_destroy = kgd_hqd_sdma_destroy,
++ .address_watch_disable = kgd_address_watch_disable,
++ .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_info =
++ get_atc_vmid_pasid_mapping_info,
++ .set_scratch_backing_va = set_scratch_backing_va,
++ .get_tile_config = get_tile_config,
++ .set_vm_context_page_table_base = set_vm_context_page_table_base,
++ .invalidate_tlbs = invalidate_tlbs,
++ .invalidate_tlbs_vmid = invalidate_tlbs_vmid,
++};
++
++struct kfd2kgd_calls *amdgpu_amdkfd_gfx_8_0_get_functions(void)
++{
++ return (struct kfd2kgd_calls *)&kfd2kgd;
++}
+--
+2.17.1
+