Home
last modified time | relevance | path

Searched full:gem (Results 1 – 25 of 745) sorted by relevance

12345678910>>...30

/kernel/linux/linux-6.6/drivers/gpu/drm/tegra/
Dgem.c3 * NVIDIA Tegra DRM GEM helper functions
8 * Based on the GEM/CMA helpers
23 #include "gem.h"
56 drm_gem_object_put(&obj->gem); in tegra_bo_put()
63 struct drm_gem_object *gem = &obj->gem; in tegra_bo_pin() local
79 if (gem->import_attach) { in tegra_bo_pin()
80 struct dma_buf *buf = gem->import_attach->dmabuf; in tegra_bo_pin()
97 map->size = gem->size; in tegra_bo_pin()
117 err = sg_alloc_table_from_pages(map->sgt, obj->pages, obj->num_pages, 0, gem->size, in tegra_bo_pin()
127 err = dma_get_sgtable(dev, map->sgt, obj->vaddr, obj->iova, gem->size); in tegra_bo_pin()
[all …]
Dgem.h3 * Tegra host1x GEM implementation
36 struct drm_gem_object gem; member
52 static inline struct tegra_bo *to_tegra_bo(struct drm_gem_object *gem) in to_tegra_bo() argument
54 return container_of(gem, struct tegra_bo, gem); in to_tegra_bo()
69 void tegra_bo_free_object(struct drm_gem_object *gem);
75 int __tegra_gem_mmap(struct drm_gem_object *gem, struct vm_area_struct *vma);
78 struct dma_buf *tegra_gem_prime_export(struct drm_gem_object *gem,
/kernel/linux/linux-6.6/drivers/gpu/drm/
Ddrm_gem_ttm_helper.c12 * This library provides helper functions for gem objects backed by
20 * @gem: GEM object
26 const struct drm_gem_object *gem) in drm_gem_ttm_print_info() argument
42 const struct ttm_buffer_object *bo = drm_gem_ttm_of_gem(gem); in drm_gem_ttm_print_info()
56 * @gem: GEM object.
59 * Maps a GEM object with ttm_bo_vmap(). This function can be used as
65 int drm_gem_ttm_vmap(struct drm_gem_object *gem, in drm_gem_ttm_vmap() argument
68 struct ttm_buffer_object *bo = drm_gem_ttm_of_gem(gem); in drm_gem_ttm_vmap()
76 * @gem: GEM object.
79 * Unmaps a GEM object with ttm_bo_vunmap(). This function can be used as
[all …]
Ddrm_gem_vram_helper.c29 * 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
[all …]
/kernel/linux/linux-5.10/Documentation/gpu/
Ddrm-mm.rst12 (TTM) and Graphics Execution Manager (GEM). TTM was the first DRM memory
20 GEM started as an Intel-sponsored project in reaction to TTM's
22 providing a solution to every graphics memory-related problems, GEM
24 share it. GEM has simpler initialization and execution requirements than
82 The Graphics Execution Manager (GEM)
85 The GEM design approach has resulted in a memory manager that doesn't
87 userspace or kernel API. GEM exposes a set of standard memory-related
92 The GEM userspace API is described in the `GEM - the Graphics Execution
94 slightly outdated, the document provides a good overview of the GEM API
96 as part of the common GEM API, are currently implemented using
[all …]
/kernel/linux/linux-5.10/drivers/gpu/drm/tegra/
Dgem.c3 * NVIDIA Tegra DRM GEM helper functions
8 * Based on the GEM/CMA helpers
21 #include "gem.h"
27 drm_gem_object_put(&obj->gem); in tegra_bo_put()
91 0, obj->gem.size, GFP_KERNEL); in tegra_bo_pin()
112 obj->gem.size); in tegra_bo_pin()
138 else if (obj->gem.import_attach) in tegra_bo_mmap()
139 return dma_buf_vmap(obj->gem.import_attach->dmabuf); in tegra_bo_mmap()
151 else if (obj->gem.import_attach) in tegra_bo_munmap()
152 dma_buf_vunmap(obj->gem.import_attach->dmabuf, addr); in tegra_bo_munmap()
[all …]
Dgem.h3 * Tegra host1x GEM implementation
30 struct drm_gem_object gem; member
46 static inline struct tegra_bo *to_tegra_bo(struct drm_gem_object *gem) in to_tegra_bo() argument
48 return container_of(gem, struct tegra_bo, gem); in to_tegra_bo()
63 void tegra_bo_free_object(struct drm_gem_object *gem);
69 int __tegra_gem_mmap(struct drm_gem_object *gem, struct vm_area_struct *vma);
72 struct dma_buf *tegra_gem_prime_export(struct drm_gem_object *gem,
/kernel/linux/linux-6.6/Documentation/gpu/
Ddrm-mm.rst12 (TTM) and Graphics Execution Manager (GEM). TTM was the first DRM memory
20 GEM started as an Intel-sponsored project in reaction to TTM's
22 providing a solution to every graphics memory-related problems, GEM
24 share it. GEM has simpler initialization and execution requirements than
79 The Graphics Execution Manager (GEM)
82 The GEM design approach has resulted in a memory manager that doesn't
84 userspace or kernel API. GEM exposes a set of standard memory-related
89 The GEM userspace API is described in the `GEM - the Graphics Execution
91 slightly outdated, the document provides a good overview of the GEM API
93 as part of the common GEM API, are currently implemented using
[all …]
/kernel/linux/linux-5.10/drivers/gpu/drm/gma500/
Dgem.c3 * psb GEM interface
11 * accelerated operations on a GEM object)
23 struct gtt_range *gtt = container_of(obj, struct gtt_range, gem); in psb_gem_free_object()
29 /* This must occur last as it frees up the memory of the GEM object */ in psb_gem_free_object()
46 * Create a GEM object, fill in the boilerplate and attach a handle to
48 * for the various methods that do/will create GEM objects for things
61 r = psb_gtt_alloc_range(dev, size, "gem", 0, PAGE_SIZE); in psb_gem_create()
63 dev_err(dev->dev, "no memory for %lld byte GEM object\n", size); in psb_gem_create()
66 /* Initialize the extra goodies GEM needs to do all the hard work */ in psb_gem_create()
67 if (drm_gem_object_init(dev, &r->gem, size) != 0) { in psb_gem_create()
[all …]
/kernel/linux/linux-5.10/Documentation/devicetree/bindings/net/
Dmacb.txt1 * Cadence MACB/GEM Ethernet controller
4 - compatible: Should be "cdns,[<chip>-]{macb|gem}"
10 Use "cdns,pc302-gem" for Picochip picoXcell pc302 and later devices based on
11 the Cadence GEM, or the generic form: "cdns,gem".
12 Use "atmel,sama5d2-gem" for the GEM IP (10/100) available on Atmel sama5d2 SoCs.
14 Use "atmel,sama5d3-gem" for the Gigabit IP available on Atmel sama5d3 SoCs.
15 Use "atmel,sama5d4-gem" for the GEM IP (10/100) available on Atmel sama5d4 SoCs.
16 Use "cdns,zynq-gem" Xilinx Zynq-7xxx SoC.
17 Use "cdns,zynqmp-gem" for Zynq Ultrascale+ MPSoC.
18 Use "sifive,fu540-c000-gem" for SiFive FU540-C000 SoC.
[all …]
/kernel/linux/linux-5.10/drivers/gpu/drm/i915/
DMakefile129 # GEM (Graphics Execution Management) code
130 gem-y += \
131 gem/i915_gem_busy.o \
132 gem/i915_gem_clflush.o \
133 gem/i915_gem_client_blt.o \
134 gem/i915_gem_context.o \
135 gem/i915_gem_dmabuf.o \
136 gem/i915_gem_domain.o \
137 gem/i915_gem_execbuffer.o \
138 gem/i915_gem_fence.o \
[all …]
/kernel/linux/linux-6.6/Documentation/devicetree/bindings/net/
Dcdns,macb.yaml7 title: Cadence MACB/GEM Ethernet controller
23 - cdns,zynq-gem # Xilinx Zynq-7xxx SoC
24 - cdns,zynqmp-gem # Xilinx Zynq Ultrascale+ MPSoC
25 - const: cdns,gem # Generic
30 - xlnx,versal-gem # Xilinx Versal
31 - xlnx,zynq-gem # Xilinx Zynq-7xxx SoC
32 - xlnx,zynqmp-gem # Xilinx Zynq Ultrascale+ MPSoC
33 - const: cdns,gem # Generic
50 - atmel,sama5d29-gem # GEM XL IP (10/100) on Atmel sama5d29 SoCs
51 - atmel,sama5d2-gem # GEM IP (10/100) on Atmel sama5d2 SoCs
[all …]
/kernel/linux/linux-6.6/drivers/gpu/drm/i915/
DMakefile152 # GEM (Graphics Execution Management) code
153 gem-y += \
154 gem/i915_gem_busy.o \
155 gem/i915_gem_clflush.o \
156 gem/i915_gem_context.o \
157 gem/i915_gem_create.o \
158 gem/i915_gem_dmabuf.o \
159 gem/i915_gem_domain.o \
160 gem/i915_gem_execbuffer.o \
161 gem/i915_gem_internal.o \
[all …]
/kernel/linux/linux-6.6/include/drm/
Ddrm_gem_shmem_helper.h21 * struct drm_gem_shmem_object - GEM object backed by shmem
25 * @base: Base GEM object
131 * GEM object functions
135 * drm_gem_shmem_object_free - GEM object function for drm_gem_shmem_free()
136 * @obj: GEM object to free
152 * @obj: GEM object
166 * drm_gem_shmem_object_pin - GEM object function for drm_gem_shmem_pin()
167 * @obj: GEM object
180 * drm_gem_shmem_object_unpin - GEM object function for drm_gem_shmem_unpin()
181 * @obj: GEM object
[all …]
Ddrm_gem.h5 * GEM Graphics Execution Manager Driver Interfaces
59 * become puregeable until it becomes idle. The status gem object func does
68 * struct drm_gem_object_funcs - GEM object functions
83 * Called upon GEM handle creation.
92 * Called upon GEM handle release.
179 * Handle mmap() of the gem object, setup vma accordingly.
192 * Evicts gem object out from memory. Used by the drm_gem_object_evict()
225 * A helper for tracking GEM objects in a given state, to aid in
235 * Lock protecting movement of GEM objects between LRUs. All
244 * The total number of backing pages of the GEM objects in
[all …]
Ddrm_gem_dma_helper.h12 * struct drm_gem_dma_object - GEM object backed by DMA memory allocations
13 * @base: base GEM object
19 * @map_noncoherent: if true, the GEM object is backed by non-coherent memory
26 /* For objects with DMA memory allocated by GEM DMA */
48 * GEM object functions
52 * drm_gem_dma_object_free - GEM object function for drm_gem_dma_free()
53 * @obj: GEM object to free
69 * @obj: GEM object
83 * drm_gem_dma_object_get_sg_table - GEM object function for drm_gem_dma_get_sg_table()
84 * @obj: GEM object
[all …]
/kernel/linux/linux-5.10/drivers/gpu/drm/
Ddrm_gem_ttm_helper.c10 * This library provides helper functions for gem objects backed by
18 * @gem: GEM object
24 const struct drm_gem_object *gem) in drm_gem_ttm_print_info() argument
40 const struct ttm_buffer_object *bo = drm_gem_ttm_of_gem(gem); in drm_gem_ttm_print_info()
54 * @gem: GEM object.
60 int drm_gem_ttm_mmap(struct drm_gem_object *gem, in drm_gem_ttm_mmap() argument
63 struct ttm_buffer_object *bo = drm_gem_ttm_of_gem(gem); in drm_gem_ttm_mmap()
71 * ttm has its own object refcounting, so drop gem reference in drm_gem_ttm_mmap()
74 drm_gem_object_put(gem); in drm_gem_ttm_mmap()
80 MODULE_DESCRIPTION("DRM gem ttm helpers");
Ddrm_gem_vram_helper.c25 * This library provides &struct drm_gem_vram_object (GEM VRAM), a GEM
30 * manager for simple framebuffer devices with dedicated video memory. GEM
34 * With the GEM interface userspace applications create, manage and destroy
35 * graphics buffers, such as an on-screen framebuffer. GEM does not provide
42 * left in VRAM, inactive GEM objects can be moved to system memory.
79 * interfaces for GEM buffer management and initializes file operations to
80 * allow for accessing created GEM buffers. With this setup, the DRM driver
81 * manages an area of video RAM with VRAM MM and provides GEM VRAM objects
113 * up; only release the GEM object. in drm_gem_vram_cleanup()
217 * drm_gem_vram_create() - Creates a VRAM-backed GEM object
[all …]
Ddrm_gem_cma_helper.c3 * drm gem CMA (contiguous memory allocator) helper functions
31 * The DRM GEM/CMA helpers use this allocator as a means to provide buffer
37 * __drm_gem_cma_create - Create a GEM CMA object without allocating memory
41 * This function creates and initializes a GEM CMA object of the given size,
85 * This function creates a CMA GEM object and allocates a contiguous chunk of
124 * return a GEM handle to it
128 * @handle: return location for the GEM handle
130 * This function creates a CMA GEM object, allocating a physically contiguous
131 * chunk of memory as backing store. The GEM object is then added to the list
167 * drm_gem_cma_free_object - free resources associated with a CMA GEM object
[all …]
Ddrm_prime.c45 * Similar to GEM global names, PRIME file descriptors are also used to share
48 * between applications, they can't be guessed like the globally unique GEM
53 * GEM based drivers must use drm_gem_prime_handle_to_fd() and
54 * drm_gem_prime_fd_to_handle() to implement these. For GEM based drivers the
58 * &dma_buf_ops implementations for GEM drivers are all individually exported
61 * Reference Counting for GEM Drivers
67 * and stores the exporting GEM object in the &dma_buf.priv field. This
70 * GEM-based drivers, the &dma_buf should be exported using
74 * importing GEM object -> dma-buf -> exported GEM bo. A further complication
77 * is required to allow userspace to detect duplicated imports, since some GEM
[all …]
/kernel/linux/linux-5.10/include/drm/
Ddrm_gem.h5 * GEM Graphics Execution Manager Driver Interfaces
45 * struct drm_gem_object_funcs - GEM object functions
60 * Called upon GEM handle creation.
69 * Called upon GEM handle release.
156 * Handle mmap() of the gem object, setup vma accordingly.
177 * struct drm_gem_object - GEM buffer object
179 * This structure defines the generic parts for GEM buffer objects, which are
191 * or drm_gem_object_put() to release a reference to a GEM
199 * This is the GEM file_priv handle count of this object.
218 * GEM also supports driver private objects with driver-specific backing
[all …]
Ddrm_gem_vram_helper.h31 * struct drm_gem_vram_object - GEM object backed by VRAM
32 * @gem: GEM object
40 * The type struct drm_gem_vram_object represents a GEM object that is
45 * GEM VRAM objects perform reference counting for pin and mapping
75 * Returns: The containing GEM VRAM object
85 * for field gem.
86 * @gem: the GEM object
87 * Returns: The containing GEM VRAM object
90 struct drm_gem_object *gem) in drm_gem_vram_of_gem() argument
92 return container_of(gem, struct drm_gem_vram_object, bo.base); in drm_gem_vram_of_gem()
[all …]
/kernel/linux/linux-6.6/drivers/gpu/drm/exynos/
Dexynos_drm_gem.h21 * @base: a gem object.
22 * - a new handle to this gem object would be created
49 /* destroy a buffer with gem object */
52 /* create a new buffer with gem object */
59 * request gem object creation and buffer allocation as the size
66 /* get fake-offset of gem object that can be used with mmap. */
71 * get exynos drm object from gem handle, this function could be used for
73 * with this function call, gem object reference count would be increased.
80 * gem object reference count would be decreased.
87 /* get buffer information to memory region allocated by gem. */
[all …]
/kernel/linux/linux-5.10/drivers/gpu/drm/exynos/
Dexynos_drm_gem.h21 * @base: a gem object.
22 * - a new handle to this gem object would be created
49 /* destroy a buffer with gem object */
52 /* create a new buffer with gem object */
59 * request gem object creation and buffer allocation as the size
66 /* get fake-offset of gem object that can be used with mmap. */
71 * get exynos drm object from gem handle, this function could be used for
73 * with this function call, gem object reference count would be increased.
80 * gem object reference count would be decreased.
87 /* get buffer information to memory region allocated by gem. */
[all …]
/kernel/linux/linux-5.10/drivers/gpu/drm/vkms/
Dvkms_gem.c21 ret = drm_gem_object_init(dev, &obj->gem, size); in __vkms_gem_create()
34 struct vkms_gem_object *gem = container_of(obj, struct vkms_gem_object, in vkms_gem_free_object() local
35 gem); in vkms_gem_free_object()
37 WARN_ON(gem->pages); in vkms_gem_free_object()
38 WARN_ON(gem->vaddr); in vkms_gem_free_object()
40 mutex_destroy(&gem->pages_lock); in vkms_gem_free_object()
42 kfree(gem); in vkms_gem_free_object()
55 num_pages = DIV_ROUND_UP(obj->gem.size, PAGE_SIZE); in vkms_gem_fault()
71 mapping = file_inode(obj->gem.filp)->i_mapping; in vkms_gem_fault()
115 ret = drm_gem_handle_create(file, &obj->gem, handle); in vkms_gem_create()
[all …]

12345678910>>...30