From b8682cefb861c61ced6ca2300a5ef96e91c6dbff Mon Sep 17 00:00:00 2001 From: Kristoffer Glembo Date: Tue, 18 Jan 2011 04:10:25 +0000 Subject: sparc: Add pci32_unmap_page. Signed-off-by: Kristoffer Glembo Acked-by: Sam Ravnborg Signed-off-by: David S. Miller --- arch/sparc/kernel/ioport.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'arch/sparc/kernel/ioport.c') diff --git a/arch/sparc/kernel/ioport.c b/arch/sparc/kernel/ioport.c index cea49c0756d2..1b9f07c07640 100644 --- a/arch/sparc/kernel/ioport.c +++ b/arch/sparc/kernel/ioport.c @@ -524,6 +524,13 @@ static dma_addr_t pci32_map_page(struct device *dev, struct page *page, return page_to_phys(page) + offset; } +static void pci32_unmap_page(struct device *dev, dma_addr_t ba, size_t size, + enum dma_data_direction dir, struct dma_attrs *attrs) +{ + if (dir != PCI_DMA_TODEVICE) + mmu_inval_dma_area((unsigned long)phys_to_virt(ba), PAGE_ALIGN(size)); +} + /* Map a set of buffers described by scatterlist in streaming * mode for DMA. This is the scather-gather version of the * above pci_map_single interface. Here the scatter gather list @@ -646,6 +653,7 @@ struct dma_map_ops pci32_dma_ops = { .alloc_coherent = pci32_alloc_coherent, .free_coherent = pci32_free_coherent, .map_page = pci32_map_page, + .unmap_page = pci32_unmap_page, .map_sg = pci32_map_sg, .unmap_sg = pci32_unmap_sg, .sync_single_for_cpu = pci32_sync_single_for_cpu, -- cgit v1.2.3