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);
166 * @va: the &drm_gpuva to set the invalidate flag for
169 static inline void drm_gpuva_invalidate(struct drm_gpuva *va, bool invalidate) in drm_gpuva_invalidate() argument
172 va->flags |= DRM_GPUVA_INVALIDATED; in drm_gpuva_invalidate()
174 va->flags &= ~DRM_GPUVA_INVALIDATED; in drm_gpuva_invalidate()
180 * @va: the &drm_gpuva to check
182 * Returns: %true if the GPU VA is invalidated, %false otherwise
184 static inline bool drm_gpuva_invalidated(struct drm_gpuva *va) in drm_gpuva_invalidated() argument
186 return va->flags & DRM_GPUVA_INVALIDATED; in drm_gpuva_invalidated()
216 * struct drm_gpuvm - DRM GPU VA Manager
218 * The DRM GPU VA Manager keeps track of a GPU's virtual address space by using
229 * @name: the name of the DRM GPU VA space
244 * @mm_start: start of the VA space
249 * @mm_range: length of the VA space
258 * @rb.tree: the rb-tree to track GPU VA mappings
263 * @rb.list: the &list_head to track GPU VA mappings
442 __drm_gpuva_next(struct drm_gpuva *va) in __drm_gpuva_next() argument
444 if (va && !list_is_last(&va->rb.entry, &va->vm->rb.list)) in __drm_gpuva_next()
445 return list_next_entry(va, rb.entry); in __drm_gpuva_next()
468 va__ && (va__->va.addr < (end__)); \
492 va__ && (va__->va.addr < (end__)); \
806 * enum drm_gpuva_op_type - GPU VA operation type
808 * Operations to alter the GPU VA mappings tracked by the &drm_gpuvm.
838 * struct drm_gpuva_op_map - GPU VA map operation
841 * DRM GPU VA manager.
845 * @va: structure containing address and range of a map
850 * @va.addr: the base address of the new mapping
855 * @va.range: the range of the new mapping
858 } va; member
877 * struct drm_gpuva_op_unmap - GPU VA unmap operation
880 * DRM GPU VA manager.
884 * @va: the &drm_gpuva to unmap
886 struct drm_gpuva *va; member
902 * struct drm_gpuva_op_remap - GPU VA remap operation
904 * This represents a single remap operation generated by the DRM GPU VA manager.
906 * A remap operation is generated when an existing GPU VA mmapping is split up
907 * by inserting a new GPU VA mapping or by partially unmapping existent
942 * struct drm_gpuva_op_prefetch - GPU VA prefetch operation
945 * DRM GPU VA manager.
949 * @va: the &drm_gpuva to prefetch
951 struct drm_gpuva *va; member
955 * struct drm_gpuva_op - GPU VA operation
1107 static inline void drm_gpuva_init_from_op(struct drm_gpuva *va, in drm_gpuva_init_from_op() argument
1110 va->va.addr = op->va.addr; in drm_gpuva_init_from_op()
1111 va->va.range = op->va.range; in drm_gpuva_init_from_op()
1112 va->gem.obj = op->gem.obj; in drm_gpuva_init_from_op()
1113 va->gem.offset = op->gem.offset; in drm_gpuva_init_from_op()
1251 struct drm_gpuva *va,
1276 op->prev->va.addr + op->prev->va.range : in drm_gpuva_op_remap_to_unmap_range()
1277 op->unmap->va->va.addr; in drm_gpuva_op_remap_to_unmap_range()
1279 op->next->va.addr : in drm_gpuva_op_remap_to_unmap_range()
1280 op->unmap->va->va.addr + op->unmap->va->va.range; in drm_gpuva_op_remap_to_unmap_range()