| /kernel/linux/linux-6.6/mm/ |
| D | dmapool.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * DMA Pool allocator 9 * This allocator returns small blocks of a given size which are DMA-able by 14 * The current design of this allocator is fairly simple. The pool is 15 * represented by the 'struct dma_pool' which keeps a doubly-linked list of 17 * least 'size' bytes. Free blocks are tracked in an unsorted singly-linked 23 #include <linux/dma-mapping.h> 45 dma_addr_t dma; member 48 struct dma_pool { /* the pool */ 66 dma_addr_t dma; member [all …]
|
| /kernel/linux/linux-5.10/mm/ |
| D | dmapool.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * DMA Pool allocator 9 * This allocator returns small blocks of a given size which are DMA-able by 14 * The current design of this allocator is fairly simple. The pool is 15 * represented by the 'struct dma_pool' which keeps a doubly-linked list of 17 * least 'size' bytes. Free blocks are tracked in an unsorted singly-linked 23 #include <linux/dma-mapping.h> 42 struct dma_pool { /* the pool */ 56 dma_addr_t dma; member 71 struct dma_pool *pool; in show_pools() local [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/reserved-memory/ |
| D | shared-dma-pool.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/reserved-memory/shared-dma-pool.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: /reserved-memory DMA pool 10 - devicetree-spec@vger.kernel.org 13 - $ref: reserved-memory.yaml 18 - const: shared-dma-pool 21 pool of DMA buffers for a set of devices. It can be used by an 22 operating system to instantiate the necessary pool management [all …]
|
| /kernel/linux/linux-5.10/net/core/ |
| D | page_pool.c | 1 /* SPDX-License-Identifier: GPL-2.0 14 #include <linux/dma-direction.h> 15 #include <linux/dma-mapping.h> 16 #include <linux/page-flags.h> 24 static int page_pool_init(struct page_pool *pool, in page_pool_init() argument 29 memcpy(&pool->p, params, sizeof(pool->p)); in page_pool_init() 32 if (pool->p.flags & ~(PP_FLAG_ALL)) in page_pool_init() 33 return -EINVAL; in page_pool_init() 35 if (pool->p.pool_size) in page_pool_init() 36 ring_qsize = pool->p.pool_size; in page_pool_init() [all …]
|
| /kernel/linux/linux-5.10/net/xdp/ |
| D | xsk_buff_pool.c | 1 // SPDX-License-Identifier: GPL-2.0 11 void xp_add_xsk(struct xsk_buff_pool *pool, struct xdp_sock *xs) in xp_add_xsk() argument 15 if (!xs->tx) in xp_add_xsk() 18 spin_lock_irqsave(&pool->xsk_tx_list_lock, flags); in xp_add_xsk() 19 list_add_rcu(&xs->tx_list, &pool->xsk_tx_list); in xp_add_xsk() 20 spin_unlock_irqrestore(&pool->xsk_tx_list_lock, flags); in xp_add_xsk() 23 void xp_del_xsk(struct xsk_buff_pool *pool, struct xdp_sock *xs) in xp_del_xsk() argument 27 if (!xs->tx) in xp_del_xsk() 30 spin_lock_irqsave(&pool->xsk_tx_list_lock, flags); in xp_del_xsk() 31 list_del_rcu(&xs->tx_list); in xp_del_xsk() [all …]
|
| /kernel/linux/linux-5.10/lib/ |
| D | genalloc.c | 1 // SPDX-License-Identifier: GPL-2.0-only 5 * kmalloc/kfree interface. Uses for this includes on-device special 16 * available. If new memory is added to the pool a lock has to be 21 * On architectures that don't have NMI-safe cmpxchg implementation, 26 * Copyright 2005 (C) Jes Sorensen <jes@trained-monkey.org> 40 return chunk->end_addr - chunk->start_addr + 1; in chunk_size() 51 return -EBUSY; in set_bits_ll() 66 return -EBUSY; in clear_bits_ll() 74 * bitmap_set_ll - set the specified number of bits at the specified position 79 * Set @nr bits start from @start in @map lock-lessly. Several users [all …]
|
| /kernel/linux/linux-6.6/lib/ |
| D | genalloc.c | 1 // SPDX-License-Identifier: GPL-2.0-only 5 * kmalloc/kfree interface. Uses for this includes on-device special 16 * available. If new memory is added to the pool a lock has to be 21 * On architectures that don't have NMI-safe cmpxchg implementation, 26 * Copyright 2005 (C) Jes Sorensen <jes@trained-monkey.org> 42 return chunk->end_addr - chunk->start_addr + 1; in chunk_size() 52 return -EBUSY; in set_bits_ll() 66 return -EBUSY; in clear_bits_ll() 74 * bitmap_set_ll - set the specified number of bits at the specified position 79 * Set @nr bits start from @start in @map lock-lessly. Several users [all …]
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/ttm/ |
| D | ttm_pool.c | 1 // SPDX-License-Identifier: GPL-2.0 OR MIT 30 * Additional to that allocations from the DMA coherent API are pooled as well 35 #include <linux/dma-mapping.h> 51 * struct ttm_pool_dma - Helper object for coherent DMA mappings 53 * @addr: original DMA address returned for the mapping 63 MODULE_PARM_DESC(page_pool_size, "Number of pages in the WC/UC/DMA pool"); 79 static struct page *ttm_pool_alloc_page(struct ttm_pool *pool, gfp_t gfp_flags, in ttm_pool_alloc_page() argument 83 struct ttm_pool_dma *dma; in ttm_pool_alloc_page() local 95 if (!pool->use_dma_alloc) { in ttm_pool_alloc_page() 96 p = alloc_pages_node(pool->nid, gfp_flags, order); in ttm_pool_alloc_page() [all …]
|
| /kernel/linux/linux-6.6/drivers/net/ipa/ |
| D | gsi_trans.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. 4 * Copyright (C) 2019-2022 Linaro Ltd. 12 #include <linux/dma-direction.h> 29 * struct gsi_trans - a GSI transaction 41 * @direction: DMA transfer direction (DMA_NONE for commands) 76 * gsi_trans_pool_init() - Initialize a pool of structures for transactions 77 * @pool: GSI transaction pool pointer 78 * @size: Size of elements in the pool 79 * @count: Minimum number of elements in the pool [all …]
|
| /kernel/linux/linux-6.6/drivers/scsi/lpfc/ |
| D | lpfc_mem.c | 4 * Copyright (C) 2017-2022 Broadcom. All Rights Reserved. The term * 6 * Copyright (C) 2004-2014 Emulex. All rights reserved. * 9 * Portions Copyright (C) 2004-2005 Christoph Hellwig * 17 * FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT, ARE * 45 #define LPFC_MBUF_POOL_SIZE 64 /* max elements in MBUF safety pool */ 46 #define LPFC_MEM_POOL_SIZE 64 /* max elem in non-DMA safety pool */ 47 #define LPFC_DEVICE_DATA_POOL_SIZE 64 /* max elements in device data pool */ 48 #define LPFC_RRQ_POOL_SIZE 256 /* max elements in non-DMA pool */ 49 #define LPFC_MBX_POOL_SIZE 256 /* max elements in MBX non-DMA pool */ 54 int max_xri = phba->sli4_hba.max_cfg_param.max_xri; in lpfc_mem_alloc_active_rrq_pool_s4() [all …]
|
| /kernel/linux/linux-5.10/drivers/scsi/lpfc/ |
| D | lpfc_mem.c | 4 * Copyright (C) 2017-2018 Broadcom. All Rights Reserved. The term * 6 * Copyright (C) 2004-2014 Emulex. All rights reserved. * 9 * Portions Copyright (C) 2004-2005 Christoph Hellwig * 17 * FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT, ARE * 45 #define LPFC_MBUF_POOL_SIZE 64 /* max elements in MBUF safety pool */ 46 #define LPFC_MEM_POOL_SIZE 64 /* max elem in non-DMA safety pool */ 47 #define LPFC_DEVICE_DATA_POOL_SIZE 64 /* max elements in device data pool */ 48 #define LPFC_RRQ_POOL_SIZE 256 /* max elements in non-DMA pool */ 49 #define LPFC_MBX_POOL_SIZE 256 /* max elements in MBX non-DMA pool */ 54 int max_xri = phba->sli4_hba.max_cfg_param.max_xri; in lpfc_mem_alloc_active_rrq_pool_s4() [all …]
|
| /kernel/linux/linux-6.6/net/xdp/ |
| D | xsk_buff_pool.c | 1 // SPDX-License-Identifier: GPL-2.0 11 void xp_add_xsk(struct xsk_buff_pool *pool, struct xdp_sock *xs) in xp_add_xsk() argument 15 if (!xs->tx) in xp_add_xsk() 18 spin_lock_irqsave(&pool->xsk_tx_list_lock, flags); in xp_add_xsk() 19 list_add_rcu(&xs->tx_list, &pool->xsk_tx_list); in xp_add_xsk() 20 spin_unlock_irqrestore(&pool->xsk_tx_list_lock, flags); in xp_add_xsk() 23 void xp_del_xsk(struct xsk_buff_pool *pool, struct xdp_sock *xs) in xp_del_xsk() argument 27 if (!xs->tx) in xp_del_xsk() 30 spin_lock_irqsave(&pool->xsk_tx_list_lock, flags); in xp_del_xsk() 31 list_del_rcu(&xs->tx_list); in xp_del_xsk() [all …]
|
| /kernel/linux/linux-5.10/drivers/net/ipa/ |
| D | gsi_trans.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. 4 * Copyright (C) 2019-2020 Linaro Ltd. 12 #include <linux/dma-direction.h> 25 * struct gsi_trans - a GSI transaction 38 * @direction: DMA transfer direction (DMA_NONE for commands) 72 * gsi_trans_pool_init() - Initialize a pool of structures for transactions 74 * @size: Size of elements in the pool 75 * @count: Minimum number of elements in the pool 76 * @max_alloc: Maximum number of elements allocated at a time from pool [all …]
|
| /kernel/linux/linux-5.10/drivers/media/platform/vsp1/ |
| D | vsp1_dl.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * vsp1_dl.c -- R-Car VSP1 Display List 11 #include <linux/dma-mapping.h> 41 * struct vsp1_dl_ext_header - Extended display list header 43 * @pre_ext_dl_num_cmd: number of pre-extended command bodies to parse 45 * @pre_ext_dl_plist: start address of pre-extended display list bodies 46 * @post_ext_dl_num_cmd: number of post-extended command bodies to parse 47 * @post_ext_dl_plist: start address of post-extended display list bodies 54 * expecting 32-bit accesses. The flags are appropriate to the whole 79 * struct vsp1_pre_ext_dl_body - Pre Extended Display List Body [all …]
|
| /kernel/linux/linux-6.6/drivers/media/platform/renesas/vsp1/ |
| D | vsp1_dl.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * vsp1_dl.c -- R-Car VSP1 Display List 11 #include <linux/dma-mapping.h> 41 * struct vsp1_dl_ext_header - Extended display list header 43 * @pre_ext_dl_num_cmd: number of pre-extended command bodies to parse 45 * @pre_ext_dl_plist: start address of pre-extended display list bodies 46 * @post_ext_dl_num_cmd: number of post-extended command bodies to parse 47 * @post_ext_dl_plist: start address of post-extended display list bodies 54 * expecting 32-bit accesses. The flags are appropriate to the whole 79 * struct vsp1_pre_ext_dl_body - Pre Extended Display List Body [all …]
|
| /kernel/linux/linux-5.10/drivers/dma/ |
| D | coh901318.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 3 * Copyright (C) 2007-2013 ST-Ericsson 4 * DMA driver for COH 901 318 27 * struct coh901318_lli - linked list item for DMAC 46 * coh901318_pool_create() - Creates an dma pool for lli:s 47 * @pool: pool handle 48 * @dev: dma device 49 * @lli_nbr: number of lli:s in the pool 53 int coh901318_pool_create(struct coh901318_pool *pool, 58 * coh901318_pool_destroy() - Destroys the dma pool [all …]
|
| /kernel/linux/linux-6.6/net/core/ |
| D | page_pool.c | 1 /* SPDX-License-Identifier: GPL-2.0 16 #include <linux/dma-direction.h> 17 #include <linux/dma-mapping.h> 18 #include <linux/page-flags.h> 33 #define alloc_stat_inc(pool, __stat) (pool->alloc_stats.__stat++) argument 35 #define recycle_stat_inc(pool, __stat) \ argument 37 struct page_pool_recycle_stats __percpu *s = pool->recycle_stats; \ 38 this_cpu_inc(s->__stat); \ 41 #define recycle_stat_add(pool, __stat, val) \ argument 43 struct page_pool_recycle_stats __percpu *s = pool->recycle_stats; \ [all …]
|
| /kernel/linux/linux-6.6/include/net/page_pool/ |
| D | helpers.h | 1 /* SPDX-License-Identifier: GPL-2.0 12 * uses one frame per-page, but it can fallback on the 19 * The API keeps track of in-flight pages, in order to let API users know 22 * the page to a page_pool-aware object like skbs marked with 27 * release the DMA mapping and in-flight state accounting. 40 * Drivers that wish to harvest page pool stats and report them to users 42 * struct page_pool_stats call page_pool_get_stats to get stats for the specified pool. 44 bool page_pool_get_stats(struct page_pool *pool, 64 * page_pool_dev_alloc_pages() - allocate a page. 65 * @pool: pool from which to allocate [all …]
|
| /kernel/linux/linux-6.6/include/net/ |
| D | xsk_buff_pool.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 9 #include <linux/dma-mapping.h> 27 dma_addr_t dma; member 29 struct xsk_buff_pool *pool; member 65 /* For performance reasons, each buff pool has its own array of dma_pages 94 * The low 12-bits of the addr will be 0 since this is the page address, so we 103 int xp_assign_dev(struct xsk_buff_pool *pool, struct net_device *dev, 105 int xp_assign_dev_shared(struct xsk_buff_pool *pool, struct xdp_sock *umem_xs, 107 int xp_alloc_tx_descs(struct xsk_buff_pool *pool, struct xdp_sock *xs); 108 void xp_destroy(struct xsk_buff_pool *pool); [all …]
|
| /kernel/linux/linux-5.10/include/net/ |
| D | page_pool.h | 1 /* SPDX-License-Identifier: GPL-2.0 12 * uses one-frame-per-page, but have fallbacks that act like the 19 * API keeps track of in-flight pages, in-order to let API user know 27 * will release the DMA mapping and in-flight state accounting. We 35 #include <linux/dma-direction.h> 37 #define PP_FLAG_DMA_MAP BIT(0) /* Should page_pool do the DMA 42 * DMA-synced-for-device according to 45 * Please note DMA-sync-for-CPU is still 54 * use-case. The NAPI budget is 64 packets. After a NAPI poll the RX 58 * Keeping room for more objects, is due to XDP_DROP use-case. As [all …]
|
| D | xsk_buff_pool.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 9 #include <linux/dma-mapping.h> 23 dma_addr_t dma; member 25 struct xsk_buff_pool *pool; member 58 /* For performance reasons, each buff pool has its own array of dma_pages 87 int xp_assign_dev(struct xsk_buff_pool *pool, struct net_device *dev, 89 int xp_assign_dev_shared(struct xsk_buff_pool *pool, struct xdp_sock *umem_xs, 91 void xp_destroy(struct xsk_buff_pool *pool); 93 void xp_get_pool(struct xsk_buff_pool *pool); 94 bool xp_put_pool(struct xsk_buff_pool *pool); [all …]
|
| /kernel/linux/linux-5.10/drivers/net/ethernet/ti/ |
| D | k3-cppi-desc-pool.c | 1 // SPDX-License-Identifier: GPL-2.0 2 /* TI K3 CPPI5 descriptors pool API 4 * Copyright (C) 2020 Texas Instruments Incorporated - http://www.ti.com 10 #include <linux/dma-mapping.h> 15 #include "k3-cppi-desc-pool.h" 27 void k3_cppi_desc_pool_destroy(struct k3_cppi_desc_pool *pool) in k3_cppi_desc_pool_destroy() argument 29 if (!pool) in k3_cppi_desc_pool_destroy() 32 WARN(gen_pool_size(pool->gen_pool) != gen_pool_avail(pool->gen_pool), in k3_cppi_desc_pool_destroy() 34 gen_pool_size(pool->gen_pool), in k3_cppi_desc_pool_destroy() 35 gen_pool_avail(pool->gen_pool)); in k3_cppi_desc_pool_destroy() [all …]
|
| /kernel/linux/linux-6.6/drivers/net/ethernet/ti/ |
| D | k3-cppi-desc-pool.c | 1 // SPDX-License-Identifier: GPL-2.0 2 /* TI K3 CPPI5 descriptors pool API 4 * Copyright (C) 2020 Texas Instruments Incorporated - http://www.ti.com 10 #include <linux/dma-mapping.h> 15 #include "k3-cppi-desc-pool.h" 27 void k3_cppi_desc_pool_destroy(struct k3_cppi_desc_pool *pool) in k3_cppi_desc_pool_destroy() argument 29 if (!pool) in k3_cppi_desc_pool_destroy() 32 WARN(gen_pool_size(pool->gen_pool) != gen_pool_avail(pool->gen_pool), in k3_cppi_desc_pool_destroy() 34 gen_pool_size(pool->gen_pool), in k3_cppi_desc_pool_destroy() 35 gen_pool_avail(pool->gen_pool)); in k3_cppi_desc_pool_destroy() [all …]
|
| /kernel/linux/linux-5.10/arch/arm/common/ |
| D | dmabounce.c | 1 // SPDX-License-Identifier: GPL-2.0-only 6 * limited DMA windows. These functions utilize bounce buffers to 7 * copy data to/from buffers located outside the DMA region. This 8 * only works for systems in which DMA memory is at the bottom of 9 * RAM, the remainder of memory is at the top and the DMA memory 11 * DMA windows will require custom implementations that reserve memory 15 * Re-written by Christopher Hoover <ch@murgatroid.com> 25 #include <linux/page-flags.h> 27 #include <linux/dma-direct.h> 28 #include <linux/dma-map-ops.h> [all …]
|
| /kernel/linux/linux-6.6/arch/arm64/boot/dts/ti/ |
| D | k3-j721e-som-p0.dtsi | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (C) 2019-2020 Texas Instruments Incorporated - https://www.ti.com/ 8 /dts-v1/; 10 #include "k3-j721e.dtsi" 20 reserved_memory: reserved-memory { 21 #address-cells = <2>; 22 #size-cells = <2>; 28 no-map; 31 mcu_r5fss0_core0_dma_memory_region: r5f-dma-memory@a0000000 { 32 compatible = "shared-dma-pool"; [all …]
|