Lines Matching refs:size
25 size_t size; member
35 dma_free_attrs(dev, this->size, this->vaddr, this->dma_handle, in dmam_release()
44 WARN_ON(this->size != match->size || in dmam_match()
60 void dmam_free_coherent(struct device *dev, size_t size, void *vaddr, in dmam_free_coherent() argument
63 struct dma_devres match_data = { size, vaddr, dma_handle }; in dmam_free_coherent()
65 dma_free_coherent(dev, size, vaddr, dma_handle); in dmam_free_coherent()
84 void *dmam_alloc_attrs(struct device *dev, size_t size, dma_addr_t *dma_handle, in dmam_alloc_attrs() argument
94 vaddr = dma_alloc_attrs(dev, size, dma_handle, gfp, attrs); in dmam_alloc_attrs()
102 dr->size = size; in dmam_alloc_attrs()
143 size_t offset, size_t size, enum dma_data_direction dir, in dma_map_page_attrs() argument
155 arch_dma_map_page_direct(dev, page_to_phys(page) + offset + size)) in dma_map_page_attrs()
156 addr = dma_direct_map_page(dev, page, offset, size, dir, attrs); in dma_map_page_attrs()
158 addr = ops->map_page(dev, page, offset, size, dir, attrs); in dma_map_page_attrs()
159 debug_dma_map_page(dev, page, offset, size, dir, addr, attrs); in dma_map_page_attrs()
165 void dma_unmap_page_attrs(struct device *dev, dma_addr_t addr, size_t size, in dma_unmap_page_attrs() argument
172 arch_dma_unmap_page_direct(dev, addr + size)) in dma_unmap_page_attrs()
173 dma_direct_unmap_page(dev, addr, size, dir, attrs); in dma_unmap_page_attrs()
175 ops->unmap_page(dev, addr, size, dir, attrs); in dma_unmap_page_attrs()
176 debug_dma_unmap_page(dev, addr, size, dir); in dma_unmap_page_attrs()
289 size_t size, enum dma_data_direction dir, unsigned long attrs) in dma_map_resource() argument
300 addr = dma_direct_map_resource(dev, phys_addr, size, dir, attrs); in dma_map_resource()
302 addr = ops->map_resource(dev, phys_addr, size, dir, attrs); in dma_map_resource()
304 debug_dma_map_resource(dev, phys_addr, size, dir, addr, attrs); in dma_map_resource()
309 void dma_unmap_resource(struct device *dev, dma_addr_t addr, size_t size, in dma_unmap_resource() argument
316 ops->unmap_resource(dev, addr, size, dir, attrs); in dma_unmap_resource()
317 debug_dma_unmap_resource(dev, addr, size, dir); in dma_unmap_resource()
321 void dma_sync_single_for_cpu(struct device *dev, dma_addr_t addr, size_t size, in dma_sync_single_for_cpu() argument
328 dma_direct_sync_single_for_cpu(dev, addr, size, dir); in dma_sync_single_for_cpu()
330 ops->sync_single_for_cpu(dev, addr, size, dir); in dma_sync_single_for_cpu()
331 debug_dma_sync_single_for_cpu(dev, addr, size, dir); in dma_sync_single_for_cpu()
336 size_t size, enum dma_data_direction dir) in dma_sync_single_for_device() argument
342 dma_direct_sync_single_for_device(dev, addr, size, dir); in dma_sync_single_for_device()
344 ops->sync_single_for_device(dev, addr, size, dir); in dma_sync_single_for_device()
345 debug_dma_sync_single_for_device(dev, addr, size, dir); in dma_sync_single_for_device()
389 void *cpu_addr, dma_addr_t dma_addr, size_t size, in dma_get_sgtable_attrs() argument
396 size, attrs); in dma_get_sgtable_attrs()
399 return ops->get_sgtable(dev, sgt, cpu_addr, dma_addr, size, attrs); in dma_get_sgtable_attrs()
456 void *cpu_addr, dma_addr_t dma_addr, size_t size, in dma_mmap_attrs() argument
462 return dma_direct_mmap(dev, vma, cpu_addr, dma_addr, size, in dma_mmap_attrs()
466 return ops->mmap(dev, vma, cpu_addr, dma_addr, size, attrs); in dma_mmap_attrs()
491 void *dma_alloc_attrs(struct device *dev, size_t size, dma_addr_t *dma_handle, in dma_alloc_attrs() argument
499 if (dma_alloc_from_dev_coherent(dev, size, dma_handle, &cpu_addr)) in dma_alloc_attrs()
506 cpu_addr = dma_direct_alloc(dev, size, dma_handle, flag, attrs); in dma_alloc_attrs()
508 cpu_addr = ops->alloc(dev, size, dma_handle, flag, attrs); in dma_alloc_attrs()
512 debug_dma_alloc_coherent(dev, size, *dma_handle, cpu_addr, attrs); in dma_alloc_attrs()
517 void dma_free_attrs(struct device *dev, size_t size, void *cpu_addr, in dma_free_attrs() argument
522 if (dma_release_from_dev_coherent(dev, get_order(size), cpu_addr)) in dma_free_attrs()
536 debug_dma_free_coherent(dev, size, cpu_addr, dma_handle); in dma_free_attrs()
538 dma_direct_free(dev, size, cpu_addr, dma_handle, attrs); in dma_free_attrs()
540 ops->free(dev, size, cpu_addr, dma_handle, attrs); in dma_free_attrs()
544 static struct page *__dma_alloc_pages(struct device *dev, size_t size, in __dma_alloc_pages() argument
554 size = PAGE_ALIGN(size); in __dma_alloc_pages()
556 return dma_direct_alloc_pages(dev, size, dma_handle, dir, gfp); in __dma_alloc_pages()
559 return ops->alloc_pages(dev, size, dma_handle, dir, gfp); in __dma_alloc_pages()
562 struct page *dma_alloc_pages(struct device *dev, size_t size, in dma_alloc_pages() argument
565 struct page *page = __dma_alloc_pages(dev, size, dma_handle, dir, gfp); in dma_alloc_pages()
568 debug_dma_map_page(dev, page, 0, size, dir, *dma_handle, 0); in dma_alloc_pages()
573 static void __dma_free_pages(struct device *dev, size_t size, struct page *page, in __dma_free_pages() argument
578 size = PAGE_ALIGN(size); in __dma_free_pages()
580 dma_direct_free_pages(dev, size, page, dma_handle, dir); in __dma_free_pages()
582 ops->free_pages(dev, size, page, dma_handle, dir); in __dma_free_pages()
585 void dma_free_pages(struct device *dev, size_t size, struct page *page, in dma_free_pages() argument
588 debug_dma_unmap_page(dev, dma_handle, size, dir); in dma_free_pages()
589 __dma_free_pages(dev, size, page, dma_handle, dir); in dma_free_pages()
594 size_t size, struct page *page) in dma_mmap_pages() argument
596 unsigned long count = PAGE_ALIGN(size) >> PAGE_SHIFT; in dma_mmap_pages()
606 static struct sg_table *alloc_single_sgt(struct device *dev, size_t size, in alloc_single_sgt() argument
617 page = __dma_alloc_pages(dev, size, &sgt->sgl->dma_address, dir, gfp); in alloc_single_sgt()
620 sg_set_page(sgt->sgl, page, PAGE_ALIGN(size), 0); in alloc_single_sgt()
630 struct sg_table *dma_alloc_noncontiguous(struct device *dev, size_t size, in dma_alloc_noncontiguous() argument
640 sgt = ops->alloc_noncontiguous(dev, size, dir, gfp, attrs); in dma_alloc_noncontiguous()
642 sgt = alloc_single_sgt(dev, size, dir, gfp); in dma_alloc_noncontiguous()
652 static void free_single_sgt(struct device *dev, size_t size, in free_single_sgt() argument
655 __dma_free_pages(dev, size, sg_page(sgt->sgl), sgt->sgl->dma_address, in free_single_sgt()
661 void dma_free_noncontiguous(struct device *dev, size_t size, in dma_free_noncontiguous() argument
668 ops->free_noncontiguous(dev, size, sgt, dir); in dma_free_noncontiguous()
670 free_single_sgt(dev, size, sgt, dir); in dma_free_noncontiguous()
674 void *dma_vmap_noncontiguous(struct device *dev, size_t size, in dma_vmap_noncontiguous() argument
678 unsigned long count = PAGE_ALIGN(size) >> PAGE_SHIFT; in dma_vmap_noncontiguous()
696 size_t size, struct sg_table *sgt) in dma_mmap_noncontiguous() argument
701 unsigned long count = PAGE_ALIGN(size) >> PAGE_SHIFT; in dma_mmap_noncontiguous()
708 return dma_mmap_pages(dev, vma, size, sg_page(sgt->sgl)); in dma_mmap_noncontiguous()
772 size_t size = SIZE_MAX; in dma_max_mapping_size() local
775 size = dma_direct_max_mapping_size(dev); in dma_max_mapping_size()
777 size = ops->max_mapping_size(dev); in dma_max_mapping_size()
779 return size; in dma_max_mapping_size()