Lines Matching refs:map

633 int hmm_dma_map_alloc(struct device *dev, struct hmm_dma_map *map,  in hmm_dma_map_alloc()  argument
652 map->dma_entry_size = dma_entry_size; in hmm_dma_map_alloc()
653 map->pfn_list = kvcalloc(nr_entries, sizeof(*map->pfn_list), in hmm_dma_map_alloc()
655 if (!map->pfn_list) in hmm_dma_map_alloc()
658 use_iova = dma_iova_try_alloc(dev, &map->state, 0, in hmm_dma_map_alloc()
661 map->dma_list = kvcalloc(nr_entries, sizeof(*map->dma_list), in hmm_dma_map_alloc()
663 if (!map->dma_list) in hmm_dma_map_alloc()
669 kvfree(map->pfn_list); in hmm_dma_map_alloc()
681 void hmm_dma_map_free(struct device *dev, struct hmm_dma_map *map) in hmm_dma_map_free() argument
683 if (dma_use_iova(&map->state)) in hmm_dma_map_free()
684 dma_iova_free(dev, &map->state); in hmm_dma_map_free()
685 kvfree(map->pfn_list); in hmm_dma_map_free()
686 kvfree(map->dma_list); in hmm_dma_map_free()
706 dma_addr_t hmm_dma_map_pfn(struct device *dev, struct hmm_dma_map *map, in hmm_dma_map_pfn() argument
710 struct dma_iova_state *state = &map->state; in hmm_dma_map_pfn()
711 dma_addr_t *dma_addrs = map->dma_list; in hmm_dma_map_pfn()
712 unsigned long *pfns = map->pfn_list; in hmm_dma_map_pfn()
715 size_t offset = idx * map->dma_entry_size; in hmm_dma_map_pfn()
761 map->dma_entry_size, DMA_BIDIRECTIONAL, in hmm_dma_map_pfn()
766 ret = dma_iova_sync(dev, state, offset, map->dma_entry_size); in hmm_dma_map_pfn()
768 dma_iova_unlink(dev, state, offset, map->dma_entry_size, in hmm_dma_map_pfn()
778 dma_addr = dma_map_page(dev, page, 0, map->dma_entry_size, in hmm_dma_map_pfn()
803 bool hmm_dma_unmap_pfn(struct device *dev, struct hmm_dma_map *map, size_t idx) in hmm_dma_unmap_pfn() argument
806 struct dma_iova_state *state = &map->state; in hmm_dma_unmap_pfn()
807 dma_addr_t *dma_addrs = map->dma_list; in hmm_dma_unmap_pfn()
808 unsigned long *pfns = map->pfn_list; in hmm_dma_unmap_pfn()
819 dma_iova_unlink(dev, state, idx * map->dma_entry_size, in hmm_dma_unmap_pfn()
820 map->dma_entry_size, DMA_BIDIRECTIONAL, attrs); in hmm_dma_unmap_pfn()
822 dma_unmap_page(dev, dma_addrs[idx], map->dma_entry_size, in hmm_dma_unmap_pfn()