diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3480-drm-amdkfd-fix-kfd-SWDEV-200283-test-issue.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3480-drm-amdkfd-fix-kfd-SWDEV-200283-test-issue.patch | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3480-drm-amdkfd-fix-kfd-SWDEV-200283-test-issue.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3480-drm-amdkfd-fix-kfd-SWDEV-200283-test-issue.patch new file mode 100644 index 00000000..ca127d36 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3480-drm-amdkfd-fix-kfd-SWDEV-200283-test-issue.patch @@ -0,0 +1,172 @@ +From 423eb437f13dab64aec713218132b7f4972e5ab5 Mon Sep 17 00:00:00 2001 +From: changzhu <Changfeng.Zhu@amd.com> +Date: Tue, 20 Aug 2019 19:13:46 +0800 +Subject: [PATCH 3480/4256] drm/amdkfd: fix kfd SWDEV-200283 test issue + +Change-Id: I4db96b1e066b62d83cc2d83553a09bf24ad1a369 +Signed-off-by: changzhu <Changfeng.Zhu@amd.com> +Reviewed-by: Le Ma <Le.Ma@amd.com> +--- + .../drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c | 7 +++++ + .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c | 27 ++++++++++--------- + .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.h | 20 ++++++++++++++ + include/uapi/linux/kfd_ioctl.h | 3 --- + 4 files changed, 41 insertions(+), 16 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c +index 4d9101834ba7..7ef62f62abf9 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c +@@ -315,6 +315,13 @@ static const struct kfd2kgd_calls kfd2kgd = { + .invalidate_tlbs = kgd_gfx_v9_invalidate_tlbs, + .invalidate_tlbs_vmid = kgd_gfx_v9_invalidate_tlbs_vmid, + .get_hive_id = amdgpu_amdkfd_get_hive_id, ++ .enable_debug_trap = kgd_gfx_v9_enable_debug_trap, ++ .disable_debug_trap = kgd_gfx_v9_disable_debug_trap, ++ .set_debug_trap_data = kgd_gfx_v9_set_debug_trap_data, ++ .set_wave_launch_trap_override = kgd_gfx_v9_set_wave_launch_trap_override, ++ .set_wave_launch_mode = kgd_gfx_v9_set_wave_launch_mode, ++ .get_iq_wait_times = kgd_gfx_v9_get_iq_wait_times, ++ .build_grace_period_packet_info = kgd_gfx_v9_build_grace_period_packet_info, + }; + + struct kfd2kgd_calls *amdgpu_amdkfd_arcturus_get_functions(void) +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c +index c98b57a5e9b2..8d80e6b7d684 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c +@@ -68,12 +68,6 @@ static const uint32_t watchRegs[MAX_WATCH_ADDRESSES * ADDRESS_WATCH_REG_MAX] = { + mmTCP_WATCH3_ADDR_H, mmTCP_WATCH3_ADDR_L, mmTCP_WATCH3_CNTL + }; + +-static void kgd_build_grace_period_packet_info(struct kgd_dev *kgd, +- uint32_t wait_times, +- uint32_t grace_period, +- uint32_t *reg_offset, +- uint32_t *reg_data); +- + /* Because of REG_GET_FIELD() being used, we put this function in the + * asic specific file. + */ +@@ -842,7 +836,7 @@ uint32_t kgd_gfx_v9_address_watch_get_offset(struct kgd_dev *kgd, + watchRegs[watch_point_id * ADDRESS_WATCH_REG_MAX + reg_offset]; + } + +-static uint32_t kgd_enable_debug_trap(struct kgd_dev *kgd, ++uint32_t kgd_gfx_v9_enable_debug_trap(struct kgd_dev *kgd, + uint32_t trap_debug_wave_launch_mode, + uint32_t vmid) + { +@@ -876,7 +870,7 @@ static uint32_t kgd_enable_debug_trap(struct kgd_dev *kgd, + return 0; + } + +-static uint32_t kgd_disable_debug_trap(struct kgd_dev *kgd) ++uint32_t kgd_gfx_v9_disable_debug_trap(struct kgd_dev *kgd) + { + struct amdgpu_device *adev = get_amdgpu_device(kgd); + +@@ -892,7 +886,7 @@ static uint32_t kgd_disable_debug_trap(struct kgd_dev *kgd) + return 0; + } + +-static uint32_t kgd_set_debug_trap_data(struct kgd_dev *kgd, ++uint32_t kgd_gfx_v9_set_debug_trap_data(struct kgd_dev *kgd, + int trap_data0, + int trap_data1) + { +@@ -907,7 +901,7 @@ static uint32_t kgd_set_debug_trap_data(struct kgd_dev *kgd, + return 0; + } + +-static uint32_t kgd_set_wave_launch_trap_override(struct kgd_dev *kgd, ++uint32_t kgd_gfx_v9_set_wave_launch_trap_override(struct kgd_dev *kgd, + uint32_t trap_override, + uint32_t trap_mask) + { +@@ -936,7 +930,7 @@ static uint32_t kgd_set_wave_launch_trap_override(struct kgd_dev *kgd, + return 0; + } + +-static uint32_t kgd_set_wave_launch_mode(struct kgd_dev *kgd, ++uint32_t kgd_gfx_v9_set_wave_launch_mode(struct kgd_dev *kgd, + uint8_t wave_launch_mode, + uint32_t vmid) + { +@@ -980,7 +974,7 @@ static uint32_t kgd_set_wave_launch_mode(struct kgd_dev *kgd, + * sem_rearm_wait_time -- Wait Count for Semaphore re-arm. + * deq_retry_wait_time -- Wait Count for Global Wave Syncs. + */ +-static void kgd_get_iq_wait_times(struct kgd_dev *kgd, ++void kgd_gfx_v9_get_iq_wait_times(struct kgd_dev *kgd, + uint32_t *wait_times) + + { +@@ -1023,7 +1017,7 @@ void kgd_gfx_v9_set_vm_context_page_table_base(struct kgd_dev *kgd, uint32_t vmi + gfxhub_v1_0_setup_vm_pt_regs(adev, vmid, page_table_base); + } + +-static void kgd_build_grace_period_packet_info(struct kgd_dev *kgd, ++void kgd_gfx_v9_build_grace_period_packet_info(struct kgd_dev *kgd, + uint32_t wait_times, + uint32_t grace_period, + uint32_t *reg_offset, +@@ -1065,6 +1059,13 @@ static const struct kfd2kgd_calls kfd2kgd = { + .invalidate_tlbs = kgd_gfx_v9_invalidate_tlbs, + .invalidate_tlbs_vmid = kgd_gfx_v9_invalidate_tlbs_vmid, + .get_hive_id = amdgpu_amdkfd_get_hive_id, ++ .enable_debug_trap = kgd_gfx_v9_enable_debug_trap, ++ .disable_debug_trap = kgd_gfx_v9_disable_debug_trap, ++ .set_debug_trap_data = kgd_gfx_v9_set_debug_trap_data, ++ .set_wave_launch_trap_override = kgd_gfx_v9_set_wave_launch_trap_override, ++ .set_wave_launch_mode = kgd_gfx_v9_set_wave_launch_mode, ++ .get_iq_wait_times = kgd_gfx_v9_get_iq_wait_times, ++ .build_grace_period_packet_info = kgd_gfx_v9_build_grace_period_packet_info, + }; + + struct kfd2kgd_calls *amdgpu_amdkfd_gfx_9_0_get_functions(void) +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.h +index 26d8879bff9d..a1c5789b5c36 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.h ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.h +@@ -67,3 +67,23 @@ int kgd_gfx_v9_invalidate_tlbs(struct kgd_dev *kgd, uint16_t pasid); + int kgd_gfx_v9_invalidate_tlbs_vmid(struct kgd_dev *kgd, uint16_t vmid); + int kgd_gfx_v9_get_tile_config(struct kgd_dev *kgd, + struct tile_config *config); ++uint32_t kgd_gfx_v9_enable_debug_trap(struct kgd_dev *kgd, ++ uint32_t trap_debug_wave_launch_mode, ++ uint32_t vmid); ++uint32_t kgd_gfx_v9_disable_debug_trap(struct kgd_dev *kgd); ++uint32_t kgd_gfx_v9_set_debug_trap_data(struct kgd_dev *kgd, ++ int trap_data0, ++ int trap_data1); ++uint32_t kgd_gfx_v9_set_wave_launch_trap_override(struct kgd_dev *kgd, ++ uint32_t trap_override, ++ uint32_t trap_mask); ++uint32_t kgd_gfx_v9_set_wave_launch_mode(struct kgd_dev *kgd, ++ uint8_t wave_launch_mode, ++ uint32_t vmid); ++void kgd_gfx_v9_get_iq_wait_times(struct kgd_dev *kgd, ++ uint32_t *wait_times); ++void kgd_gfx_v9_build_grace_period_packet_info(struct kgd_dev *kgd, ++ uint32_t wait_times, ++ uint32_t grace_period, ++ uint32_t *reg_offset, ++ uint32_t *reg_data); +diff --git a/include/uapi/linux/kfd_ioctl.h b/include/uapi/linux/kfd_ioctl.h +index 617c07047d55..42551e2c6d59 100644 +--- a/include/uapi/linux/kfd_ioctl.h ++++ b/include/uapi/linux/kfd_ioctl.h +@@ -679,9 +679,6 @@ struct kfd_ioctl_cross_memory_copy_args { + #define AMDKFD_IOC_CROSS_MEMORY_COPY \ + AMDKFD_IOWR(0x22, struct kfd_ioctl_cross_memory_copy_args) + +-#define AMDKFD_IOC_DBG_TRAP \ +- AMDKFD_IOW(0x21, struct kfd_ioctl_dbg_trap_args) +- + #define AMDKFD_COMMAND_START 0x01 + #define AMDKFD_COMMAND_END 0x23 + +-- +2.17.1 + |