aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorGlauber Costa <gcosta@redhat.com>2008-04-08 12:20:43 -0400
committerIngo Molnar <mingo@elte.hu>2008-04-19 13:19:57 -0400
commit459121c9ec1e6c5d701f6520f4170719ac008951 (patch)
tree5b0fd3dbc761647e8da7a2be103c797cce0a8621 /arch/x86
parent19e395afb44746ce7422a9eabcf883d5eec2bb80 (diff)
x86: introduce pci-dma.c
This patch introduces pci-dma.c, a common file for pci dma between i386 and x86_64. As a start, dma_set_mask() is the same between architectures, and is placed there. Signed-off-by: Glauber Costa <gcosta@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/kernel/Makefile2
-rw-r--r--arch/x86/kernel/pci-dma.c14
-rw-r--r--arch/x86/kernel/pci-dma_32.c12
-rw-r--r--arch/x86/kernel/pci-dma_64.c9
4 files changed, 15 insertions, 22 deletions
diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
index edd5c54ffde9..1799f76a6a95 100644
--- a/arch/x86/kernel/Makefile
+++ b/arch/x86/kernel/Makefile
@@ -23,7 +23,7 @@ obj-$(CONFIG_X86_32) += sys_i386_32.o i386_ksyms_32.o
23obj-$(CONFIG_X86_64) += sys_x86_64.o x8664_ksyms_64.o 23obj-$(CONFIG_X86_64) += sys_x86_64.o x8664_ksyms_64.o
24obj-$(CONFIG_X86_64) += syscall_64.o vsyscall_64.o setup64.o 24obj-$(CONFIG_X86_64) += syscall_64.o vsyscall_64.o setup64.o
25obj-y += pci-dma_$(BITS).o bootflag.o e820_$(BITS).o 25obj-y += pci-dma_$(BITS).o bootflag.o e820_$(BITS).o
26obj-y += quirks.o i8237.o topology.o kdebugfs.o 26obj-y += pci-dma.o quirks.o i8237.o topology.o kdebugfs.o
27obj-y += alternative.o i8253.o 27obj-y += alternative.o i8253.o
28obj-$(CONFIG_X86_64) += pci-nommu_64.o bugs_64.o 28obj-$(CONFIG_X86_64) += pci-nommu_64.o bugs_64.o
29obj-$(CONFIG_X86_32) += pci-base_32.o 29obj-$(CONFIG_X86_32) += pci-base_32.o
diff --git a/arch/x86/kernel/pci-dma.c b/arch/x86/kernel/pci-dma.c
new file mode 100644
index 000000000000..f1c24d8e7942
--- /dev/null
+++ b/arch/x86/kernel/pci-dma.c
@@ -0,0 +1,14 @@
1#include <linux/dma-mapping.h>
2
3int dma_set_mask(struct device *dev, u64 mask)
4{
5 if (!dev->dma_mask || !dma_supported(dev, mask))
6 return -EIO;
7
8 *dev->dma_mask = mask;
9
10 return 0;
11}
12EXPORT_SYMBOL(dma_set_mask);
13
14
diff --git a/arch/x86/kernel/pci-dma_32.c b/arch/x86/kernel/pci-dma_32.c
index be6b1f6aa1a7..9e8297657c32 100644
--- a/arch/x86/kernel/pci-dma_32.c
+++ b/arch/x86/kernel/pci-dma_32.c
@@ -182,18 +182,6 @@ dma_supported(struct device *dev, u64 mask)
182} 182}
183EXPORT_SYMBOL(dma_supported); 183EXPORT_SYMBOL(dma_supported);
184 184
185int
186dma_set_mask(struct device *dev, u64 mask)
187{
188 if (!dev->dma_mask || !dma_supported(dev, mask))
189 return -EIO;
190
191 *dev->dma_mask = mask;
192
193 return 0;
194}
195EXPORT_SYMBOL(dma_set_mask);
196
197 185
198static __devinit void via_no_dac(struct pci_dev *dev) 186static __devinit void via_no_dac(struct pci_dev *dev)
199{ 187{
diff --git a/arch/x86/kernel/pci-dma_64.c b/arch/x86/kernel/pci-dma_64.c
index f97a08d0a8f9..e697b865c1a3 100644
--- a/arch/x86/kernel/pci-dma_64.c
+++ b/arch/x86/kernel/pci-dma_64.c
@@ -213,15 +213,6 @@ int dma_supported(struct device *dev, u64 mask)
213} 213}
214EXPORT_SYMBOL(dma_supported); 214EXPORT_SYMBOL(dma_supported);
215 215
216int dma_set_mask(struct device *dev, u64 mask)
217{
218 if (!dev->dma_mask || !dma_supported(dev, mask))
219 return -EIO;
220 *dev->dma_mask = mask;
221 return 0;
222}
223EXPORT_SYMBOL(dma_set_mask);
224
225/* 216/*
226 * See <Documentation/x86_64/boot-options.txt> for the iommu kernel parameter 217 * See <Documentation/x86_64/boot-options.txt> for the iommu kernel parameter
227 * documentation. 218 * documentation.