Lines Matching full:va

66  * struct drm_gpuva - structure to track a GPU VA mapping
68 * This structure represents a GPU VA mapping and is associated with a
91 * @va: structure containing the address and range of the &drm_gpuva
95 * @va.addr: the start address
103 } va; member
150 int drm_gpuva_insert(struct drm_gpuvm *gpuvm, struct drm_gpuva *va);
151 void drm_gpuva_remove(struct drm_gpuva *va);
153 void drm_gpuva_link(struct drm_gpuva *va, struct drm_gpuvm_bo *vm_bo);
154 void drm_gpuva_unlink(struct drm_gpuva *va);
163 static inline void drm_gpuva_init(struct drm_gpuva *va, u64 addr, u64 range, in drm_gpuva_init() argument
166 va->va.addr = addr; in drm_gpuva_init()
167 va->va.range = range; in drm_gpuva_init()
168 va->gem.obj = obj; in drm_gpuva_init()
169 va->gem.offset = offset; in drm_gpuva_init()
175 * @va: the &drm_gpuva to set the invalidate flag for
178 static inline void drm_gpuva_invalidate(struct drm_gpuva *va, bool invalidate) in drm_gpuva_invalidate() argument
181 va->flags |= DRM_GPUVA_INVALIDATED; in drm_gpuva_invalidate()
183 va->flags &= ~DRM_GPUVA_INVALIDATED; in drm_gpuva_invalidate()
189 * @va: the &drm_gpuva to check
191 * Returns: %true if the GPU VA is invalidated, %false otherwise
193 static inline bool drm_gpuva_invalidated(struct drm_gpuva *va) in drm_gpuva_invalidated() argument
195 return va->flags & DRM_GPUVA_INVALIDATED; in drm_gpuva_invalidated()
215 * struct drm_gpuvm - DRM GPU VA Manager
217 * The DRM GPU VA Manager keeps track of a GPU's virtual address space by using
228 * @name: the name of the DRM GPU VA space
243 * @mm_start: start of the VA space
248 * @mm_range: length of the VA space
257 * @rb.tree: the rb-tree to track GPU VA mappings
262 * @rb.list: the &list_head to track GPU VA mappings
428 __drm_gpuva_next(struct drm_gpuva *va) in __drm_gpuva_next() argument
430 if (va && !list_is_last(&va->rb.entry, &va->vm->rb.list)) in __drm_gpuva_next()
431 return list_next_entry(va, rb.entry); in __drm_gpuva_next()
454 va__ && (va__->va.addr < (end__)); \
478 va__ && (va__->va.addr < (end__)); \
791 * enum drm_gpuva_op_type - GPU VA operation type
793 * Operations to alter the GPU VA mappings tracked by the &drm_gpuvm.
818 * struct drm_gpuva_op_map - GPU VA map operation
821 * DRM GPU VA manager.
825 * @va: structure containing address and range of a map
830 * @va.addr: the base address of the new mapping
835 * @va.range: the range of the new mapping
838 } va; member
857 * struct drm_gpuva_op_unmap - GPU VA unmap operation
860 * DRM GPU VA manager.
864 * @va: the &drm_gpuva to unmap
866 struct drm_gpuva *va; member
882 * struct drm_gpuva_op_remap - GPU VA remap operation
884 * This represents a single remap operation generated by the DRM GPU VA manager.
886 * A remap operation is generated when an existing GPU VA mmapping is split up
887 * by inserting a new GPU VA mapping or by partially unmapping existent
922 * struct drm_gpuva_op_prefetch - GPU VA prefetch operation
925 * DRM GPU VA manager.
929 * @va: the &drm_gpuva to prefetch
931 struct drm_gpuva *va; member
935 * struct drm_gpuva_op - GPU VA operation
1074 static inline void drm_gpuva_init_from_op(struct drm_gpuva *va, in drm_gpuva_init_from_op() argument
1077 drm_gpuva_init(va, op->va.addr, op->va.range, in drm_gpuva_init_from_op()
1210 struct drm_gpuva *va,
1235 op->prev->va.addr + op->prev->va.range : in drm_gpuva_op_remap_to_unmap_range()
1236 op->unmap->va->va.addr; in drm_gpuva_op_remap_to_unmap_range()
1238 op->next->va.addr : in drm_gpuva_op_remap_to_unmap_range()
1239 op->unmap->va->va.addr + op->unmap->va->va.range; in drm_gpuva_op_remap_to_unmap_range()