Lines Matching defs:cpu_addr
54 void *cpu_addr;
219 static void arm_coherent_dma_free(struct device *dev, size_t size, void *cpu_addr,
222 void *cpu_addr, dma_addr_t dma_addr, size_t size,
556 void *cpu_addr, size_t size, bool want_vaddr)
560 dma_common_free_remap(cpu_addr, size);
616 __free_from_contiguous(args->dev, args->page, args->cpu_addr,
633 __free_from_pool(args->cpu_addr, args->size);
652 dma_common_free_remap(args->cpu_addr, args->size);
760 void *cpu_addr, dma_addr_t dma_addr, size_t size,
769 if (dma_mmap_from_dev_coherent(dev, vma, cpu_addr, size, &ret))
786 void *cpu_addr, dma_addr_t dma_addr, size_t size,
789 return __arm_dma_mmap(dev, vma, cpu_addr, dma_addr, size, attrs);
793 void *cpu_addr, dma_addr_t dma_addr, size_t size,
797 return __arm_dma_mmap(dev, vma, cpu_addr, dma_addr, size, attrs);
803 static void __arm_dma_free(struct device *dev, size_t size, void *cpu_addr,
812 .cpu_addr = cpu_addr,
817 buf = arm_dma_buffer_find(cpu_addr);
818 if (WARN(!buf, "Freeing invalid buffer %p\n", cpu_addr))
825 void arm_dma_free(struct device *dev, size_t size, void *cpu_addr,
828 __arm_dma_free(dev, size, cpu_addr, handle, attrs, false);
831 static void arm_coherent_dma_free(struct device *dev, size_t size, void *cpu_addr,
834 __arm_dma_free(dev, size, cpu_addr, handle, attrs, true);
838 void *cpu_addr, dma_addr_t handle, size_t size,
1376 static struct page **__iommu_get_pages(void *cpu_addr, unsigned long attrs)
1378 if (__in_atomic_pool(cpu_addr, PAGE_SIZE))
1379 return __atomic_get_pages(cpu_addr);
1382 return cpu_addr;
1384 return dma_common_find_pages(cpu_addr);
1412 static void __iommu_free_atomic(struct device *dev, void *cpu_addr,
1417 __dma_free_buffer(virt_to_page(cpu_addr), size);
1419 __free_from_pool(cpu_addr, size);
1484 void *cpu_addr, dma_addr_t dma_addr, size_t size,
1487 struct page **pages = __iommu_get_pages(cpu_addr, attrs);
1504 struct vm_area_struct *vma, void *cpu_addr,
1509 return __arm_iommu_mmap_attrs(dev, vma, cpu_addr, dma_addr, size, attrs);
1513 struct vm_area_struct *vma, void *cpu_addr,
1516 return __arm_iommu_mmap_attrs(dev, vma, cpu_addr, dma_addr, size, attrs);
1523 static void __arm_iommu_free_attrs(struct device *dev, size_t size, void *cpu_addr,
1529 if (coherent_flag == COHERENT || __in_atomic_pool(cpu_addr, size)) {
1530 __iommu_free_atomic(dev, cpu_addr, handle, size, coherent_flag);
1534 pages = __iommu_get_pages(cpu_addr, attrs);
1536 WARN(1, "trying to free invalid coherent area: %p\n", cpu_addr);
1541 dma_common_free_remap(cpu_addr, size);
1548 void *cpu_addr, dma_addr_t handle,
1551 __arm_iommu_free_attrs(dev, size, cpu_addr, handle, attrs, NORMAL);
1555 void *cpu_addr, dma_addr_t handle, unsigned long attrs)
1557 __arm_iommu_free_attrs(dev, size, cpu_addr, handle, attrs, COHERENT);
1561 void *cpu_addr, dma_addr_t dma_addr,
1565 struct page **pages = __iommu_get_pages(cpu_addr, attrs);
2322 void arch_dma_free(struct device *dev, size_t size, void *cpu_addr,
2325 __arm_dma_free(dev, size, cpu_addr, dma_handle, attrs, false);