| /kernel/linux/linux-6.6/drivers/gpu/drm/tegra/ |
| D | gem.c | 3 * 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 …]
|
| D | gem.h | 3 * 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/ |
| D | drm_gem_ttm_helper.c | 12 * 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 …]
|
| D | drm_gem_vram_helper.c | 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 [all …]
|
| /kernel/linux/linux-5.10/Documentation/gpu/ |
| D | drm-mm.rst | 12 (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/ |
| D | gem.c | 3 * 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 …]
|
| D | gem.h | 3 * 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/ |
| D | drm-mm.rst | 12 (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/ |
| D | gem.c | 3 * 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/ |
| D | macb.txt | 1 * 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/ |
| D | Makefile | 129 # 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/ |
| D | cdns,macb.yaml | 7 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/ |
| D | Makefile | 152 # 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/ |
| D | drm_gem_shmem_helper.h | 21 * 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 …]
|
| D | drm_gem.h | 5 * 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 …]
|
| D | drm_gem_dma_helper.h | 12 * 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/ |
| D | drm_gem_ttm_helper.c | 10 * 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");
|
| D | drm_gem_vram_helper.c | 25 * 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 …]
|
| D | drm_gem_cma_helper.c | 3 * 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 …]
|
| D | drm_prime.c | 45 * 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/ |
| D | drm_gem.h | 5 * 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 …]
|
| D | drm_gem_vram_helper.h | 31 * 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/ |
| D | exynos_drm_gem.h | 21 * @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/ |
| D | exynos_drm_gem.h | 21 * @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/ |
| D | vkms_gem.c | 21 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 …]
|