| /kernel/linux/linux-6.6/drivers/gpu/drm/ |
| D | drm_fb_dma_helper.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 6 * Author: Lars-Peter Clausen <lars@metafoo.de> 19 #include <linux/dma-mapping.h> 25 * Provides helper functions for creating a DMA-contiguous framebuffer. 27 * Depending on the platform, the buffers may be physically non-contiguous and 29 * physically-contiguous memory (using, for instance, CMA or a pool of memory 34 * callback function to create a DMA-contiguous framebuffer. 38 * drm_fb_dma_get_gem_obj() - Get DMA GEM object for framebuffer 60 * drm_fb_dma_get_gem_addr() - Get DMA (bus) address for framebuffer, for pixel 77 u32 block_w = drm_format_info_block_width(fb->format, plane); in drm_fb_dma_get_gem_addr() [all …]
|
| /kernel/linux/linux-5.10/kernel/dma/ |
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 88 # Should be selected if we can mmap non-coherent mappings to userspace. 111 bool "DMA Contiguous Memory Allocator" 114 This enables the Contiguous Memory Allocator which allows drivers 115 to allocate big physically-contiguous blocks of memory for use with 116 hardware components that do not support I/O map nor scatter-gather. 121 For more information see <kernel/dma/contiguous.c>. 127 bool "Enable separate DMA Contiguous Memory Area for each NUMA Node" 136 comment "Default contiguous memory area size:" 144 Defines the size (in MiB) of the default memory area for Contiguous [all …]
|
| /kernel/linux/linux-6.6/kernel/dma/ |
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 100 pools as needed. To reduce run-time kernel memory requirements, you 119 <Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt> 124 # Should be selected if we can mmap non-coherent mappings to userspace. 146 bool "DMA Contiguous Memory Allocator" 149 This enables the Contiguous Memory Allocator which allows drivers 150 to allocate big physically-contiguous blocks of memory for use with 151 hardware components that do not support I/O map nor scatter-gather. 156 For more information see <kernel/dma/contiguous.c>. 162 bool "Enable separate DMA Contiguous Memory Area for NUMA Node" [all …]
|
| /kernel/linux/linux-6.6/Documentation/driver-api/dmaengine/ |
| D | provider.rst | 20 DMA-eligible devices to the controller itself. Whenever the device 44 transfer into smaller sub-transfers. 47 that involve a single contiguous block of data. However, some of the 49 non-contiguous buffers to a contiguous buffer, which is called 50 scatter-gather. 53 scatter-gather. So we're left with two cases here: either we have a 56 that implements in hardware scatter-gather. 79 These were just the general memory-to-memory (also called mem2mem) or 80 memory-to-device (mem2dev) kind of transfers. Most devices often 98 documentation file in Documentation/crypto/async-tx-api.rst. [all …]
|
| /kernel/linux/linux-5.10/Documentation/driver-api/dmaengine/ |
| D | provider.rst | 20 DMA-eligible devices to the controller itself. Whenever the device 44 transfer into smaller sub-transfers. 47 that involve a single contiguous block of data. However, some of the 49 non-contiguous buffers to a contiguous buffer, which is called 50 scatter-gather. 53 scatter-gather. So we're left with two cases here: either we have a 56 that implements in hardware scatter-gather. 79 These were just the general memory-to-memory (also called mem2mem) or 80 memory-to-device (mem2dev) kind of transfers. Most devices often 98 documentation file in Documentation/crypto/async-tx-api.rst. [all …]
|
| /kernel/linux/linux-6.6/Documentation/mm/ |
| D | memory-model.rst | 1 .. SPDX-License-Identifier: GPL-2.0 9 spans a contiguous range up to the maximal address. It could be, 11 for the CPU. Then there could be several contiguous ranges at 23 Regardless of the selected memory model, there exists one-to-one 35 non-NUMA systems with contiguous, or mostly contiguous, physical 54 straightforward: `PFN - ARCH_PFN_OFFSET` is an index to the 65 as hot-plug and hot-remove of the physical memory, alternative memory 66 maps for non-volatile memory devices and deferred initialization of 85 NR\_MEM\_SECTIONS = 2 ^ {(MAX\_PHYSMEM\_BITS - SECTION\_SIZE\_BITS)} 87 The `mem_section` objects are arranged in a two-dimensional array [all …]
|
| /kernel/linux/linux-6.6/arch/nios2/ |
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0 49 int "Order of maximal physically contiguous allocations" 53 contiguous allocations. The limit is called MAX_ORDER and it 55 allocated as a single contiguous block. This option allows 57 large blocks of physically contiguous memory is required. 80 2 or 4. Any non-aligned load/store instructions will be trapped and 97 some command-line options at build time by entering them here. In 118 bool "Passed kernel command line from u-boot" 120 Use bootargs env variable from u-boot for kernel command line.
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/exynos/ |
| D | exynos_drm_gem.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 9 #include <linux/dma-buf.h> 22 struct drm_device *dev = exynos_gem->base.dev; in exynos_drm_alloc_buf() 25 if (exynos_gem->dma_addr) { in exynos_drm_alloc_buf() 31 * if EXYNOS_BO_CONTIG, fully physically contiguous memory in exynos_drm_alloc_buf() 32 * region will be allocated else physically contiguous in exynos_drm_alloc_buf() 35 if (!(exynos_gem->flags & EXYNOS_BO_NONCONTIG)) in exynos_drm_alloc_buf() 42 if (exynos_gem->flags & EXYNOS_BO_WC || in exynos_drm_alloc_buf() 43 !(exynos_gem->flags & EXYNOS_BO_CACHABLE)) in exynos_drm_alloc_buf() 50 exynos_gem->dma_attrs = attr; in exynos_drm_alloc_buf() [all …]
|
| D | exynos_drm_fb.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 8 * Seung-Woo Kim <sw0312.kim@samsung.com> 37 flags = exynos_gem->flags; in check_fb_gem_memory_type() 40 * Physically non-contiguous memory type for framebuffer is not in check_fb_gem_memory_type() 44 DRM_DEV_ERROR(drm_dev->dev, in check_fb_gem_memory_type() 45 "Non-contiguous GEM memory is not supported.\n"); in check_fb_gem_memory_type() 46 return -EINVAL; in check_fb_gem_memory_type() 69 return ERR_PTR(-ENOMEM); in exynos_drm_framebuffer_init() 76 fb->obj[i] = &exynos_gem[i]->base; in exynos_drm_framebuffer_init() 83 DRM_DEV_ERROR(dev->dev, in exynos_drm_framebuffer_init() [all …]
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/exynos/ |
| D | exynos_drm_gem.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 9 #include <linux/dma-buf.h> 27 struct drm_device *dev = exynos_gem->base.dev; in exynos_drm_alloc_buf() 30 if (exynos_gem->dma_addr) { in exynos_drm_alloc_buf() 36 * if EXYNOS_BO_CONTIG, fully physically contiguous memory in exynos_drm_alloc_buf() 37 * region will be allocated else physically contiguous in exynos_drm_alloc_buf() 40 if (!(exynos_gem->flags & EXYNOS_BO_NONCONTIG)) in exynos_drm_alloc_buf() 47 if (exynos_gem->flags & EXYNOS_BO_WC || in exynos_drm_alloc_buf() 48 !(exynos_gem->flags & EXYNOS_BO_CACHABLE)) in exynos_drm_alloc_buf() 55 exynos_gem->dma_attrs = attr; in exynos_drm_alloc_buf() [all …]
|
| D | exynos_drm_fb.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 8 * Seung-Woo Kim <sw0312.kim@samsung.com> 37 flags = exynos_gem->flags; in check_fb_gem_memory_type() 40 * Physically non-contiguous memory type for framebuffer is not in check_fb_gem_memory_type() 44 DRM_DEV_ERROR(drm_dev->dev, in check_fb_gem_memory_type() 45 "Non-contiguous GEM memory is not supported.\n"); in check_fb_gem_memory_type() 46 return -EINVAL; in check_fb_gem_memory_type() 69 return ERR_PTR(-ENOMEM); in exynos_drm_framebuffer_init() 76 fb->obj[i] = &exynos_gem[i]->base; in exynos_drm_framebuffer_init() 83 DRM_DEV_ERROR(dev->dev, in exynos_drm_framebuffer_init() [all …]
|
| /kernel/linux/linux-5.10/Documentation/vm/ |
| D | memory-model.rst | 1 .. SPDX-License-Identifier: GPL-2.0 11 spans a contiguous range up to the maximal address. It could be, 13 for the CPU. Then there could be several contiguous ranges at 29 Regardless of the selected memory model, there exists one-to-one 41 non-NUMA systems with contiguous, or mostly contiguous, physical 60 straightforward: `PFN - ARCH_PFN_OFFSET` is an index to the 82 Every `node_mem_map` behaves exactly as FLATMEM's `mem_map` - 96 page->flags. 108 as hot-plug and hot-remove of the physical memory, alternative memory 109 maps for non-volatile memory devices and deferred initialization of [all …]
|
| /kernel/linux/linux-6.6/Documentation/core-api/ |
| D | dma-api.rst | 8 of the API (and actual examples), see Documentation/core-api/dma-api-howto.rst. 11 Part II describes extensions for supporting non-consistent memory 13 non-consistent platforms (this is usually only legacy platforms) you 16 Part I - dma_API 17 ---------------- 19 To get the dma_API, you must #include <linux/dma-mapping.h>. This 27 Part Ia - Using large DMA-coherent buffers 28 ------------------------------------------ 76 Part Ib - Using small DMA-coherent buffers 77 ------------------------------------------ [all …]
|
| /kernel/linux/linux-5.10/Documentation/admin-guide/mm/ |
| D | nommu-mmap.rst | 2 No-MMU memory mapping support 5 The kernel has limited support for memory mapping under no-MMU conditions, such 16 The behaviour is similar between the MMU and no-MMU cases, but not identical; 21 In the MMU case: VM regions backed by arbitrary pages; copy-on-write 24 In the no-MMU case: VM regions backed by arbitrary contiguous runs of 31 the no-MMU case doesn't support these, behaviour is identical to 39 In the no-MMU case: 41 - If one exists, the kernel will re-use an existing mapping to the 45 - If possible, the file mapping will be directly on the backing device 50 - If the backing device can't or won't permit direct sharing, [all …]
|
| D | hugetlbpage.rst | 15 256M and ppc64 supports 4K and 16M. A TLB is a cache of virtual-to-physical 87 Once a number of huge pages have been pre-allocated to the kernel huge page 150 indicates the current number of pre-allocated huge pages of the default size. 161 task that modifies ``nr_hugepages``. The default for the allowed nodes--when the 162 task has default memory policy--is all on-line nodes with memory. Allowed 163 nodes with insufficient available, contiguous memory for a huge page will be 170 physically contiguous memory that is present in system at the time of the 173 allocating extra pages on other nodes with sufficient available contiguous 178 the boot process when the possibility of getting physical contiguous pages 187 requested by applications. Writing any non-zero value into this file [all …]
|
| /kernel/linux/linux-6.6/Documentation/admin-guide/mm/ |
| D | nommu-mmap.rst | 2 No-MMU memory mapping support 5 The kernel has limited support for memory mapping under no-MMU conditions, such 16 The behaviour is similar between the MMU and no-MMU cases, but not identical; 21 In the MMU case: VM regions backed by arbitrary pages; copy-on-write 24 In the no-MMU case: VM regions backed by arbitrary contiguous runs of 31 the no-MMU case doesn't support these, behaviour is identical to 39 In the no-MMU case: 41 - If one exists, the kernel will re-use an existing mapping to the 45 - If possible, the file mapping will be directly on the backing device 50 - If the backing device can't or won't permit direct sharing, [all …]
|
| /kernel/linux/linux-6.6/arch/sh/mm/ |
| D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0 9 Some SH processors (such as SH-2/SH-2A) lack an MMU. In order to 12 On other systems (such as the SH-3 and 4) where an MMU exists, 22 int "Order of maximal physically contiguous allocations" 29 contiguous allocations. The limit is called MAX_ORDER and it 31 allocated as a single contiguous block. This option allows 33 large blocks of physically contiguous memory is required. 77 bool "Support 32-bit physical addressing through PMB" 83 32-bits through the SH-4A PMB. If this is not set, legacy 84 29-bit physical addressing will be used. [all …]
|
| /kernel/linux/linux-5.10/Documentation/driver-api/media/ |
| D | v4l2-videobuf.rst | 1 .. SPDX-License-Identifier: GPL-2.0 18 ------------ 29 a consistent implementation of the V4L2 user-space API. 32 ------------ 37 - Buffers which are scattered in both the physical and (kernel) virtual 38 address spaces. (Almost) all user-space buffers are like this, but it 39 makes great sense to allocate kernel-space buffers this way as well when 44 - Buffers which are physically scattered, but which are virtually 45 contiguous; buffers allocated with vmalloc(), in other words. These 47 useful in situations where DMA is not available but virtually-contiguous [all …]
|
| /kernel/linux/linux-6.6/Documentation/driver-api/media/ |
| D | v4l2-videobuf.rst | 1 .. SPDX-License-Identifier: GPL-2.0 18 ------------ 29 a consistent implementation of the V4L2 user-space API. 32 ------------ 37 - Buffers which are scattered in both the physical and (kernel) virtual 38 address spaces. (Almost) all user-space buffers are like this, but it 39 makes great sense to allocate kernel-space buffers this way as well when 44 - Buffers which are physically scattered, but which are virtually 45 contiguous; buffers allocated with vmalloc(), in other words. These 47 useful in situations where DMA is not available but virtually-contiguous [all …]
|
| /kernel/linux/linux-5.10/Documentation/userspace-api/media/v4l/ |
| D | pixfmt-nv16m.rst | 1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 3 .. _V4L2-PIX-FMT-NV16M: 4 .. _v4l2-pix-fmt-nv61m: 12 non contiguous in memory. 18 This is a multi-planar, two-plane version of the YUV 4:2:2 format. The 19 three components are separated into two sub-images or planes. 21 two planes are non-contiguous in memory, i.e. the chroma plane does not 32 used only in drivers and applications that support the multi-planar API, 33 described in :ref:`planar-apis`. 39 .. flat-table:: [all …]
|
| D | pixfmt-nv12m.rst | 1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 3 .. _V4L2-PIX-FMT-NV12M: 4 .. _v4l2-pix-fmt-nv12mt-16x16: 5 .. _V4L2-PIX-FMT-NV21M: 15 non contiguous in memory. 21 This is a multi-planar, two-plane version of the YUV 4:2:0 format. The 22 three components are separated into two sub-images or planes. 24 two planes are non-contiguous in memory, i.e. the chroma plane do not 40 applications that support the multi-planar API, described in 41 :ref:`planar-apis`. [all …]
|
| /kernel/linux/linux-6.6/tools/perf/pmu-events/arch/arm64/ |
| D | common-and-microarch.json | 129 "PublicDescription": "Attributable Level 1 data cache write-back", 132 "BriefDescription": "Attributable Level 1 data cache write-back" 147 "PublicDescription": "Attributable Level 2 data cache write-back", 150 "BriefDescription": "Attributable Level 2 data cache write-back" 273 "PublicDescription": "Access to another socket in a multi-socket system", 276 "BriefDescription": "Access to another socket in a multi-socket system" 303 … "PublicDescription": "Attributable memory read access to another socket in a multi-socket system", 306 … "BriefDescription": "Attributable memory read access to another socket in a multi-socket system" 309 …"PublicDescription": "Level 1 data cache long-latency read miss. The counter counts each memory r… 312 "BriefDescription": "Level 1 data cache long-latency read miss" [all …]
|
| /kernel/linux/linux-6.6/drivers/vfio/pci/ |
| D | vfio_pci_igd.c | 1 // SPDX-License-Identifier: GPL-2.0-only 8 * Register a device specific region through which to provide read-only 34 * igd_opregion_shift_copy() - Copy OpRegion to user buffer and shift position. 44 * Return: 0 on success, -EFAULT otherwise. 55 return -EFAULT; in igd_opregion_shift_copy() 59 *remaining -= bytes; in igd_opregion_shift_copy() 68 unsigned int i = VFIO_PCI_OFFSET_TO_INDEX(*ppos) - VFIO_PCI_NUM_REGIONS; in vfio_pci_igd_rw() 69 struct igd_opregion_vbt *opregionvbt = vdev->region[i].data; in vfio_pci_igd_rw() 73 if (pos >= vdev->region[i].size || iswrite) in vfio_pci_igd_rw() 74 return -EINVAL; in vfio_pci_igd_rw() [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/arm/ |
| D | arm,coresight-catu.yaml | 1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 3 --- 4 $id: http://devicetree.org/schemas/arm/arm,coresight-catu.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Mathieu Poirier <mathieu.poirier@linaro.org> 11 - Mike Leach <mike.leach@linaro.org> 12 - Leo Yan <leo.yan@linaro.org> 13 - Suzuki K Poulose <suzuki.poulose@arm.com> 26 translates contiguous Virtual Addresses (VAs) from an AXI master into 27 non-contiguous Physical Addresses (PAs) that are intended for system memory. [all …]
|
| /kernel/linux/linux-6.6/mm/ |
| D | util.c | 1 // SPDX-License-Identifier: GPL-2.0-only 20 #include <linux/elf-randomize.h> 33 * kfree_const - conditionally free memory 46 * kstrdup - allocate space for and copy an existing string 70 * kstrdup_const - conditionally duplicate an existing const string 90 * kstrndup - allocate space for and copy an existing string 118 * kmemdup - duplicate region of memory 125 * result is physically contiguous. Use kfree() to free. 139 * kvmemdup - duplicate region of memory 146 * result may be not physically contiguous. Use kvfree() to free. [all …]
|