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()
171 * drm_gem_vram_create() - Creates a VRAM-backed GEM object
176 * GEM objects are allocated by calling struct drm_driver.gem_create_object,
177 * if set. Otherwise kzalloc() will be used. Drivers can set their own GEM
179 * are set, the new GEM object will use the default functions from GEM VRAM
191 struct drm_gem_object *gem; in drm_gem_vram_create() local
200 gem = dev->driver->gem_create_object(dev, size); in drm_gem_vram_create()
201 if (IS_ERR(gem)) in drm_gem_vram_create()
202 return ERR_CAST(gem); in drm_gem_vram_create()
203 gbo = drm_gem_vram_of_gem(gem); in drm_gem_vram_create()
208 gem = &gbo->bo.base; in drm_gem_vram_create()
211 if (!gem->funcs) in drm_gem_vram_create()
212 gem->funcs = &drm_gem_vram_object_funcs; in drm_gem_vram_create()
214 ret = drm_gem_object_init(dev, gem, size); in drm_gem_vram_create()
240 * drm_gem_vram_put() - Releases a reference to a VRAM-backed GEM object
241 * @gbo: the GEM VRAM object
263 Returns a GEM VRAM object's offset in video memory
264 * @gbo: the GEM VRAM object
304 * drm_gem_vram_pin() - Pins a GEM VRAM object in a region.
305 * @gbo: the GEM VRAM object
346 * drm_gem_vram_unpin() - Unpins a GEM VRAM object
347 * @gbo: the GEM VRAM object
417 * drm_gem_vram_vmap() - Pins and maps a GEM VRAM object into kernel address
419 * @gbo: The GEM VRAM object to map
420 * @map: Returns the kernel virtual address of the VRAM GEM object's backing
423 * The vmap function pins a GEM VRAM object to its current location, either
427 * unmap and unpin the GEM VRAM object.
460 * drm_gem_vram_vunmap() - Unmaps and unpins a GEM VRAM object
461 * @gbo: The GEM VRAM object to unmap
462 * @map: Kernel virtual address where the VRAM GEM object was mapped
464 * A call to drm_gem_vram_vunmap() unmaps and unpins a GEM VRAM buffer. See
591 * @gem: GEM object. Refers to &struct drm_gem_vram_object.gem
593 static void drm_gem_vram_object_free(struct drm_gem_object *gem) in drm_gem_vram_object_free() argument
595 struct drm_gem_vram_object *gbo = drm_gem_vram_of_gem(gem); in drm_gem_vram_object_free()
659 * pins the GEM VRAM objects of the plane's new framebuffer to VRAM.
709 * During plane updates, this function unpins the GEM VRAM
736 * During plane updates, this function pins the GEM VRAM
758 * During plane updates, this function unpins the GEM VRAM
777 * @gem: The GEM object to pin
783 static int drm_gem_vram_object_pin(struct drm_gem_object *gem) in drm_gem_vram_object_pin() argument
785 struct drm_gem_vram_object *gbo = drm_gem_vram_of_gem(gem); in drm_gem_vram_object_pin()
801 * @gem: The GEM object to unpin
803 static void drm_gem_vram_object_unpin(struct drm_gem_object *gem) in drm_gem_vram_object_unpin() argument
805 struct drm_gem_vram_object *gbo = drm_gem_vram_of_gem(gem); in drm_gem_vram_object_unpin()
813 * @gem: The GEM object to map
814 * @map: Returns the kernel virtual address of the VRAM GEM object's backing
820 static int drm_gem_vram_object_vmap(struct drm_gem_object *gem, in drm_gem_vram_object_vmap() argument
823 struct drm_gem_vram_object *gbo = drm_gem_vram_of_gem(gem); in drm_gem_vram_object_vmap()
831 * @gem: The GEM object to unmap
832 * @map: Kernel virtual address where the VRAM GEM object was mapped
834 static void drm_gem_vram_object_vunmap(struct drm_gem_object *gem, in drm_gem_vram_object_vunmap() argument
837 struct drm_gem_vram_object *gbo = drm_gem_vram_of_gem(gem); in drm_gem_vram_object_vunmap()
843 * GEM object funcs
900 /* TTM may pass BOs that are not GEM VRAM BOs. */ in bo_driver_evict_flags()
913 /* TTM may pass BOs that are not GEM VRAM BOs. */ in bo_driver_delete_mem_notify()