forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-11 04dd17822334871b23ea2862f7798fb0e0007777
kernel/drivers/gpu/drm/nouveau/include/nvkm/core/memory.h
....@@ -1,4 +1,4 @@
1
-/* SPDX-License-Identifier: GPL-2.0 */
1
+/* SPDX-License-Identifier: MIT */
22 #ifndef __NVKM_MEMORY_H__
33 #define __NVKM_MEMORY_H__
44 #include <core/os.h>
....@@ -29,6 +29,7 @@
2929 void *(*dtor)(struct nvkm_memory *);
3030 enum nvkm_memory_target (*target)(struct nvkm_memory *);
3131 u8 (*page)(struct nvkm_memory *);
32
+ u64 (*bar2)(struct nvkm_memory *);
3233 u64 (*addr)(struct nvkm_memory *);
3334 u64 (*size)(struct nvkm_memory *);
3435 void (*boot)(struct nvkm_memory *, struct nvkm_vmm *);
....@@ -56,6 +57,7 @@
5657
5758 #define nvkm_memory_target(p) (p)->func->target(p)
5859 #define nvkm_memory_page(p) (p)->func->page(p)
60
+#define nvkm_memory_bar2(p) (p)->func->bar2(p)
5961 #define nvkm_memory_addr(p) (p)->func->addr(p)
6062 #define nvkm_memory_size(p) (p)->func->size(p)
6163 #define nvkm_memory_boot(p,v) (p)->func->boot((p),(v))
....@@ -82,6 +84,22 @@
8284 nvkm_wo32((o), __a + 4, upper_32_bits(__d)); \
8385 } while(0)
8486
87
+#define nvkm_robj(o,a,p,s) do { \
88
+ u32 _addr = (a), _size = (s) >> 2, *_data = (void *)(p); \
89
+ while (_size--) { \
90
+ *(_data++) = nvkm_ro32((o), _addr); \
91
+ _addr += 4; \
92
+ } \
93
+} while(0)
94
+
95
+#define nvkm_wobj(o,a,p,s) do { \
96
+ u32 _addr = (a), _size = (s) >> 2, *_data = (void *)(p); \
97
+ while (_size--) { \
98
+ nvkm_wo32((o), _addr, *(_data++)); \
99
+ _addr += 4; \
100
+ } \
101
+} while(0)
102
+
85103 #define nvkm_fill(t,s,o,a,d,c) do { \
86104 u64 _a = (a), _c = (c), _d = (d), _o = _a >> s, _s = _c << s; \
87105 u##t __iomem *_m = nvkm_kmap(o); \