/Linux-v5.10/mm/ |
D | cma_debug.c | 36 struct cma *cma = data; in cma_used_get() local 39 mutex_lock(&cma->lock); in cma_used_get() 41 used = bitmap_weight(cma->bitmap, (int)cma_bitmap_maxno(cma)); in cma_used_get() 42 mutex_unlock(&cma->lock); in cma_used_get() 43 *val = (u64)used << cma->order_per_bit; in cma_used_get() 51 struct cma *cma = data; in cma_maxchunk_get() local 54 unsigned long bitmap_maxno = cma_bitmap_maxno(cma); in cma_maxchunk_get() 56 mutex_lock(&cma->lock); in cma_maxchunk_get() 58 start = find_next_zero_bit(cma->bitmap, bitmap_maxno, end); in cma_maxchunk_get() 61 end = find_next_bit(cma->bitmap, bitmap_maxno, start); in cma_maxchunk_get() [all …]
|
D | cma.c | 39 struct cma cma_areas[MAX_CMA_AREAS]; 43 phys_addr_t cma_get_base(const struct cma *cma) in cma_get_base() argument 45 return PFN_PHYS(cma->base_pfn); in cma_get_base() 48 unsigned long cma_get_size(const struct cma *cma) in cma_get_size() argument 50 return cma->count << PAGE_SHIFT; in cma_get_size() 53 const char *cma_get_name(const struct cma *cma) in cma_get_name() argument 55 return cma->name; in cma_get_name() 58 static unsigned long cma_bitmap_aligned_mask(const struct cma *cma, in cma_bitmap_aligned_mask() argument 61 if (align_order <= cma->order_per_bit) in cma_bitmap_aligned_mask() 63 return (1UL << (align_order - cma->order_per_bit)) - 1; in cma_bitmap_aligned_mask() [all …]
|
D | cma.h | 7 struct cma { struct 21 extern struct cma cma_areas[MAX_CMA_AREAS]; argument 24 static inline unsigned long cma_bitmap_maxno(struct cma *cma) in cma_bitmap_maxno() argument 26 return cma->count >> cma->order_per_bit; in cma_bitmap_maxno()
|
/Linux-v5.10/include/linux/ |
D | cma.h | 23 struct cma; 26 extern phys_addr_t cma_get_base(const struct cma *cma); 27 extern unsigned long cma_get_size(const struct cma *cma); 28 extern const char *cma_get_name(const struct cma *cma); 33 bool fixed, const char *name, struct cma **res_cma, 38 bool fixed, const char *name, struct cma **res_cma) in cma_declare_contiguous() 46 struct cma **res_cma); 47 extern struct page *cma_alloc(struct cma *cma, size_t count, unsigned int align, 49 extern bool cma_release(struct cma *cma, const struct page *pages, unsigned int count); 51 extern int cma_for_each_area(int (*it)(struct cma *cma, void *data), void *data);
|
D | dma-map-ops.h | 12 struct cma; 101 extern struct cma *dma_contiguous_default_area; 103 static inline struct cma *dev_get_cma_area(struct device *dev) in dev_get_cma_area() 112 phys_addr_t limit, struct cma **res_cma, bool fixed); 123 static inline struct cma *dev_get_cma_area(struct device *dev) in dev_get_cma_area() 131 phys_addr_t base, phys_addr_t limit, struct cma **res_cma, in dma_contiguous_reserve_area()
|
/Linux-v5.10/drivers/staging/android/ion/ |
D | ion_cma_heap.c | 21 struct cma *cma; member 42 pages = cma_alloc(cma_heap->cma, nr_pages, align, false); in ion_cma_allocate() 79 cma_release(cma_heap->cma, pages, nr_pages); in ion_cma_allocate() 90 cma_release(cma_heap->cma, pages, nr_pages); in ion_cma_free() 104 static struct ion_heap *__ion_cma_heap_create(struct cma *cma) in __ion_cma_heap_create() argument 114 cma_heap->cma = cma; in __ion_cma_heap_create() 119 static int __ion_add_cma_heaps(struct cma *cma, void *data) in __ion_add_cma_heaps() argument 123 heap = __ion_cma_heap_create(cma); in __ion_add_cma_heaps() 127 heap->name = cma_get_name(cma); in __ion_add_cma_heaps()
|
/Linux-v5.10/kernel/dma/ |
D | contiguous.c | 60 struct cma *dma_contiguous_default_area; 101 static struct cma *dma_contiguous_pernuma_area[MAX_NUMNODES]; 141 struct cma **cma = &dma_contiguous_pernuma_area[nid]; in dma_pernuma_cma_reserve() local 145 0, false, name, cma, nid); in dma_pernuma_cma_reserve() 228 phys_addr_t limit, struct cma **res_cma, in dma_contiguous_reserve_area() 282 static struct page *cma_alloc_aligned(struct cma *cma, size_t size, gfp_t gfp) in cma_alloc_aligned() argument 286 return cma_alloc(cma, size >> PAGE_SHIFT, align, gfp & __GFP_NOWARN); in cma_alloc_aligned() 320 struct cma *cma = dma_contiguous_pernuma_area[nid]; in dma_alloc_contiguous() local 323 if (cma) { in dma_alloc_contiguous() 324 page = cma_alloc_aligned(cma, size, gfp); in dma_alloc_contiguous() [all …]
|
D | pool.c | 63 struct cma *cma; in cma_in_zone() local 65 cma = dev_get_cma_area(NULL); in cma_in_zone() 66 if (!cma) in cma_in_zone() 69 size = cma_get_size(cma); in cma_in_zone() 74 end = cma_get_base(cma) + size - 1; in cma_in_zone()
|
D | Kconfig | 118 You can disable CMA by specifying "cma=0" on the kernel's command 146 default, but it can be enabled by passing cma=size[MG] to the kernel. 158 enabled by passing cma=size[MG] to the kernel.
|
/Linux-v5.10/drivers/dma-buf/heaps/ |
D | cma_heap.c | 26 struct cma *cma; member 38 cma_release(cma_heap->cma, cma_pages, nr_pages); in cma_heap_free() 69 cma_pages = cma_alloc(cma_heap->cma, nr_pages, align, false); in cma_heap_allocate() 130 cma_release(cma_heap->cma, cma_pages, nr_pages); in cma_heap_allocate() 140 static int __add_cma_heap(struct cma *cma, void *data) in __add_cma_heap() argument 148 cma_heap->cma = cma; in __add_cma_heap() 150 exp_info.name = cma_get_name(cma); in __add_cma_heap() 167 struct cma *default_cma = dev_get_cma_area(NULL); in add_default_cma_heap()
|
/Linux-v5.10/Documentation/admin-guide/mm/ |
D | cma_debugfs.rst | 8 Each CMA zone represents a directory under <debugfs>/cma/, indexed by the 11 <debugfs>/cma/cma-0 21 echo 5 > <debugfs>/cma/cma-2/alloc 23 would try to allocate 5 pages from the cma-2 area.
|
/Linux-v5.10/arch/s390/mm/ |
D | init.c | 239 static int s390_cma_check_range(struct cma *cma, void *data) in s390_cma_check_range() argument 245 start = cma_get_base(cma); in s390_cma_check_range() 246 end = start + cma_get_size(cma); in s390_cma_check_range()
|
/Linux-v5.10/arch/xtensa/boot/dts/ |
D | kc705.dts | 22 linux,cma { 28 linux,cma-default;
|
/Linux-v5.10/Documentation/devicetree/bindings/reserved-memory/ |
D | reserved-memory.txt | 71 - If a "linux,cma-default" property is present, then Linux will use the 89 one default of all device drivers (named linux,cma@72000000 and 64MiB in size), 107 linux,cma { 112 linux,cma-default;
|
/Linux-v5.10/arch/arm64/boot/dts/amlogic/ |
D | meson-a1.dtsi | 52 linux,cma { 57 linux,cma-default;
|
/Linux-v5.10/include/trace/events/ |
D | cma.h | 3 #define TRACE_SYSTEM cma
|
/Linux-v5.10/drivers/gpu/drm/nouveau/include/nvkm/subdev/ |
D | pci.h | 24 bool cma; member
|
/Linux-v5.10/arch/arm/boot/dts/ |
D | imx6ul-ccimx6ulsom.dtsi | 20 linux,cma { 24 linux,cma-default;
|
D | bcm283x.dtsi | 38 cma: linux,cma { label 42 linux,cma-default;
|
/Linux-v5.10/drivers/infiniband/core/ |
D | Makefile | 25 rdma_cm-y := cma.o cma_trace.o
|
/Linux-v5.10/arch/arm/mach-davinci/ |
D | devices-da8xx.c | 887 struct cma *cma; in da8xx_rproc_reserve_cma() local 901 ret = dma_contiguous_reserve_area(rproc_size, rproc_base, 0, &cma, in da8xx_rproc_reserve_cma() 908 da8xx_dsp.dev.cma_area = cma; in da8xx_rproc_reserve_cma()
|
/Linux-v5.10/drivers/gpu/drm/nouveau/ |
D | nouveau_ttm.c | 313 drm->agp.cma = pci->agp.cma; in nouveau_ttm_init()
|
D | nouveau_drv.h | 151 bool cma; member
|
/Linux-v5.10/arch/arm/mach-shmobile/ |
D | setup-rcar-gen2.c | 188 static struct cma *rcar_gen2_dma_contiguous; in rcar_gen2_reserve()
|
/Linux-v5.10/drivers/gpu/drm/nouveau/nvkm/subdev/pci/ |
D | agp.c | 135 pci->agp.cma = info.cant_use_aperture; in nvkm_agp_ctor()
|