| /OK3568_Linux_fs/kernel/mm/ |
| H A D | cma.c | 48 struct cma cma_areas[MAX_CMA_AREAS]; 52 phys_addr_t cma_get_base(const struct cma *cma) in cma_get_base() argument 54 return PFN_PHYS(cma->base_pfn); in cma_get_base() 57 unsigned long cma_get_size(const struct cma *cma) in cma_get_size() argument 59 return cma->count << PAGE_SHIFT; in cma_get_size() 62 const char *cma_get_name(const struct cma *cma) in cma_get_name() argument 64 return cma->name; in cma_get_name() 68 static unsigned long cma_bitmap_aligned_mask(const struct cma *cma, in cma_bitmap_aligned_mask() argument 71 if (align_order <= cma->order_per_bit) in cma_bitmap_aligned_mask() 73 return (1UL << (align_order - cma->order_per_bit)) - 1; in cma_bitmap_aligned_mask() [all …]
|
| H A 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 …]
|
| H A D | cma_sysfs.c | 20 void cma_sysfs_account_success_pages(struct cma *cma, unsigned long nr_pages) in cma_sysfs_account_success_pages() argument 22 atomic64_add(nr_pages, &cma->nr_pages_succeeded); in cma_sysfs_account_success_pages() 25 void cma_sysfs_account_fail_pages(struct cma *cma, unsigned long nr_pages) in cma_sysfs_account_fail_pages() argument 27 atomic64_add(nr_pages, &cma->nr_pages_failed); in cma_sysfs_account_fail_pages() 30 static inline struct cma *cma_from_kobj(struct kobject *kobj) in cma_from_kobj() 32 return container_of(kobj, struct cma_kobject, kobj)->cma; in cma_from_kobj() 38 struct cma *cma = cma_from_kobj(kobj); in alloc_pages_success_show() local 41 atomic64_read(&cma->nr_pages_succeeded)); in alloc_pages_success_show() 48 struct cma *cma = cma_from_kobj(kobj); in alloc_pages_fail_show() local 50 return sysfs_emit(buf, "%llu\n", atomic64_read(&cma->nr_pages_failed)); in alloc_pages_fail_show() [all …]
|
| H A D | cma.h | 11 struct cma *cma; member 14 struct cma { struct 37 extern struct cma cma_areas[MAX_CMA_AREAS]; argument 40 static inline unsigned long cma_bitmap_maxno(struct cma *cma) in cma_bitmap_maxno() argument 42 return cma->count >> cma->order_per_bit; in cma_bitmap_maxno() 46 void cma_sysfs_account_success_pages(struct cma *cma, unsigned long nr_pages); 47 void cma_sysfs_account_fail_pages(struct cma *cma, unsigned long nr_pages); 49 static inline void cma_sysfs_account_success_pages(struct cma *cma, in cma_sysfs_account_success_pages() argument 51 static inline void cma_sysfs_account_fail_pages(struct cma *cma, in cma_sysfs_account_fail_pages() argument
|
| H A D | cma_debug_bitmap_hex.c | 94 static int cma_debugfs_add_one(struct cma *cma, struct dentry *root_dentry) in cma_debugfs_add_one() argument 99 scnprintf(name, sizeof(name), "cma-%s", cma->name); in cma_debugfs_add_one() 105 debugfs_create_u32_array_hex("bitmap_hex", 0444, tmp, &cma->dfs_bitmap); in cma_debugfs_add_one()
|
| /OK3568_Linux_fs/kernel/drivers/soc/rockchip/ |
| H A D | rk_cma_procfs.c | 30 static void cma_procfs_show_bitmap(struct seq_file *s, struct cma *cma) in cma_procfs_show_bitmap() argument 32 int elements = DIV_ROUND_UP(cma_bitmap_maxno(cma), BITS_PER_BYTE * sizeof(u32)); in cma_procfs_show_bitmap() 34 u32 *array = (u32 *)cma->bitmap; in cma_procfs_show_bitmap() 48 static u64 cma_procfs_used_get(struct cma *cma) in cma_procfs_used_get() argument 52 mutex_lock(&cma->lock); in cma_procfs_used_get() 53 used = bitmap_weight(cma->bitmap, (int)cma_bitmap_maxno(cma)); in cma_procfs_used_get() 54 mutex_unlock(&cma->lock); in cma_procfs_used_get() 56 return (u64)used << cma->order_per_bit; in cma_procfs_used_get() 61 struct cma *cma = s->private; in cma_procfs_show() local 62 u64 used = cma_procfs_used_get(cma); in cma_procfs_show() [all …]
|
| /OK3568_Linux_fs/kernel/include/linux/ |
| H A D | cma.h | 23 struct cma; 35 extern phys_addr_t cma_get_base(const struct cma *cma); 36 extern unsigned long cma_get_size(const struct cma *cma); 37 extern const char *cma_get_name(const struct cma *cma); 42 bool fixed, const char *name, struct cma **res_cma, 47 bool fixed, const char *name, struct cma **res_cma) in cma_declare_contiguous() 55 struct cma **res_cma); 56 extern struct page *cma_alloc(struct cma *cma, size_t count, unsigned int align, 58 extern bool cma_release(struct cma *cma, const struct page *pages, unsigned int count); 62 extern int cma_for_each_area(int (*it)(struct cma *cma, void *data), void *data);
|
| H A D | dma-map-ops.h | 13 struct cma; 107 extern struct cma *dma_contiguous_default_area; 109 static inline struct cma *dev_get_cma_area(struct device *dev) in dev_get_cma_area() 118 phys_addr_t limit, struct cma **res_cma, bool fixed); 129 static inline struct cma *dev_get_cma_area(struct device *dev) in dev_get_cma_area() 137 phys_addr_t base, phys_addr_t limit, struct cma **res_cma, in dma_contiguous_reserve_area()
|
| /OK3568_Linux_fs/kernel/kernel/dma/ |
| H A D | contiguous.c | 61 struct cma *dma_contiguous_default_area; 103 static struct cma *dma_contiguous_pernuma_area[MAX_NUMNODES]; 143 struct cma **cma = &dma_contiguous_pernuma_area[nid]; in dma_pernuma_cma_reserve() local 147 0, false, name, cma, nid); in dma_pernuma_cma_reserve() 230 phys_addr_t limit, struct cma **res_cma, in dma_contiguous_reserve_area() 285 static struct page *cma_alloc_aligned(struct cma *cma, size_t size, gfp_t gfp) in cma_alloc_aligned() argument 289 return cma_alloc(cma, size >> PAGE_SHIFT, align, in cma_alloc_aligned() 329 struct cma *cma = dma_contiguous_pernuma_area[nid]; in dma_alloc_contiguous() local 332 if (cma) { in dma_alloc_contiguous() 333 page = cma_alloc_aligned(cma, size, gfp); in dma_alloc_contiguous() [all …]
|
| H A 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()
|
| /OK3568_Linux_fs/kernel/drivers/dma-buf/rk_heaps/ |
| H A D | rk-cma-heap.c | 34 struct cma *cma; member 400 cma_release(cma_heap->cma, buffer->cma_pages, buffer->pagecount); in rk_cma_heap_dma_buf_release() 450 cma_pages = cma_alloc(cma_heap->cma, pagecount, align, GFP_KERNEL); in rk_cma_heap_allocate() 521 cma_release(cma_heap->cma, cma_pages, pagecount); in rk_cma_heap_allocate() 541 page = cma_alloc(cma_heap->cma, pagecount, align, GFP_KERNEL); in rk_cma_heap_allocate_pages() 547 cma_release(cma_heap->cma, page, pagecount); in rk_cma_heap_allocate_pages() 565 cma_release(cma_heap->cma, page, pagecount); in rk_cma_heap_free_pages() 578 static int __rk_add_cma_heap(struct cma *cma, void *data) in __rk_add_cma_heap() argument 586 cma_heap->cma = cma; in __rk_add_cma_heap() 588 exp_info.name = cma_get_name(cma); in __rk_add_cma_heap() [all …]
|
| H A D | Makefile | 3 rk-cma-heap-objs := rk-dma-cma.o rk-cma-heap.o 6 obj-$(CONFIG_DMABUF_HEAPS_ROCKCHIP_CMA_HEAP) += rk-cma-heap.o
|
| H A D | rk-dma-cma.c | 19 static struct cma *rk_dma_heap_cma; 74 struct cma *rk_dma_heap_get_cma(void) in rk_dma_heap_get_cma()
|
| /OK3568_Linux_fs/kernel/drivers/staging/android/ion/heaps/ |
| H A D | ion_cma_heap.c | 20 struct cma *cma; member 41 pages = cma_alloc(cma_heap->cma, nr_pages, align, false); in ion_cma_allocate() 81 cma_release(cma_heap->cma, pages, nr_pages); in ion_cma_allocate() 92 cma_release(cma_heap->cma, pages, nr_pages); in ion_cma_free() 103 static int __ion_add_cma_heap(struct cma *cma, void *data) in __ion_add_cma_heap() argument 115 cma_heap->heap.name = cma_get_name(cma); in __ion_add_cma_heap() 121 cma_heap->cma = cma; in __ion_add_cma_heap() 134 for (nr = 0; nr < MAX_CMA_AREAS && cma_heaps[nr].cma; nr++) in ion_cma_heap_init() 145 for (nr = 0; nr < MAX_CMA_AREAS && cma_heaps[nr].cma; nr++) in ion_cma_heap_exit()
|
| /OK3568_Linux_fs/kernel/Documentation/ABI/testing/ |
| H A D | sysfs-kernel-mm-cma | 1 What: /sys/kernel/mm/cma/ 5 /sys/kernel/mm/cma/ contains a subdirectory for each CMA 9 /sys/kernel/mm/cma/<cma-heap-name> directory) contains the 15 What: /sys/kernel/mm/cma/<cma-heap-name>/alloc_pages_success 21 What: /sys/kernel/mm/cma/<cma-heap-name>/alloc_pages_fail
|
| /OK3568_Linux_fs/kernel/Documentation/admin-guide/mm/ |
| H A 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.
|
| /OK3568_Linux_fs/kernel/drivers/dma-buf/heaps/ |
| H A D | cma_heap.c | 28 struct cma *cma; member 256 cma_release(cma_heap->cma, buffer->cma_pages, buffer->pagecount); in cma_heap_dma_buf_release() 300 cma_pages = cma_alloc(cma_heap->cma, pagecount, align, GFP_KERNEL); in cma_heap_allocate() 357 cma_release(cma_heap->cma, cma_pages, pagecount); in cma_heap_allocate() 368 static int __add_cma_heap(struct cma *cma, void *data) in __add_cma_heap() argument 376 cma_heap->cma = cma; in __add_cma_heap() 378 exp_info.name = cma_get_name(cma); in __add_cma_heap() 395 struct cma *default_cma = dev_get_cma_area(NULL); in add_default_cma_heap()
|
| H A D | rk_cma_heap.c | 31 struct cma *cma; member 326 cma_release(cma_heap->cma, buffer->cma_pages, buffer->pagecount); in cma_heap_dma_buf_release() 377 cma_pages = cma_alloc(cma_heap->cma, pagecount, align, GFP_KERNEL); in cma_heap_do_allocate() 441 cma_release(cma_heap->cma, cma_pages, pagecount); in cma_heap_do_allocate() 544 static int __add_cma_heap(struct cma *cma, void *data) in __add_cma_heap() argument 553 cma_heap->cma = cma; in __add_cma_heap() 571 cma_uncached_heap->cma = cma; in __add_cma_heap() 606 struct cma *default_cma = dev_get_cma_area(NULL); in add_default_cma_heap()
|
| /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/staging/ion/ |
| H A D | rockchip-ion.txt | 7 - cma-heap: Allocate continous physicall region. 9 - reg0: base address of cma region 10 - reg1: size of cma region 19 cma-heap {
|
| /OK3568_Linux_fs/kernel/arch/s390/mm/ |
| H A 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()
|
| /OK3568_Linux_fs/kernel/arch/xtensa/boot/dts/ |
| H A D | kc705.dts | 22 linux,cma { 28 linux,cma-default;
|
| /OK3568_Linux_fs/debian/overlay/etc/udev/rules.d/ |
| H A D | 99-rockchip-permissions.rules | 20 KERNEL=="cma", MODE="0660", GROUP="video" 21 KERNEL=="cma-uncached", MODE="0660", GROUP="video"
|
| /OK3568_Linux_fs/yocto/meta-rockchip/recipes-core/udev/files/ |
| H A D | 99-rockchip-permissions.rules | 20 KERNEL=="cma", MODE="0660", GROUP="video" 21 KERNEL=="cma-uncached", MODE="0660", GROUP="video"
|
| /OK3568_Linux_fs/external/rkscript/ |
| H A D | 99-rockchip-permissions.rules | 20 KERNEL=="cma", MODE="0660", GROUP="video" 21 KERNEL=="cma-uncached", MODE="0660", GROUP="video"
|
| /OK3568_Linux_fs/kernel/arch/arm/boot/dts/ |
| H A D | rv1106-evb-ext-sii902x-rgb-to-hdmi-v10.dtsi | 14 linux,cma { 19 linux,cma-default;
|