aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4142-drm-amdkfd-No-longer-support-debug-reg-data-vars.patch
blob: deb670f13d89dd45502224635f3afd7f6e31eb43 (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
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
From 6d39c416f207a26d59b46ecff9aeb6023b29043d Mon Sep 17 00:00:00 2001
From: Philip Cox <Philip.Cox@amd.com>
Date: Wed, 14 Aug 2019 09:05:52 -0400
Subject: [PATCH 4142/4736] drm/amdkfd: No longer support debug reg data vars

The KFD debugger uses data0/data1 for the debug trap handler, we
we need to prevent the them being updated from userspace.

Change-Id: I91086062c744a70a2706050aa35f61014551c5ef
Signed-off-by: Philip Cox <Philip.Cox@amd.com>
---
 .../drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c   |  1 -
 .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c | 22 ----------------
 .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.h |  3 ---
 drivers/gpu/drm/amd/amdkfd/kfd_chardev.c      |  6 -----
 .../gpu/drm/amd/include/kgd_kfd_interface.h   |  3 ---
 include/uapi/linux/kfd_ioctl.h                | 26 +++++++------------
 6 files changed, 9 insertions(+), 52 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c
index db39c6653cce..7288810e0df5 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_arcturus.c
@@ -288,7 +288,6 @@ const struct kfd2kgd_calls arcturus_kfd2kgd = {
 	.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,
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 530b8ada1f8f..dae572c776cc 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c
@@ -845,9 +845,6 @@ uint32_t kgd_gfx_v9_enable_debug_trap(struct kgd_dev *kgd,
 	data = REG_SET_FIELD(data, SPI_GDBG_WAVE_CNTL, STALL_RA, 1);
 	WREG32(SOC15_REG_OFFSET(GC, 0, mmSPI_GDBG_WAVE_CNTL), data);
 
-	WREG32(SOC15_REG_OFFSET(GC, 0, mmSPI_GDBG_TRAP_DATA0), 0);
-	WREG32(SOC15_REG_OFFSET(GC, 0, mmSPI_GDBG_TRAP_DATA1), 0);
-
 	data = 0;
 	WREG32(SOC15_REG_OFFSET(GC, 0, mmSPI_GDBG_TRAP_MASK), data);
 
@@ -864,9 +861,6 @@ uint32_t kgd_gfx_v9_disable_debug_trap(struct kgd_dev *kgd)
 
 	mutex_lock(&adev->grbm_idx_mutex);
 
-	WREG32(SOC15_REG_OFFSET(GC, 0, mmSPI_GDBG_TRAP_DATA0), 0);
-	WREG32(SOC15_REG_OFFSET(GC, 0, mmSPI_GDBG_TRAP_DATA1), 0);
-
 	WREG32(SOC15_REG_OFFSET(GC, 0, mmSPI_GDBG_TRAP_MASK), 0);
 
 	mutex_unlock(&adev->grbm_idx_mutex);
@@ -874,21 +868,6 @@ uint32_t kgd_gfx_v9_disable_debug_trap(struct kgd_dev *kgd)
 	return 0;
 }
 
-uint32_t kgd_gfx_v9_set_debug_trap_data(struct kgd_dev *kgd,
-					int trap_data0,
-					int trap_data1)
-{
-	struct amdgpu_device *adev = get_amdgpu_device(kgd);
-
-	mutex_lock(&adev->grbm_idx_mutex);
-
-	WREG32(SOC15_REG_OFFSET(GC, 0, mmSPI_GDBG_TRAP_DATA0), trap_data0);
-	WREG32(SOC15_REG_OFFSET(GC, 0, mmSPI_GDBG_TRAP_DATA1), trap_data1);
-
-	mutex_unlock(&adev->grbm_idx_mutex);
-	return 0;
-}
-
 uint32_t kgd_gfx_v9_set_wave_launch_trap_override(struct kgd_dev *kgd,
 						uint32_t trap_override,
 						uint32_t trap_mask)
@@ -1037,7 +1016,6 @@ const struct kfd2kgd_calls gfx_v9_kfd2kgd = {
 	.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,
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 7611ba466aa4..2b41d810c68e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.h
@@ -67,9 +67,6 @@ 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);
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
index c60c4480d124..52acb0064939 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
@@ -2763,12 +2763,6 @@ static int kfd_ioctl_dbg_set_debug_trap(struct file *filep,
 		}
 		break;
 
-	case KFD_IOC_DBG_TRAP_SET_TRAP_DATA:
-		r = dev->kfd2kgd->set_debug_trap_data(dev->kgd,
-				data1,
-				data2);
-		break;
-
 	case KFD_IOC_DBG_TRAP_SET_WAVE_LAUNCH_OVERRIDE:
 		r = dev->kfd2kgd->set_wave_launch_trap_override(
 				dev->kgd,
diff --git a/drivers/gpu/drm/amd/include/kgd_kfd_interface.h b/drivers/gpu/drm/amd/include/kgd_kfd_interface.h
index db00c2ec9277..975961a298d9 100644
--- a/drivers/gpu/drm/amd/include/kgd_kfd_interface.h
+++ b/drivers/gpu/drm/amd/include/kgd_kfd_interface.h
@@ -327,9 +327,6 @@ struct kfd2kgd_calls {
 					uint32_t trap_debug_wave_launch_mode,
 					uint32_t vmid);
 	uint32_t (*disable_debug_trap)(struct kgd_dev *kgd);
-	uint32_t (*set_debug_trap_data)(struct kgd_dev *kgd,
-					int trap_data0,
-					int trap_data1);
 	uint32_t (*set_wave_launch_trap_override)(struct kgd_dev *kgd,
 						uint32_t trap_override,
 						uint32_t trap_mask);
diff --git a/include/uapi/linux/kfd_ioctl.h b/include/uapi/linux/kfd_ioctl.h
index 8c9a5ab34d9e..760b3d6159fa 100644
--- a/include/uapi/linux/kfd_ioctl.h
+++ b/include/uapi/linux/kfd_ioctl.h
@@ -28,8 +28,8 @@
 
 #define KFD_IOCTL_MAJOR_VERSION 1
 #define KFD_IOCTL_MINOR_VERSION 2
-#define KFD_IOCTL_DBG_MAJOR_VERSION	0
-#define KFD_IOCTL_DBG_MINOR_VERSION	2
+#define KFD_IOCTL_DBG_MAJOR_VERSION	1
+#define KFD_IOCTL_DBG_MINOR_VERSION	0
 
 struct kfd_ioctl_get_version_args {
 	__u32 major_version;	/* from KFD */
@@ -219,21 +219,13 @@ struct kfd_ioctl_dbg_wave_control_args {
  */
 #define KFD_IOC_DBG_TRAP_ENABLE 0
 
-/* KFD_IOC_DBG_TRAP_SET_TRAP_DATA:
- * ptr:   unused
- * data1: SPI_GDBG_TRAP_DATA0
- * data2: SPI_GDBG_TRAP_DATA1
- * data3: unused
- */
-#define KFD_IOC_DBG_TRAP_SET_TRAP_DATA 1
-
 /* KFD_IOC_DBG_TRAP_SET_WAVE_LAUNCH_OVERRIDE:
  * ptr:   unused
  * data1: override mode: 0=OR, 1=REPLACE
  * data2: mask
  * data3: unused
  */
-#define KFD_IOC_DBG_TRAP_SET_WAVE_LAUNCH_OVERRIDE 2
+#define KFD_IOC_DBG_TRAP_SET_WAVE_LAUNCH_OVERRIDE 1
 
 /* KFD_IOC_DBG_TRAP_SET_WAVE_LAUNCH_MODE:
  * ptr:   unused
@@ -241,7 +233,7 @@ struct kfd_ioctl_dbg_wave_control_args {
  * data2: unused
  * data3: unused
  */
-#define KFD_IOC_DBG_TRAP_SET_WAVE_LAUNCH_MODE 3
+#define KFD_IOC_DBG_TRAP_SET_WAVE_LAUNCH_MODE 2
 
 /* KFD_IOC_DBG_TRAP_NODE_SUSPEND:
  * ptr:   pointer to an array of Queues IDs
@@ -249,7 +241,7 @@ struct kfd_ioctl_dbg_wave_control_args {
  * data2: number of queues
  * data3: grace period
  */
-#define KFD_IOC_DBG_TRAP_NODE_SUSPEND 4
+#define KFD_IOC_DBG_TRAP_NODE_SUSPEND 3
 
 /* KFD_IOC_DBG_TRAP_NODE_RESUME:
  * ptr:   pointer to an array of Queues IDs
@@ -257,7 +249,7 @@ struct kfd_ioctl_dbg_wave_control_args {
  * data2: number of queues
  * data3: unused
  */
-#define KFD_IOC_DBG_TRAP_NODE_RESUME 5
+#define KFD_IOC_DBG_TRAP_NODE_RESUME 4
 
 /* KFD_IOC_DBG_TRAP_QUERY_DEBUG_EVENT:
  * ptr: unused
@@ -265,7 +257,7 @@ struct kfd_ioctl_dbg_wave_control_args {
  * data2: flags (IN)
  * data3: suspend[2:2], event type [1:0] (OUT)
  */
-#define KFD_IOC_DBG_TRAP_QUERY_DEBUG_EVENT 6
+#define KFD_IOC_DBG_TRAP_QUERY_DEBUG_EVENT 5
 
 /* KFD_IOC_DBG_TRAP_GET_QUEUE_SNAPSHOT:
  * ptr: user buffer (IN)
@@ -273,7 +265,7 @@ struct kfd_ioctl_dbg_wave_control_args {
  * data2: number of queue snapshots (IN/OUT) - 0 for IN ignores buffer writes
  * data3: unused
  */
-#define KFD_IOC_DBG_TRAP_GET_QUEUE_SNAPSHOT 7
+#define KFD_IOC_DBG_TRAP_GET_QUEUE_SNAPSHOT 6
 
 /* KFD_IOC_DBG_TRAP_GET_VERSION:
  * prt: unsused
@@ -281,7 +273,7 @@ struct kfd_ioctl_dbg_wave_control_args {
  * data2: minor version (OUT)
  * data3: unused
  */
-#define KFD_IOC_DBG_TRAP_GET_VERSION	8
+#define KFD_IOC_DBG_TRAP_GET_VERSION	7
 
 struct kfd_ioctl_dbg_trap_args {
 	__u64 ptr;     /* to KFD -- used for pointer arguments: queue arrays */
-- 
2.17.1