sh64: Move consistent DMA routines to arch/sh64/mm/.
authorPaul Mundt <lethal@linux-sh.org>
Mon, 1 Oct 2007 08:43:11 +0000 (17:43 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Mon, 1 Oct 2007 08:43:11 +0000 (17:43 +0900)
The consistent DMA stuff was evolved from the old PCI DMA mapping
functions. As this has been overhauled, it's something that is
used by the generic DMA mapping code, and thus, has no intrinsic
PCI dependence.

Move the routines somewhere more sensible (same place as sh), and
fix up the build for CONFIG_PCI=n in the process.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh64/kernel/Makefile
arch/sh64/kernel/pci-dma.c [deleted file]
arch/sh64/mm/Makefile
arch/sh64/mm/consistent.c [new file with mode: 0644]

index 5816657c079c5d0c7ee8d2afcb8bebdb72af5666..e3467bda6167c268d3113026a17659235fc6de3a 100644 (file)
@@ -25,7 +25,7 @@ obj-$(CONFIG_SH_DMA)          += dma.o
 obj-$(CONFIG_SH_FPU)           += fpu.o
 obj-$(CONFIG_EARLY_PRINTK)     += early_printk.o
 obj-$(CONFIG_KALLSYMS)         += unwind.o
-obj-$(CONFIG_PCI)              += pci-dma.o pcibios.o
+obj-$(CONFIG_PCI)              += pcibios.o
 obj-$(CONFIG_MODULES)          += module.o
 
 ifeq ($(CONFIG_PCI),y)
diff --git a/arch/sh64/kernel/pci-dma.c b/arch/sh64/kernel/pci-dma.c
deleted file mode 100644 (file)
index 8875a2a..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2001 David J. Mckay (david.mckay@st.com)
- * Copyright (C) 2003 Paul Mundt (lethal@linux-sh.org)
- *
- * May be copied or modified under the terms of the GNU General Public
- * License.  See linux/COPYING for more information.
- *
- * Dynamic DMA mapping support.
- */
-#include <linux/types.h>
-#include <linux/mm.h>
-#include <linux/string.h>
-#include <linux/pci.h>
-#include <linux/module.h>
-#include <asm/io.h>
-
-void *consistent_alloc(struct pci_dev *hwdev, size_t size,
-                          dma_addr_t *dma_handle)
-{
-       void *ret;
-       int gfp = GFP_ATOMIC;
-        void *vp;
-
-       if (hwdev == NULL || hwdev->dma_mask != 0xffffffff)
-               gfp |= GFP_DMA;
-
-       ret = (void *)__get_free_pages(gfp, get_order(size));
-
-       /* now call our friend ioremap_nocache to give us an uncached area */
-        vp = ioremap_nocache(virt_to_phys(ret), size);
-
-       if (vp != NULL) {
-               memset(vp, 0, size);
-               *dma_handle = virt_to_phys(ret);
-               dma_cache_wback_inv((unsigned long)ret, size);
-       }
-
-       return vp;
-}
-EXPORT_SYMBOL(consistent_alloc);
-
-void consistent_free(struct pci_dev *hwdev, size_t size,
-                        void *vaddr, dma_addr_t dma_handle)
-{
-       void *alloc;
-
-       alloc = phys_to_virt((unsigned long)dma_handle);
-       free_pages((unsigned long)alloc, get_order(size));
-
-       iounmap(vaddr);
-}
-EXPORT_SYMBOL(consistent_free);
index ff19378ac90af04f8f361d9140aaf97cf7c59a59..d0e813632480747dde715f2f4b0b5b13aea6507e 100644 (file)
@@ -13,7 +13,8 @@
 # unless it's something special (ie not a .c file).
 #
 
-obj-y := init.o fault.o ioremap.o extable.o cache.o tlbmiss.o tlb.o
+obj-y := cache.o consistent.o extable.o fault.o init.o ioremap.o \
+        tlbmiss.o tlb.o
 
 obj-$(CONFIG_HUGETLB_PAGE)     += hugetlbpage.o
 
@@ -41,4 +42,3 @@ CFLAGS_tlbmiss.o += -ffixed-r7 \
        -ffixed-r41 -ffixed-r42 -ffixed-r43  \
        -ffixed-r60 -ffixed-r61 -ffixed-r62 \
        -fomit-frame-pointer
-
diff --git a/arch/sh64/mm/consistent.c b/arch/sh64/mm/consistent.c
new file mode 100644 (file)
index 0000000..8875a2a
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2001 David J. Mckay (david.mckay@st.com)
+ * Copyright (C) 2003 Paul Mundt (lethal@linux-sh.org)
+ *
+ * May be copied or modified under the terms of the GNU General Public
+ * License.  See linux/COPYING for more information.
+ *
+ * Dynamic DMA mapping support.
+ */
+#include <linux/types.h>
+#include <linux/mm.h>
+#include <linux/string.h>
+#include <linux/pci.h>
+#include <linux/module.h>
+#include <asm/io.h>
+
+void *consistent_alloc(struct pci_dev *hwdev, size_t size,
+                          dma_addr_t *dma_handle)
+{
+       void *ret;
+       int gfp = GFP_ATOMIC;
+        void *vp;
+
+       if (hwdev == NULL || hwdev->dma_mask != 0xffffffff)
+               gfp |= GFP_DMA;
+
+       ret = (void *)__get_free_pages(gfp, get_order(size));
+
+       /* now call our friend ioremap_nocache to give us an uncached area */
+        vp = ioremap_nocache(virt_to_phys(ret), size);
+
+       if (vp != NULL) {
+               memset(vp, 0, size);
+               *dma_handle = virt_to_phys(ret);
+               dma_cache_wback_inv((unsigned long)ret, size);
+       }
+
+       return vp;
+}
+EXPORT_SYMBOL(consistent_alloc);
+
+void consistent_free(struct pci_dev *hwdev, size_t size,
+                        void *vaddr, dma_addr_t dma_handle)
+{
+       void *alloc;
+
+       alloc = phys_to_virt((unsigned long)dma_handle);
+       free_pages((unsigned long)alloc, get_order(size));
+
+       iounmap(vaddr);
+}
+EXPORT_SYMBOL(consistent_free);
This page took 0.026621 seconds and 5 git commands to generate.