aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3480-drm-amdkfd-fix-kfd-SWDEV-200283-test-issue.patch
blob: ca127d362d812c58333465035980be3aafde94c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
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