Lines Matching full:gem
28 * This library provides &struct drm_gem_vram_object (GEM VRAM), a GEM
33 * manager for simple framebuffer devices with dedicated video memory. GEM
37 * With the GEM interface userspace applications create, manage and destroy
38 * graphics buffers, such as an on-screen framebuffer. GEM does not provide
45 * left in VRAM, inactive GEM objects can be moved to system memory.
82 * interfaces for GEM buffer management and initializes file operations to
83 * allow for accessing created GEM buffers. With this setup, the DRM driver
84 * manages an area of video RAM with VRAM MM and provides GEM VRAM objects
116 * up; only release the GEM object. in drm_gem_vram_cleanup()
169 * drm_gem_vram_create() - Creates a VRAM-backed GEM object
174 * GEM objects are allocated by calling struct drm_driver.gem_create_object,
175 * if set. Otherwise kzalloc() will be used. Drivers can set their own GEM
177 * are set, the new GEM object will use the default functions from GEM VRAM
189 struct drm_gem_object *gem; in drm_gem_vram_create() local
198 gem = dev->driver->gem_create_object(dev, size); in drm_gem_vram_create()
199 if (IS_ERR(gem)) in drm_gem_vram_create()
200 return ERR_CAST(gem); in drm_gem_vram_create()
201 gbo = drm_gem_vram_of_gem(gem); in drm_gem_vram_create()
206 gem = &gbo->bo.base; in drm_gem_vram_create()
209 if (!gem->funcs) in drm_gem_vram_create()
210 gem->funcs = &drm_gem_vram_object_funcs; in drm_gem_vram_create()
212 ret = drm_gem_object_init(dev, gem, size); in drm_gem_vram_create()
238 * drm_gem_vram_put() - Releases a reference to a VRAM-backed GEM object
239 * @gbo: the GEM VRAM object
260 * drm_gem_vram_offset() - Returns a GEM VRAM object's offset in video memory
261 * @gbo: the GEM VRAM object
303 * drm_gem_vram_pin() - Pins a GEM VRAM object in a region.
304 * @gbo: the GEM VRAM object
347 * drm_gem_vram_unpin() - Unpins a GEM VRAM object
348 * @gbo: the GEM VRAM object
370 * drm_gem_vram_vmap() - Pins and maps a GEM VRAM object into kernel address
372 * @gbo: The GEM VRAM object to map
373 * @map: Returns the kernel virtual address of the VRAM GEM object's backing
376 * The vmap function pins a GEM VRAM object to its current location, either
380 * unmap and unpin the GEM VRAM object.
414 * drm_gem_vram_vunmap() - Unmaps and unpins a GEM VRAM object
415 * @gbo: The GEM VRAM object to unmap
416 * @map: Kernel virtual address where the VRAM GEM object was mapped
418 * A call to drm_gem_vram_vunmap() unmaps and unpins a GEM VRAM buffer. See
554 * @gem: GEM object. Refers to &struct drm_gem_vram_object.gem
556 static void drm_gem_vram_object_free(struct drm_gem_object *gem) in drm_gem_vram_object_free() argument
558 struct drm_gem_vram_object *gbo = drm_gem_vram_of_gem(gem); in drm_gem_vram_object_free()
621 * pins the GEM VRAM objects of the plane's new framebuffer to VRAM.
671 * During plane updates, this function unpins the GEM VRAM
694 * @gem: The GEM object to pin
700 static int drm_gem_vram_object_pin(struct drm_gem_object *gem) in drm_gem_vram_object_pin() argument
702 struct drm_gem_vram_object *gbo = drm_gem_vram_of_gem(gem); in drm_gem_vram_object_pin()
718 * @gem: The GEM object to unpin
720 static void drm_gem_vram_object_unpin(struct drm_gem_object *gem) in drm_gem_vram_object_unpin() argument
722 struct drm_gem_vram_object *gbo = drm_gem_vram_of_gem(gem); in drm_gem_vram_object_unpin()
730 * @gem: The GEM object to map
731 * @map: Returns the kernel virtual address of the VRAM GEM object's backing
737 static int drm_gem_vram_object_vmap(struct drm_gem_object *gem, in drm_gem_vram_object_vmap() argument
740 struct drm_gem_vram_object *gbo = drm_gem_vram_of_gem(gem); in drm_gem_vram_object_vmap()
748 * @gem: The GEM object to unmap
749 * @map: Kernel virtual address where the VRAM GEM object was mapped
751 static void drm_gem_vram_object_vunmap(struct drm_gem_object *gem, in drm_gem_vram_object_vunmap() argument
754 struct drm_gem_vram_object *gbo = drm_gem_vram_of_gem(gem); in drm_gem_vram_object_vunmap()
760 * GEM object funcs
817 /* TTM may pass BOs that are not GEM VRAM BOs. */ in bo_driver_evict_flags()
830 /* TTM may pass BOs that are not GEM VRAM BOs. */ in bo_driver_delete_mem_notify()