forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-11 04dd17822334871b23ea2862f7798fb0e0007777
kernel/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c
....@@ -288,6 +288,19 @@
288288 return nvkm_memory_addr(nv50_instobj(memory)->ram);
289289 }
290290
291
+static u64
292
+nv50_instobj_bar2(struct nvkm_memory *memory)
293
+{
294
+ struct nv50_instobj *iobj = nv50_instobj(memory);
295
+ u64 addr = ~0ULL;
296
+ if (nv50_instobj_acquire(&iobj->base.memory)) {
297
+ iobj->lru.next = NULL; /* Exclude from eviction. */
298
+ addr = iobj->bar->addr;
299
+ }
300
+ nv50_instobj_release(&iobj->base.memory);
301
+ return addr;
302
+}
303
+
291304 static enum nvkm_memory_target
292305 nv50_instobj_target(struct nvkm_memory *memory)
293306 {
....@@ -325,8 +338,9 @@
325338 nv50_instobj_func = {
326339 .dtor = nv50_instobj_dtor,
327340 .target = nv50_instobj_target,
328
- .size = nv50_instobj_size,
341
+ .bar2 = nv50_instobj_bar2,
329342 .addr = nv50_instobj_addr,
343
+ .size = nv50_instobj_size,
330344 .boot = nv50_instobj_boot,
331345 .acquire = nv50_instobj_acquire,
332346 .release = nv50_instobj_release,