forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/drivers/gpu/drm/i915/gvt/debugfs.c
....@@ -58,16 +58,15 @@
5858 static inline int mmio_diff_handler(struct intel_gvt *gvt,
5959 u32 offset, void *data)
6060 {
61
- struct drm_i915_private *dev_priv = gvt->dev_priv;
6261 struct mmio_diff_param *param = data;
6362 struct diff_mmio *node;
6463 u32 preg, vreg;
6564
66
- preg = I915_READ_NOTRACE(_MMIO(offset));
65
+ preg = intel_uncore_read_notrace(gvt->gt->uncore, _MMIO(offset));
6766 vreg = vgpu_vreg(param->vgpu, offset);
6867
6968 if (preg != vreg) {
70
- node = kmalloc(sizeof(*node), GFP_KERNEL);
69
+ node = kmalloc(sizeof(*node), GFP_ATOMIC);
7170 if (!node)
7271 return -ENOMEM;
7372
....@@ -98,10 +97,10 @@
9897 mutex_lock(&gvt->lock);
9998 spin_lock_bh(&gvt->scheduler.mmio_context_lock);
10099
101
- mmio_hw_access_pre(gvt->dev_priv);
100
+ mmio_hw_access_pre(gvt->gt);
102101 /* Recognize all the diff mmios to list. */
103102 intel_gvt_for_each_tracked_mmio(gvt, mmio_diff_handler, &param);
104
- mmio_hw_access_post(gvt->dev_priv);
103
+ mmio_hw_access_post(gvt->gt);
105104
106105 spin_unlock_bh(&gvt->scheduler.mmio_context_lock);
107106 mutex_unlock(&gvt->lock);
....@@ -128,6 +127,7 @@
128127 vgpu_scan_nonprivbb_get(void *data, u64 *val)
129128 {
130129 struct intel_vgpu *vgpu = (struct intel_vgpu *)data;
130
+
131131 *val = vgpu->scan_nonprivbb;
132132 return 0;
133133 }
....@@ -142,42 +142,7 @@
142142 vgpu_scan_nonprivbb_set(void *data, u64 val)
143143 {
144144 struct intel_vgpu *vgpu = (struct intel_vgpu *)data;
145
- struct drm_i915_private *dev_priv = vgpu->gvt->dev_priv;
146
- enum intel_engine_id id;
147
- char buf[128], *s;
148
- int len;
149145
150
- val &= (1 << I915_NUM_ENGINES) - 1;
151
-
152
- if (vgpu->scan_nonprivbb == val)
153
- return 0;
154
-
155
- if (!val)
156
- goto done;
157
-
158
- len = sprintf(buf,
159
- "gvt: vgpu %d turns on non-privileged batch buffers scanning on Engines:",
160
- vgpu->id);
161
-
162
- s = buf + len;
163
-
164
- for (id = 0; id < I915_NUM_ENGINES; id++) {
165
- struct intel_engine_cs *engine;
166
-
167
- engine = dev_priv->engine[id];
168
- if (engine && (val & (1 << id))) {
169
- len = snprintf(s, 4, "%d, ", engine->id);
170
- s += len;
171
- } else
172
- val &= ~(1 << id);
173
- }
174
-
175
- if (val)
176
- sprintf(s, "low performance expected.");
177
-
178
- pr_warn("%s\n", buf);
179
-
180
-done:
181146 vgpu->scan_nonprivbb = val;
182147 return 0;
183148 }
....@@ -189,36 +154,19 @@
189154 /**
190155 * intel_gvt_debugfs_add_vgpu - register debugfs entries for a vGPU
191156 * @vgpu: a vGPU
192
- *
193
- * Returns:
194
- * Zero on success, negative error code if failed.
195157 */
196
-int intel_gvt_debugfs_add_vgpu(struct intel_vgpu *vgpu)
158
+void intel_gvt_debugfs_add_vgpu(struct intel_vgpu *vgpu)
197159 {
198
- struct dentry *ent;
199
- char name[10] = "";
160
+ char name[16] = "";
200161
201
- sprintf(name, "vgpu%d", vgpu->id);
162
+ snprintf(name, 16, "vgpu%d", vgpu->id);
202163 vgpu->debugfs = debugfs_create_dir(name, vgpu->gvt->debugfs_root);
203
- if (!vgpu->debugfs)
204
- return -ENOMEM;
205164
206
- ent = debugfs_create_bool("active", 0444, vgpu->debugfs,
207
- &vgpu->active);
208
- if (!ent)
209
- return -ENOMEM;
210
-
211
- ent = debugfs_create_file("mmio_diff", 0444, vgpu->debugfs,
212
- vgpu, &vgpu_mmio_diff_fops);
213
- if (!ent)
214
- return -ENOMEM;
215
-
216
- ent = debugfs_create_file("scan_nonprivbb", 0644, vgpu->debugfs,
217
- vgpu, &vgpu_scan_nonprivbb_fops);
218
- if (!ent)
219
- return -ENOMEM;
220
-
221
- return 0;
165
+ debugfs_create_bool("active", 0444, vgpu->debugfs, &vgpu->active);
166
+ debugfs_create_file("mmio_diff", 0444, vgpu->debugfs, vgpu,
167
+ &vgpu_mmio_diff_fops);
168
+ debugfs_create_file("scan_nonprivbb", 0644, vgpu->debugfs, vgpu,
169
+ &vgpu_scan_nonprivbb_fops);
222170 }
223171
224172 /**
....@@ -234,27 +182,15 @@
234182 /**
235183 * intel_gvt_debugfs_init - register gvt debugfs root entry
236184 * @gvt: GVT device
237
- *
238
- * Returns:
239
- * zero on success, negative if failed.
240185 */
241
-int intel_gvt_debugfs_init(struct intel_gvt *gvt)
186
+void intel_gvt_debugfs_init(struct intel_gvt *gvt)
242187 {
243
- struct drm_minor *minor = gvt->dev_priv->drm.primary;
244
- struct dentry *ent;
188
+ struct drm_minor *minor = gvt->gt->i915->drm.primary;
245189
246190 gvt->debugfs_root = debugfs_create_dir("gvt", minor->debugfs_root);
247
- if (!gvt->debugfs_root) {
248
- gvt_err("Cannot create debugfs dir\n");
249
- return -ENOMEM;
250
- }
251191
252
- ent = debugfs_create_ulong("num_tracked_mmio", 0444, gvt->debugfs_root,
253
- &gvt->mmio.num_tracked_mmio);
254
- if (!ent)
255
- return -ENOMEM;
256
-
257
- return 0;
192
+ debugfs_create_ulong("num_tracked_mmio", 0444, gvt->debugfs_root,
193
+ &gvt->mmio.num_tracked_mmio);
258194 }
259195
260196 /**