Lines Matching refs:tlb_addr
827 static void swiotlb_bounce(struct device *dev, phys_addr_t tlb_addr, size_t size, in swiotlb_bounce() argument
830 struct io_tlb_pool *mem = swiotlb_find_pool(dev, tlb_addr); in swiotlb_bounce()
831 int index = (tlb_addr - mem->start) >> IO_TLB_SHIFT; in swiotlb_bounce()
835 unsigned char *vaddr = mem->vaddr + tlb_addr - mem->start; in swiotlb_bounce()
841 tlb_offset = tlb_addr & (IO_TLB_SIZE - 1); in swiotlb_bounce()
1268 phys_addr_t tlb_addr; in swiotlb_tbl_map_single() local
1302 tlb_addr = slot_addr(pool->start, index) + offset; in swiotlb_tbl_map_single()
1310 swiotlb_bounce(dev, tlb_addr, mapping_size, DMA_TO_DEVICE); in swiotlb_tbl_map_single()
1311 return tlb_addr; in swiotlb_tbl_map_single()
1314 static void swiotlb_release_slots(struct device *dev, phys_addr_t tlb_addr) in swiotlb_release_slots() argument
1316 struct io_tlb_pool *mem = swiotlb_find_pool(dev, tlb_addr); in swiotlb_release_slots()
1318 unsigned int offset = swiotlb_align_offset(dev, tlb_addr); in swiotlb_release_slots()
1319 int index = (tlb_addr - offset - mem->start) >> IO_TLB_SHIFT; in swiotlb_release_slots()
1375 static bool swiotlb_del_transient(struct device *dev, phys_addr_t tlb_addr) in swiotlb_del_transient() argument
1379 pool = swiotlb_find_pool(dev, tlb_addr); in swiotlb_del_transient()
1391 phys_addr_t tlb_addr) in swiotlb_del_transient() argument
1401 void swiotlb_tbl_unmap_single(struct device *dev, phys_addr_t tlb_addr, in swiotlb_tbl_unmap_single() argument
1410 swiotlb_bounce(dev, tlb_addr, mapping_size, DMA_FROM_DEVICE); in swiotlb_tbl_unmap_single()
1412 if (swiotlb_del_transient(dev, tlb_addr)) in swiotlb_tbl_unmap_single()
1414 swiotlb_release_slots(dev, tlb_addr); in swiotlb_tbl_unmap_single()
1417 void swiotlb_sync_single_for_device(struct device *dev, phys_addr_t tlb_addr, in swiotlb_sync_single_for_device() argument
1421 swiotlb_bounce(dev, tlb_addr, size, DMA_TO_DEVICE); in swiotlb_sync_single_for_device()
1426 void swiotlb_sync_single_for_cpu(struct device *dev, phys_addr_t tlb_addr, in swiotlb_sync_single_for_cpu() argument
1430 swiotlb_bounce(dev, tlb_addr, size, DMA_FROM_DEVICE); in swiotlb_sync_single_for_cpu()
1600 phys_addr_t tlb_addr; in swiotlb_alloc() local
1610 tlb_addr = slot_addr(pool->start, index); in swiotlb_alloc()
1612 return pfn_to_page(PFN_DOWN(tlb_addr)); in swiotlb_alloc()
1617 phys_addr_t tlb_addr = page_to_phys(page); in swiotlb_free() local
1619 if (!is_swiotlb_buffer(dev, tlb_addr)) in swiotlb_free()
1622 swiotlb_release_slots(dev, tlb_addr); in swiotlb_free()