| /Linux-v6.1/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. 57 * Maps a GEM object with ttm_bo_vmap(). This function can be used as 63 int drm_gem_ttm_vmap(struct drm_gem_object *gem, in drm_gem_ttm_vmap() argument 66 struct ttm_buffer_object *bo = drm_gem_ttm_of_gem(gem); in drm_gem_ttm_vmap() 69 dma_resv_lock(gem->resv, NULL); in drm_gem_ttm_vmap() 71 dma_resv_unlock(gem->resv); in drm_gem_ttm_vmap() [all …]
|
| D | drm_gem_vram_helper.c | 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 [all …]
|
| D | drm_prime.c | 48 * Similar to GEM global names, PRIME file descriptors are also used to share 51 * between applications, they can't be guessed like the globally unique GEM 56 * GEM based drivers must use drm_gem_prime_handle_to_fd() and 57 * drm_gem_prime_fd_to_handle() to implement these. For GEM based drivers the 61 * &dma_buf_ops implementations for GEM drivers are all individually exported 64 * Reference Counting for GEM Drivers 70 * and stores the exporting GEM object in the &dma_buf.priv field. This 73 * GEM-based drivers, the &dma_buf should be exported using 77 * importing GEM object -> dma-buf -> exported GEM bo. A further complication 80 * is required to allow userspace to detect duplicated imports, since some GEM [all …]
|
| D | drm_gem_shmem_helper.c | 31 * This library provides helpers for GEM objects backed by shmem buffers 34 * Functions that operate on the GEM object receive struct &drm_gem_shmem_object. 35 * For GEM callback helpers in struct &drm_gem_object functions, see likewise 119 * This function creates a shmem GEM object. 132 * drm_gem_shmem_free - Free resources associated with a shmem GEM object 133 * @shmem: shmem GEM object to free 135 * This function cleans up the GEM object state and frees the memory used to 197 * drm_gem_shmem_get_pages - Allocate backing pages for a shmem GEM object 198 * @shmem: shmem GEM object 200 * This function makes sure that backing pages exists for the shmem GEM object [all …]
|
| D | drm_gem_dma_helper.c | 3 * drm gem DMA helper functions 29 * The DRM GEM/DMA helpers are a means to provide buffer objects that are 43 * For GEM callback helpers in struct &drm_gem_object functions, see likewise 58 * __drm_gem_dma_create - Create a GEM DMA object without allocating memory 63 * This function creates and initializes a GEM DMA object of the given size, 121 * This function creates a DMA GEM object and allocates memory as backing store. 173 * return a GEM handle to it 177 * @handle: return location for the GEM handle 179 * This function creates a DMA GEM object, allocating a chunk of memory as 180 * backing store. The GEM object is then added to the list of object associated [all …]
|
| D | drm_gem.c | 90 * drm_gem_init - Initialize the GEM device fields 117 * drm_gem_object_init - initialize an allocated shmem-backed GEM object 122 * Initialize an already allocated GEM object of the specified size with 143 * drm_gem_private_object_init - initialize an allocated private GEM object 148 * Initialize an already allocated GEM object of the specified size with 149 * no GEM provided backing store. Instead the caller is responsible for 174 * @obj: GEM object to clean up. 255 * Removes the GEM handle from the @filp lookup table which has been added with 257 * resources like GEM names. 285 * drm_gem_dumb_map_offset - return the fake mmap offset for a gem object [all …]
|
| D | drm_fb_dma_helper.c | 38 * drm_fb_dma_get_gem_obj() - Get DMA GEM object for framebuffer 42 * Return the DMA GEM object for given framebuffer. 49 struct drm_gem_object *gem; in drm_fb_dma_get_gem_obj() local 51 gem = drm_gem_fb_get_obj(fb, plane); in drm_fb_dma_get_gem_obj() 52 if (!gem) in drm_fb_dma_get_gem_obj() 55 return to_drm_gem_dma_obj(gem); in drm_fb_dma_get_gem_obj() 66 * Return the DMA GEM address for given framebuffer. 109 * drm_fb_dma_sync_non_coherent - Sync GEM object to non-coherent backing 116 * DMA GEM objects backed by non-coherent memory. Calling this function
|
| /Linux-v6.1/drivers/gpu/drm/tegra/ |
| D | gem.c | 3 * NVIDIA Tegra DRM GEM helper functions 8 * Based on the GEM/CMA helpers 22 #include "gem.h" 55 drm_gem_object_put(&obj->gem); in tegra_bo_put() 62 struct drm_gem_object *gem = &obj->gem; in tegra_bo_pin() local 78 if (gem->import_attach) { in tegra_bo_pin() 79 struct dma_buf *buf = gem->import_attach->dmabuf; in tegra_bo_pin() 96 map->size = gem->size; in tegra_bo_pin() 116 err = sg_alloc_table_from_pages(map->sgt, obj->pages, obj->num_pages, 0, gem->size, in tegra_bo_pin() 126 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,
|
| D | fb.c | 18 #include "gem.h" 127 fb->obj[i] = &planes[i]->gem; in tegra_fb_alloc() 146 struct drm_gem_object *gem; in tegra_fb_create() local 156 gem = drm_gem_object_lookup(file, cmd->handles[i]); in tegra_fb_create() 157 if (!gem) { in tegra_fb_create() 167 if (gem->size < size) { in tegra_fb_create() 172 planes[i] = to_tegra_bo(gem); in tegra_fb_create() 185 drm_gem_object_put(&planes[i]->gem); in tegra_fb_create() 199 err = drm_gem_mmap_obj(&bo->gem, bo->gem.size, vma); in tegra_fb_mmap() 203 return __tegra_gem_mmap(&bo->gem, vma); in tegra_fb_mmap() [all …]
|
| D | drm.c | 32 #include "gem.h" 254 refs[num_refs++] = &obj->gem; in tegra_drm_submit() 261 if (offset & 3 || offset > obj->gem.size) { in tegra_drm_submit() 284 refs[num_refs++] = &obj->gem; in tegra_drm_submit() 292 reloc->cmdbuf.offset >= obj->gem.size) { in tegra_drm_submit() 298 refs[num_refs++] = &obj->gem; in tegra_drm_submit() 300 if (reloc->target.offset >= obj->gem.size) { in tegra_drm_submit() 370 struct drm_gem_object *gem; in tegra_gem_mmap() local 373 gem = drm_gem_object_lookup(file, args->handle); in tegra_gem_mmap() 374 if (!gem) in tegra_gem_mmap() [all …]
|
| /Linux-v6.1/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 …]
|
| /Linux-v6.1/drivers/gpu/drm/i915/ |
| D | Makefile | 143 # GEM (Graphics Execution Management) code 144 gem-y += \ 145 gem/i915_gem_busy.o \ 146 gem/i915_gem_clflush.o \ 147 gem/i915_gem_context.o \ 148 gem/i915_gem_create.o \ 149 gem/i915_gem_dmabuf.o \ 150 gem/i915_gem_domain.o \ 151 gem/i915_gem_execbuffer.o \ 152 gem/i915_gem_internal.o \ [all …]
|
| /Linux-v6.1/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 …]
|
| /Linux-v6.1/include/drm/ |
| D | drm_gem.h | 5 * GEM Graphics Execution Manager Driver Interfaces 46 * struct drm_gem_object_funcs - GEM object functions 61 * Called upon GEM handle creation. 70 * Called upon GEM handle release. 157 * Handle mmap() of the gem object, setup vma accordingly. 180 * A helper for tracking GEM objects in a given state, to aid in 190 * Lock protecting movement of GEM objects between LRUs. All 199 * The total number of backing pages of the GEM objects in 213 * struct drm_gem_object - GEM buffer object 215 * This structure defines the generic parts for GEM buffer objects, which are [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 …]
|
| D | drm_gem_shmem_helper.h | 21 * struct drm_gem_shmem_object - GEM object backed by shmem 25 * @base: Base GEM object 143 * GEM object functions 147 * drm_gem_shmem_object_free - GEM object function for drm_gem_shmem_free() 148 * @obj: GEM object to free 164 * @obj: GEM object 178 * drm_gem_shmem_object_pin - GEM object function for drm_gem_shmem_pin() 179 * @obj: GEM object 192 * drm_gem_shmem_object_unpin - GEM object function for drm_gem_shmem_unpin() 193 * @obj: GEM object [all …]
|
| D | drm_gem_vram_helper.h | 33 * struct drm_gem_vram_object - GEM object backed by VRAM 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 73 * Returns: The containing GEM VRAM object 83 * &struct drm_gem_vram_object for field gem. 84 * @gem: the GEM object 85 * Returns: The containing GEM VRAM object 88 struct drm_gem_object *gem) in drm_gem_vram_of_gem() argument 90 return container_of(gem, struct drm_gem_vram_object, bo.base); in drm_gem_vram_of_gem() 132 * Drivers may use GEM BOs as VRAM helpers for the framebuffer memory. This [all …]
|
| /Linux-v6.1/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 …]
|
| /Linux-v6.1/drivers/gpu/drm/nouveau/ |
| D | nouveau_gem.c | 77 nouveau_gem_object_del(struct drm_gem_object *gem) in nouveau_gem_object_del() argument 79 struct nouveau_bo *nvbo = nouveau_gem_object(gem); in nouveau_gem_object_del() 90 if (gem->import_attach) in nouveau_gem_object_del() 91 drm_prime_gem_destroy(gem, nvbo->bo.sg); in nouveau_gem_object_del() 100 nouveau_gem_object_open(struct drm_gem_object *gem, struct drm_file *file_priv) in nouveau_gem_object_open() argument 103 struct nouveau_bo *nvbo = nouveau_gem_object(gem); in nouveau_gem_object_open() 177 nouveau_gem_object_close(struct drm_gem_object *gem, struct drm_file *file_priv) in nouveau_gem_object_close() argument 180 struct nouveau_bo *nvbo = nouveau_gem_object(gem); in nouveau_gem_object_close() 240 /* Initialize the embedded gem-object. We return a single gem-reference in nouveau_gem_new() 267 nouveau_gem_info(struct drm_file *file_priv, struct drm_gem_object *gem, in nouveau_gem_info() argument [all …]
|
| /Linux-v6.1/drivers/gpu/drm/mediatek/ |
| D | mtk_drm_gem.h | 14 * @base: a gem object. 15 * - a new handle to this gem object would be created 18 * @kvaddr: kernel virtual address of gem buffer. 19 * @dma_addr: dma address of gem buffer. 20 * @dma_attrs: dma attributes of gem buffer. 37 void mtk_drm_gem_free_object(struct drm_gem_object *gem);
|
| /Linux-v6.1/drivers/gpu/drm/gma500/ |
| D | gem.c | 3 * psb GEM interface 11 * accelerated operations on a GEM object) 21 #include "gem.h" 25 * PSB GEM object 165 /* GEM object */ in psb_gem_create() 216 pobj = psb_gem_create(dev, size, "gem", false, PAGE_SIZE); in psb_gem_dumb_create() 239 * psb_gem_fault - pagefault handler for GEM objects 242 * Invoked when a fault occurs on an mmap of a GEM managed area. GEM 250 * The VMA was set up by GEM. In doing so it also ensured that the 251 * vma->vm_private_data points to the GEM object that is backing this [all …]
|
| /Linux-v6.1/include/uapi/drm/ |
| D | tegra_drm.h | 19 * struct drm_tegra_gem_create - parameters for the GEM object creation IOCTL 32 * A bitmask of flags that influence the creation of GEM objects: 45 * The handle of the created GEM object. Set by the kernel upon 52 * struct drm_tegra_gem_mmap - parameters for the GEM mmap IOCTL 58 * Handle of the GEM object to obtain an mmap offset for. 72 * The mmap offset for the given GEM object. Set by the kernel upon 276 * Handle to a GEM object containing the command buffer. 283 * Offset, in bytes, into the GEM object identified by @handle at 304 * struct drm_tegra_reloc - GEM object relocation structure 311 * Handle to the GEM object containing the command buffer for [all …]
|
| /Linux-v6.1/drivers/net/ethernet/sun/ |
| D | sungem.c | 3 * sungem.c: Sun GEM ethernet driver. 81 MODULE_DESCRIPTION("Sun GEM Gbit ethernet driver"); 84 #define GEM_MODULE_NAME "gem" 90 /* These models only differ from the original GEM in 116 static u16 __sungem_phy_read(struct gem *gp, int phy_addr, int reg) in __sungem_phy_read() 144 struct gem *gp = netdev_priv(dev); in _sungem_phy_read() 148 static inline u16 sungem_phy_read(struct gem *gp, int reg) in sungem_phy_read() 153 static void __sungem_phy_write(struct gem *gp, int phy_addr, int reg, u16 val) in __sungem_phy_write() 177 struct gem *gp = netdev_priv(dev); in _sungem_phy_write() 181 static inline void sungem_phy_write(struct gem *gp, int reg, u16 val) in sungem_phy_write() [all …]
|
| /Linux-v6.1/Documentation/devicetree/bindings/interconnect/ |
| D | qcom,rpmh.yaml | 36 - qcom,sc7180-gem-noc 48 - qcom,sc7280-gem-noc 60 - qcom,sc8180x-gem-noc 71 - qcom,sc8280xp-gem-noc 98 - qcom,sm8150-gem-noc 108 - qcom,sm8250-gem-noc 118 - qcom,sm8350-gem-noc 128 - qcom,sm8450-gem-noc
|