Lines Matching full:gem

29  * This library provides &struct drm_gem_vram_object (GEM VRAM), a GEM
34 * manager for simple framebuffer devices with dedicated video memory. GEM
38 * With the GEM interface userspace applications create, manage and destroy
39 * graphics buffers, such as an on-screen framebuffer. GEM does not provide
46 * left in VRAM, inactive GEM objects can be moved to system memory.
83 * interfaces for GEM buffer management and initializes file operations to
84 * allow for accessing created GEM buffers. With this setup, the DRM driver
85 * manages an area of video RAM with VRAM MM and provides GEM VRAM objects
117 * up; only release the GEM object. in drm_gem_vram_cleanup()
172 * drm_gem_vram_create() - Creates a VRAM-backed GEM object
177 * GEM objects are allocated by calling struct drm_driver.gem_create_object,
178 * if set. Otherwise kzalloc() will be used. Drivers can set their own GEM
180 * are set, the new GEM object will use the default functions from GEM VRAM
192 struct drm_gem_object *gem; in drm_gem_vram_create() local
201 gem = dev->driver->gem_create_object(dev, size); in drm_gem_vram_create()
202 if (IS_ERR(gem)) in drm_gem_vram_create()
203 return ERR_CAST(gem); in drm_gem_vram_create()
204 gbo = drm_gem_vram_of_gem(gem); in drm_gem_vram_create()
209 gem = &gbo->bo.base; in drm_gem_vram_create()
212 if (!gem->funcs) in drm_gem_vram_create()
213 gem->funcs = &drm_gem_vram_object_funcs; in drm_gem_vram_create()
215 ret = drm_gem_object_init(dev, gem, size); in drm_gem_vram_create()
241 * drm_gem_vram_put() - Releases a reference to a VRAM-backed GEM object
242 * @gbo: the GEM VRAM object
264 Returns a GEM VRAM object's offset in video memory
265 * @gbo: the GEM VRAM object
305 * drm_gem_vram_pin() - Pins a GEM VRAM object in a region.
306 * @gbo: the GEM VRAM object
347 * drm_gem_vram_unpin() - Unpins a GEM VRAM object
348 * @gbo: the GEM VRAM object
418 * drm_gem_vram_vmap() - Pins and maps a GEM VRAM object into kernel address
420 * @gbo: The GEM VRAM object to map
421 * @map: Returns the kernel virtual address of the VRAM GEM object's backing
424 * The vmap function pins a GEM VRAM object to its current location, either
428 * unmap and unpin the GEM VRAM object.
455 * drm_gem_vram_vunmap() - Unmaps and unpins a GEM VRAM object
456 * @gbo: The GEM VRAM object to unmap
457 * @map: Kernel virtual address where the VRAM GEM object was mapped
459 * A call to drm_gem_vram_vunmap() unmaps and unpins a GEM VRAM buffer. See
580 * @gem: GEM object. Refers to &struct drm_gem_vram_object.gem
582 static void drm_gem_vram_object_free(struct drm_gem_object *gem) in drm_gem_vram_object_free() argument
584 struct drm_gem_vram_object *gbo = drm_gem_vram_of_gem(gem); in drm_gem_vram_object_free()
648 * pins the GEM VRAM objects of the plane's new framebuffer to VRAM.
698 * During plane updates, this function unpins the GEM VRAM
725 * During plane updates, this function pins the GEM VRAM
747 * During plane updates, this function unpins the GEM VRAM
766 * @gem: The GEM object to pin
772 static int drm_gem_vram_object_pin(struct drm_gem_object *gem) in drm_gem_vram_object_pin() argument
774 struct drm_gem_vram_object *gbo = drm_gem_vram_of_gem(gem); in drm_gem_vram_object_pin()
790 * @gem: The GEM object to unpin
792 static void drm_gem_vram_object_unpin(struct drm_gem_object *gem) in drm_gem_vram_object_unpin() argument
794 struct drm_gem_vram_object *gbo = drm_gem_vram_of_gem(gem); in drm_gem_vram_object_unpin()
802 * @gem: The GEM object to map
803 * @map: Returns the kernel virtual address of the VRAM GEM object's backing
809 static int drm_gem_vram_object_vmap(struct drm_gem_object *gem, in drm_gem_vram_object_vmap() argument
812 struct drm_gem_vram_object *gbo = drm_gem_vram_of_gem(gem); in drm_gem_vram_object_vmap()
820 * @gem: The GEM object to unmap
821 * @map: Kernel virtual address where the VRAM GEM object was mapped
823 static void drm_gem_vram_object_vunmap(struct drm_gem_object *gem, in drm_gem_vram_object_vunmap() argument
826 struct drm_gem_vram_object *gbo = drm_gem_vram_of_gem(gem); in drm_gem_vram_object_vunmap()
832 * GEM object funcs
889 /* TTM may pass BOs that are not GEM VRAM BOs. */ in bo_driver_evict_flags()
902 /* TTM may pass BOs that are not GEM VRAM BOs. */ in bo_driver_delete_mem_notify()