aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3480-drm-amdkfd-fix-kfd-SWDEV-200283-test-issue.patch
diff options
context:
space:
mode:
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.patch172
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
+