| /linux/kernel/dma/ |
| H A D | direct.c | 163 dma_addr_t *dma_handle, void **cpu_addr, gfp_t gfp, in dma_direct_alloc_from_pool() argument 173 page = dma_alloc_from_pool(dev, size, cpu_addr, gfp, attrs, in dma_direct_alloc_from_pool() 209 void *cpu_addr; in dma_direct_alloc() local 270 dma_handle, &cpu_addr, in dma_direct_alloc() 272 return page ? cpu_addr : NULL; in dma_direct_alloc() 319 cpu_addr = dma_common_contiguous_remap(page, size, prot, in dma_direct_alloc() 321 if (!cpu_addr) in dma_direct_alloc() 324 cpu_addr = page_address(page); in dma_direct_alloc() 327 memset(cpu_addr, 0, size); in dma_direct_alloc() 333 uncached_cpu_addr = arch_dma_set_uncached(cpu_addr, size); in dma_direct_alloc() [all …]
|
| H A D | remap.c | 9 struct page **dma_common_find_pages(void *cpu_addr) in dma_common_find_pages() argument 11 struct vm_struct *area = find_vm_area(cpu_addr); in dma_common_find_pages() 16 "unexpected flags in area: %p\n", cpu_addr); in dma_common_find_pages() 62 void dma_common_free_remap(void *cpu_addr, size_t size) in dma_common_free_remap() argument 64 struct vm_struct *area = find_vm_area(cpu_addr); in dma_common_free_remap() 67 WARN(1, "trying to free invalid coherent area: %p\n", cpu_addr); in dma_common_free_remap() 71 vunmap(cpu_addr); in dma_common_free_remap()
|
| H A D | mapping.c | 516 void *cpu_addr, dma_addr_t dma_addr, size_t size, in dma_get_sgtable_attrs() argument 522 return dma_direct_get_sgtable(dev, sgt, cpu_addr, dma_addr, in dma_get_sgtable_attrs() 525 return iommu_dma_get_sgtable(dev, sgt, cpu_addr, dma_addr, in dma_get_sgtable_attrs() 529 return ops->get_sgtable(dev, sgt, cpu_addr, dma_addr, size, attrs); in dma_get_sgtable_attrs() 591 void *cpu_addr, dma_addr_t dma_addr, size_t size, in dma_mmap_attrs() argument 597 return dma_direct_mmap(dev, vma, cpu_addr, dma_addr, size, in dma_mmap_attrs() 600 return iommu_dma_mmap(dev, vma, cpu_addr, dma_addr, size, in dma_mmap_attrs() 604 return ops->mmap(dev, vma, cpu_addr, dma_addr, size, attrs); in dma_mmap_attrs() 637 void *cpu_addr; in dma_alloc_attrs() local 658 if (dma_alloc_from_dev_coherent(dev, size, dma_handle, &cpu_addr)) { in dma_alloc_attrs() [all …]
|
| /linux/drivers/gpu/drm/xe/ |
| H A D | xe_mem_pool.c | 45 void *cpu_addr; member 65 kvfree(pool->cpu_addr); in fini_pool_action() 147 pool->cpu_addr = kvzalloc(size, GFP_KERNEL); in xe_mem_pool_init() 148 if (!pool->cpu_addr) in xe_mem_pool_init() 151 pool->cpu_addr = bo->vmap.vaddr; in xe_mem_pool_init() 173 kvfree(pool->cpu_addr); in xe_mem_pool_init() 198 pool->cpu_addr, xe_bo_size(pool->bo)); in xe_mem_pool_sync() 222 pool->cpu_addr = pool->bo->vmap.vaddr; in xe_mem_pool_swap_shadow_locked() 247 pool->cpu_addr + sa_node->start, in xe_mem_pool_sync_shadow_locked() 270 return pool->cpu_addr; in xe_mem_pool_cpu_addr() [all …]
|
| /linux/drivers/accel/amdxdna/ |
| H A D | amdxdna_iommu.c | 119 void *cpu_addr; in amdxdna_iommu_alloc() local 128 cpu_addr = (void *)__get_free_pages(GFP_KERNEL, get_order(size)); in amdxdna_iommu_alloc() 129 if (!cpu_addr) { in amdxdna_iommu_alloc() 134 ret = iommu_map(xdna->domain, *dma_addr, virt_to_phys(cpu_addr), in amdxdna_iommu_alloc() 140 return cpu_addr; in amdxdna_iommu_alloc() 143 free_pages((unsigned long)cpu_addr, get_order(size)); in amdxdna_iommu_alloc() 150 void *cpu_addr, dma_addr_t dma_addr) in amdxdna_iommu_free() argument 154 free_pages((unsigned long)cpu_addr, get_order(size)); in amdxdna_iommu_free()
|
| /linux/arch/arm/mm/ |
| H A D | dma-mapping.c | 54 void *cpu_addr; member 427 void *cpu_addr, size_t size, bool want_vaddr) in __free_from_contiguous() argument 431 dma_common_free_remap(cpu_addr, size); in __free_from_contiguous() 487 __free_from_contiguous(args->dev, args->page, args->cpu_addr, in cma_allocator_free() 504 __free_from_pool(args->cpu_addr, args->size); in pool_allocator_free() 523 dma_common_free_remap(args->cpu_addr, args->size); in remap_allocator_free() 605 static void __arm_dma_free(struct device *dev, size_t size, void *cpu_addr, in __arm_dma_free() argument 614 .cpu_addr = cpu_addr, in __arm_dma_free() 619 buf = arm_dma_buffer_find(cpu_addr); in __arm_dma_free() 620 if (WARN(!buf, "Freeing invalid buffer %p\n", cpu_addr)) in __arm_dma_free() [all …]
|
| /linux/drivers/media/common/saa7146/ |
| H A D | saa7146_core.c | 403 dev->d_rps0.cpu_addr = dma_alloc_coherent(&pci->dev, SAA7146_RPS_MEM, in saa7146_init_one() 406 if (!dev->d_rps0.cpu_addr) in saa7146_init_one() 409 dev->d_rps1.cpu_addr = dma_alloc_coherent(&pci->dev, SAA7146_RPS_MEM, in saa7146_init_one() 412 if (!dev->d_rps1.cpu_addr) in saa7146_init_one() 415 dev->d_i2c.cpu_addr = dma_alloc_coherent(&pci->dev, SAA7146_RPS_MEM, in saa7146_init_one() 417 if (!dev->d_i2c.cpu_addr) in saa7146_init_one() 464 dma_free_coherent(&pci->dev, SAA7146_RPS_MEM, dev->d_i2c.cpu_addr, in saa7146_init_one() 467 dma_free_coherent(&pci->dev, SAA7146_RPS_MEM, dev->d_rps1.cpu_addr, in saa7146_init_one() 470 dma_free_coherent(&pci->dev, SAA7146_RPS_MEM, dev->d_rps0.cpu_addr, in saa7146_init_one() 493 { dev->d_i2c.cpu_addr, dev->d_i2c.dma_handle }, in saa7146_remove_one() [all …]
|
| /linux/include/linux/ |
| H A D | dma-map-ops.h | 31 void *cpu_addr, dma_addr_t dma_addr, size_t size, 158 void *cpu_addr, size_t size, int *ret); 176 int dma_mmap_from_global_coherent(struct vm_area_struct *vma, void *cpu_addr, 190 void *cpu_addr, size_t size, int *ret) in dma_mmap_from_global_coherent() argument 197 void *cpu_addr, dma_addr_t dma_addr, size_t size, 200 void *cpu_addr, dma_addr_t dma_addr, size_t size, 207 struct page **dma_common_find_pages(void *cpu_addr); 212 void dma_common_free_remap(void *cpu_addr, size_t size); 215 void **cpu_addr, gfp_t flags, unsigned long attrs, 311 void arch_dma_free(struct device *dev, size_t size, void *cpu_addr,
|
| H A D | dma-mapping.h | 191 void dma_free_attrs(struct device *dev, size_t size, void *cpu_addr, 198 void *cpu_addr, dma_addr_t dma_addr, size_t size, 201 void *cpu_addr, dma_addr_t dma_addr, size_t size, 277 void *cpu_addr, dma_addr_t dma_handle, unsigned long attrs) in dma_free_attrs() argument 290 struct sg_table *sgt, void *cpu_addr, dma_addr_t dma_addr, in dma_get_sgtable_attrs() argument 296 void *cpu_addr, dma_addr_t dma_addr, size_t size, in dma_mmap_attrs() argument 630 void *cpu_addr, dma_addr_t dma_handle) in dma_free_coherent() argument 632 return dma_free_attrs(dev, size, cpu_addr, dma_handle, 0); in dma_free_coherent() 770 void *cpu_addr, dma_addr_t dma_addr) in dma_free_wc() argument 772 return dma_free_attrs(dev, size, cpu_addr, dma_addr, in dma_free_wc() [all …]
|
| /linux/drivers/gpu/drm/amd/amdgpu/ |
| H A D | amdgpu_isp.c | 251 void **buf_obj, u64 *gpu_addr, void **cpu_addr) in isp_kernel_buffer_alloc() argument 269 if (WARN_ON(!cpu_addr)) in isp_kernel_buffer_alloc() 291 cpu_addr); in isp_kernel_buffer_alloc() 292 if (!cpu_addr || ret) { in isp_kernel_buffer_alloc() 313 void isp_kernel_buffer_free(void **buf_obj, u64 *gpu_addr, void **cpu_addr) in isp_kernel_buffer_free() argument 317 amdgpu_bo_free_kernel(bo, gpu_addr, cpu_addr); in isp_kernel_buffer_free()
|
| H A D | vce_v1_0.c | 196 u32 *cpu_addr; in vce_v1_0_load_fw() local 202 cpu_addr = adev->vce.cpu_addr; in vce_v1_0_load_fw() 235 memset_io(&cpu_addr[0], 0, amdgpu_bo_size(adev->vce.vcpu_bo)); in vce_v1_0_load_fw() 237 cpu_addr += (256 - 64) / 4; in vce_v1_0_load_fw() 238 memcpy_toio(&cpu_addr[0], &sign->val[i].nonce[0], 16); in vce_v1_0_load_fw() 239 cpu_addr[4] = cpu_to_le32(le32_to_cpu(sign->length) + 64); in vce_v1_0_load_fw() 241 memset_io(&cpu_addr[5], 0, 44); in vce_v1_0_load_fw() 242 memcpy_toio(&cpu_addr[16], &sign[1], ucode_size); in vce_v1_0_load_fw() 244 cpu_addr += (le32_to_cpu(sign->length) + 64) / 4; in vce_v1_0_load_fw() 245 memcpy_toio(&cpu_addr[0], &sign->val[i].sigval[0], 16); in vce_v1_0_load_fw()
|
| H A D | amdgpu_object.c | 243 u64 *gpu_addr, void **cpu_addr) in amdgpu_bo_create_reserved() argument 258 bp.flags = cpu_addr ? AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED in amdgpu_bo_create_reserved() 298 if (cpu_addr) { in amdgpu_bo_create_reserved() 299 r = amdgpu_bo_kmap(*bo_ptr, cpu_addr); in amdgpu_bo_create_reserved() 345 u64 *gpu_addr, void **cpu_addr) in amdgpu_bo_create_kernel() argument 350 gpu_addr, cpu_addr); in amdgpu_bo_create_kernel() 445 struct amdgpu_bo **bo_ptr, void **cpu_addr) in amdgpu_bo_create_kernel_at() argument 456 cpu_addr); in amdgpu_bo_create_kernel_at() 467 if (cpu_addr) in amdgpu_bo_create_kernel_at() 481 if (cpu_addr) { in amdgpu_bo_create_kernel_at() [all …]
|
| /linux/drivers/pci/controller/dwc/ |
| H A D | pcie-tegra194-acpi.c | 49 int index, int type, u64 cpu_addr, in program_outbound_atu() argument 52 atu_reg_write(pcie_ecam, index, lower_32_bits(cpu_addr), in program_outbound_atu() 54 atu_reg_write(pcie_ecam, index, upper_32_bits(cpu_addr), in program_outbound_atu() 58 atu_reg_write(pcie_ecam, index, lower_32_bits(cpu_addr + size - 1), in program_outbound_atu()
|
| /linux/drivers/dibs/ |
| H A D | dibs_loopback.c | 84 dmb_node->cpu_addr = folio_address(folio); in dibs_lo_register_dmb() 104 dmb->cpu_addr = dmb_node->cpu_addr; in dibs_lo_register_dmb() 125 folio_put(virt_to_folio(dmb_node->cpu_addr)); in dibs_lo_free_dmb() 198 dmb->cpu_addr = dmb_node->cpu_addr; in dibs_lo_attach_dmb() 263 memcpy((char *)rmb_node->cpu_addr + offset, data, size); in dibs_lo_move_data()
|
| /linux/drivers/of/ |
| H A D | address.c | 230 err = pci_register_io_range(&np->fwnode, range->cpu_addr, in of_pci_range_to_resource() 234 port = pci_address_to_pio(range->cpu_addr); in of_pci_range_to_resource() 241 start = range->cpu_addr; in of_pci_range_to_resource() 819 range->cpu_addr = of_translate_dma_address(parser->node, in of_pci_range_parser_one() 822 range->cpu_addr = of_translate_address(parser->node, in of_pci_range_parser_one() 833 u64 bus_addr, cpu_addr, size; in of_pci_range_parser_one() local 838 cpu_addr = of_translate_dma_address(parser->node, in of_pci_range_parser_one() 841 cpu_addr = of_translate_address(parser->node, in of_pci_range_parser_one() 848 cpu_addr != range->cpu_addr + range->size) in of_pci_range_parser_one() 932 if (range.cpu_addr == OF_BAD_ADDR) { in of_dma_get_range() [all …]
|
| /linux/drivers/accel/ivpu/ |
| H A D | ivpu_gem.h | 109 static inline u32 cpu_to_vpu_addr(struct ivpu_bo *bo, void *cpu_addr) in cpu_to_vpu_addr() argument 111 if (cpu_addr < ivpu_bo_vaddr(bo)) in cpu_to_vpu_addr() 114 if (cpu_addr >= (ivpu_bo_vaddr(bo) + ivpu_bo_size(bo))) in cpu_to_vpu_addr() 117 return bo->vpu_addr + (cpu_addr - ivpu_bo_vaddr(bo)); in cpu_to_vpu_addr()
|
| /linux/rust/kernel/ |
| H A D | dma.rs | 587 /// - For the lifetime of an instance of [`Coherent`], the `cpu_addr` is a valid pointer 606 cpu_addr: NonNull<T>, in size() 614 T::size(self.cpu_addr.as_ptr()) 620 self.cpu_addr.as_ptr() in as_mut_ptr() 627 self.cpu_addr.as_ptr() in dma_handle() 691 let cpu_addr = NonNull::new(addr.cast()).ok_or(ENOMEM)?; in field_write() 699 cpu_addr, in field_write() 808 let cpu_addr = NonNull::slice_from_raw_parts(NonNull::new(addr.cast()).ok_or(ENOMEM)?, len); in init() 816 cpu_addr, 920 self.cpu_addr 598 cpu_addr: NonNull<T>, global() field 730 let cpu_addr = NonNull::new(addr.cast()).ok_or(ENOMEM)?; alloc_with_attrs() localVariable 847 let cpu_addr = NonNull::slice_from_raw_parts(NonNull::new(addr.cast()).ok_or(ENOMEM)?, len); alloc_slice_with_attrs() localVariable [all...] |
| /linux/drivers/iommu/ |
| H A D | dma-iommu.c | 1583 static void __iommu_dma_free(struct device *dev, size_t size, void *cpu_addr) in __iommu_dma_free() argument 1591 dma_free_from_pool(dev, cpu_addr, alloc_size)) in __iommu_dma_free() 1594 if (is_vmalloc_addr(cpu_addr)) { in __iommu_dma_free() 1599 pages = dma_common_find_pages(cpu_addr); in __iommu_dma_free() 1601 page = vmalloc_to_page(cpu_addr); in __iommu_dma_free() 1602 dma_common_free_remap(cpu_addr, alloc_size); in __iommu_dma_free() 1605 page = virt_to_page(cpu_addr); in __iommu_dma_free() 1614 void iommu_dma_free(struct device *dev, size_t size, void *cpu_addr, in iommu_dma_free() argument 1618 __iommu_dma_free(dev, size, cpu_addr); in iommu_dma_free() 1628 void *cpu_addr; in iommu_dma_alloc_pages() local 1665 void *cpu_addr; iommu_dma_alloc() local 1701 iommu_dma_mmap(struct device * dev,struct vm_area_struct * vma,void * cpu_addr,dma_addr_t dma_addr,size_t size,unsigned long attrs) iommu_dma_mmap() argument 1732 iommu_dma_get_sgtable(struct device * dev,struct sg_table * sgt,void * cpu_addr,dma_addr_t dma_addr,size_t size,unsigned long attrs) iommu_dma_get_sgtable() argument [all...] |
| /linux/include/drm/amd/ |
| H A D | isp.h | 47 void **buf_obj, u64 *gpu_addr, void **cpu_addr); 49 void isp_kernel_buffer_free(void **buf_obj, u64 *gpu_addr, void **cpu_addr);
|
| /linux/drivers/remoteproc/ |
| H A D | st_slim_rproc.c | 143 fw_rev = readl(slim_rproc->mem[ST_SLIM_DMEM].cpu_addr + in slim_rproc_start() 188 va = (__force void *)slim_rproc->mem[i].cpu_addr; in slim_rproc_da_to_va() 252 slim_rproc->mem[i].cpu_addr = devm_ioremap_resource(dev, res); in st_slim_rproc_alloc() 253 if (IS_ERR(slim_rproc->mem[i].cpu_addr)) { in st_slim_rproc_alloc() 255 err = PTR_ERR(slim_rproc->mem[i].cpu_addr); in st_slim_rproc_alloc()
|
| /linux/drivers/pci/controller/ |
| H A D | pcie-rcar.c | 102 void rcar_pcie_set_inbound(struct rcar_pcie *pcie, u64 cpu_addr, in rcar_pcie_set_inbound() argument 112 rcar_pci_write_reg(pcie, lower_32_bits(cpu_addr), PCIELAR(idx)); in rcar_pcie_set_inbound() 118 rcar_pci_write_reg(pcie, upper_32_bits(cpu_addr), PCIELAR(idx + 1)); in rcar_pcie_set_inbound()
|
| /linux/arch/alpha/kernel/ |
| H A D | pci_iommu.c | 410 void *cpu_addr; in alpha_pci_alloc_coherent() local 416 cpu_addr = (void *)__get_free_pages(gfp | __GFP_ZERO, order); in alpha_pci_alloc_coherent() 417 if (! cpu_addr) { in alpha_pci_alloc_coherent() 425 memset(cpu_addr, 0, size); in alpha_pci_alloc_coherent() 427 *dma_addrp = pci_map_single_1(pdev, virt_to_phys(cpu_addr), size, 0); in alpha_pci_alloc_coherent() 429 free_pages((unsigned long)cpu_addr, order); in alpha_pci_alloc_coherent() 439 size, cpu_addr, *dma_addrp, __builtin_return_address(0)); in alpha_pci_alloc_coherent() 441 return cpu_addr; in alpha_pci_alloc_coherent() 451 void *cpu_addr, dma_addr_t dma_addr, in alpha_pci_free_coherent() argument 456 free_pages((unsigned long)cpu_addr, get_order(size)); in alpha_pci_free_coherent()
|
| /linux/arch/sparc/kernel/ |
| H A D | ioport.c | 256 bool sparc_dma_free_resource(void *cpu_addr, size_t size) in sparc_dma_free_resource() argument 258 unsigned long addr = (unsigned long)cpu_addr; in sparc_dma_free_resource() 263 printk("%s: cannot free %p\n", __func__, cpu_addr); in sparc_dma_free_resource() 268 printk("%s: unaligned va %p\n", __func__, cpu_addr); in sparc_dma_free_resource()
|
| /linux/drivers/gpu/drm/radeon/ |
| H A D | radeon_fence.c | 72 if (drv->cpu_addr) in radeon_fence_write() 73 *drv->cpu_addr = cpu_to_le32(seq); in radeon_fence_write() 94 if (drv->cpu_addr) in radeon_fence_read() 95 seq = le32_to_cpu(*drv->cpu_addr); in radeon_fence_read() 776 rdev->fence_drv[ring].cpu_addr = &rdev->wb.wb[index/4]; in radeon_fence_driver_start_ring() 783 rdev->fence_drv[ring].cpu_addr = rdev->uvd.cpu_addr + index; in radeon_fence_driver_start_ring() 796 rdev->fence_drv[ring].cpu_addr = &rdev->wb.wb[index/4]; in radeon_fence_driver_start_ring() 821 rdev->fence_drv[ring].cpu_addr = NULL; in radeon_fence_driver_init_ring()
|
| /linux/arch/powerpc/kernel/ |
| H A D | isa-bridge.c | 72 if (range.cpu_addr == OF_BAD_ADDR) { in process_ISA_OF_ranges() 78 if ((range.bus_addr & ~PAGE_MASK) || (range.cpu_addr & ~PAGE_MASK)) { in process_ISA_OF_ranges() 89 phb_io_base_phys = range.cpu_addr; in process_ISA_OF_ranges()
|