hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/drivers/rknpu/include/rknpu_gem.h
....@@ -48,6 +48,7 @@
4848 unsigned int flags;
4949 unsigned long size;
5050 unsigned long sram_size;
51
+ unsigned long nbuf_size;
5152 struct rknpu_mm_obj *sram_obj;
5253 dma_addr_t iova_start;
5354 unsigned long iova_size;
....@@ -59,6 +60,11 @@
5960 struct page **pages;
6061 struct sg_table *sgt;
6162 struct drm_mm_node mm_node;
63
+};
64
+
65
+enum rknpu_cache_type {
66
+ RKNPU_CACHE_SRAM = 1 << 0,
67
+ RKNPU_CACHE_NBUF = 1 << 1,
6268 };
6369
6470 /* create a new buffer with gem object */
....@@ -157,6 +163,8 @@
157163 int rknpu_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf);
158164 #endif
159165
166
+int rknpu_gem_mmap_obj(struct drm_gem_object *obj, struct vm_area_struct *vma);
167
+
160168 /* set vm_flags and we can change the vm attribute to other one at here. */
161169 int rknpu_gem_mmap(struct file *filp, struct vm_area_struct *vma);
162170
....@@ -170,8 +178,13 @@
170178 rknpu_gem_prime_import_sg_table(struct drm_device *dev,
171179 struct dma_buf_attachment *attach,
172180 struct sg_table *sgt);
181
+#if KERNEL_VERSION(6, 1, 0) > LINUX_VERSION_CODE
173182 void *rknpu_gem_prime_vmap(struct drm_gem_object *obj);
174183 void rknpu_gem_prime_vunmap(struct drm_gem_object *obj, void *vaddr);
184
+#else
185
+int rknpu_gem_prime_vmap(struct drm_gem_object *obj, struct iosys_map *map);
186
+void rknpu_gem_prime_vunmap(struct drm_gem_object *obj, struct iosys_map *map);
187
+#endif
175188 int rknpu_gem_prime_mmap(struct drm_gem_object *obj,
176189 struct vm_area_struct *vma);
177190