From patchwork Tue Jan 11 10:49:05 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kristoffer Glembo X-Patchwork-Id: 78320 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3F878B70A9 for ; Tue, 11 Jan 2011 21:49:43 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755679Ab1AKKtm (ORCPT ); Tue, 11 Jan 2011 05:49:42 -0500 Received: from mail168c2.megamailservers.com ([69.49.111.68]:57680 "EHLO mail168c2.megamailservers.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755662Ab1AKKtm (ORCPT ); Tue, 11 Jan 2011 05:49:42 -0500 X-Authenticated-User: kristoffer.gaisler.com Received: from localhost.localdomain (static-92-33-28-242.sme.bredbandsbolaget.se [92.33.28.242]) (authenticated bits=0) by mail168c2.megamailservers.com (8.13.6/8.13.1) with ESMTP id p0BAnT6B025357; Tue, 11 Jan 2011 05:49:36 -0500 From: Kristoffer Glembo To: sparclinux@vger.kernel.org Cc: sam@ravnborg.org, davem@davemloft.net Subject: [PATCH 3/4] sparc: Add pci32_unmap_page. Date: Tue, 11 Jan 2011 11:49:05 +0100 Message-Id: <1294742946-1040-4-git-send-email-kristoffer@gaisler.com> X-Mailer: git-send-email 1.6.4.1 In-Reply-To: <1294742946-1040-1-git-send-email-kristoffer@gaisler.com> References: <1294742946-1040-1-git-send-email-kristoffer@gaisler.com> X-CSC: 0 X-CHA: v=1.1 cv=HatR5ee4r9LmhKHusCvm0slwhhPgh8RdpG4QMZgwQDY= c=1 sm=1 a=7S9EFbpFUY8A:10 a=jXKJviUpWSOlMmIvGrHOfw==:17 a=ebG-ZW-8AAAA:8 a=n3GWmTFHeA7HJL0DZjcA:9 a=kay7tTvINua-0eOgiFMA:7 a=0F8eW3rfNhR0mhkcPf4Bzdxy03MA:4 a=cCYF7-FHeg4A:10 a=jXKJviUpWSOlMmIvGrHOfw==:117 Sender: sparclinux-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: sparclinux@vger.kernel.org Signed-off-by: Kristoffer Glembo --- arch/sparc/kernel/ioport.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/arch/sparc/kernel/ioport.c b/arch/sparc/kernel/ioport.c index bfcbd1e..ba5cf62 100644 --- a/arch/sparc/kernel/ioport.c +++ b/arch/sparc/kernel/ioport.c @@ -529,6 +529,14 @@ 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 @@ -651,6 +659,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,