.. | .. |
---|
48 | 48 | unsigned int flags; |
---|
49 | 49 | unsigned long size; |
---|
50 | 50 | unsigned long sram_size; |
---|
| 51 | + unsigned long nbuf_size; |
---|
51 | 52 | struct rknpu_mm_obj *sram_obj; |
---|
52 | 53 | dma_addr_t iova_start; |
---|
53 | 54 | unsigned long iova_size; |
---|
.. | .. |
---|
59 | 60 | struct page **pages; |
---|
60 | 61 | struct sg_table *sgt; |
---|
61 | 62 | 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, |
---|
62 | 68 | }; |
---|
63 | 69 | |
---|
64 | 70 | /* create a new buffer with gem object */ |
---|
.. | .. |
---|
157 | 163 | int rknpu_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf); |
---|
158 | 164 | #endif |
---|
159 | 165 | |
---|
| 166 | +int rknpu_gem_mmap_obj(struct drm_gem_object *obj, struct vm_area_struct *vma); |
---|
| 167 | + |
---|
160 | 168 | /* set vm_flags and we can change the vm attribute to other one at here. */ |
---|
161 | 169 | int rknpu_gem_mmap(struct file *filp, struct vm_area_struct *vma); |
---|
162 | 170 | |
---|
.. | .. |
---|
170 | 178 | rknpu_gem_prime_import_sg_table(struct drm_device *dev, |
---|
171 | 179 | struct dma_buf_attachment *attach, |
---|
172 | 180 | struct sg_table *sgt); |
---|
| 181 | +#if KERNEL_VERSION(6, 1, 0) > LINUX_VERSION_CODE |
---|
173 | 182 | void *rknpu_gem_prime_vmap(struct drm_gem_object *obj); |
---|
174 | 183 | 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 |
---|
175 | 188 | int rknpu_gem_prime_mmap(struct drm_gem_object *obj, |
---|
176 | 189 | struct vm_area_struct *vma); |
---|
177 | 190 | |
---|