aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc/kernel/dma.c
diff options
context:
space:
mode:
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2009-08-09 22:53:17 -0400
committerIngo Molnar <mingo@elte.hu>2009-08-10 03:35:00 -0400
commit451d7400a34cb679369e337d67f0238ed410f484 (patch)
tree75dc26e88fa60609503ccb6426b3cdbd441615d5 /arch/sparc/kernel/dma.c
parentee664a9252d24ef10317d1bba8fc8f4c6495b36c (diff)
sparc: Add CONFIG_DMA_API_DEBUG support
All we need to do for CONFIG_DMA_API_DEBUG support is call dma_debug_init() in DMA code common for SPARC32 and SPARC64. Now SPARC32 uses two dma_map_ops structures for pci and sbus so there is not much dma stuff for SPARC32 in kernel/dma.c. kernel/ioport.c also includes dma stuff for SPARC32. So let's put all the dma stuff for SPARC32 in kernel/ioport.c and make kernel/dma.c common for SPARC32 and SPARC64. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Tested-by: Robert Reif <reif@earthlink.net> Acked-by: David S. Miller <davem@davemloft.net> Cc: tony.luck@intel.com Cc: fenghua.yu@intel.com LKML-Reference: <1249872797-1314-9-git-send-email-fujita.tomonori@lab.ntt.co.jp> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/sparc/kernel/dma.c')
-rw-r--r--arch/sparc/kernel/dma.c37
1 files changed, 5 insertions, 32 deletions
diff --git a/arch/sparc/kernel/dma.c b/arch/sparc/kernel/dma.c
index b2fa3127f605..e1ba8ee21b9a 100644
--- a/arch/sparc/kernel/dma.c
+++ b/arch/sparc/kernel/dma.c
@@ -1,40 +1,13 @@
1/* dma.c: PCI and SBUS DMA accessors for 32-bit sparc.
2 *
3 * Copyright (C) 2008 David S. Miller <davem@davemloft.net>
4 */
5
6#include <linux/kernel.h> 1#include <linux/kernel.h>
7#include <linux/module.h> 2#include <linux/module.h>
8#include <linux/dma-mapping.h> 3#include <linux/dma-mapping.h>
9#include <linux/scatterlist.h> 4#include <linux/dma-debug.h>
10#include <linux/mm.h>
11 5
12#ifdef CONFIG_PCI 6#define PREALLOC_DMA_DEBUG_ENTRIES (1 << 15)
13#include <linux/pci.h>
14#endif
15 7
16/* 8static int __init dma_init(void)
17 * Return whether the given PCI device DMA address mask can be
18 * supported properly. For example, if your device can only drive the
19 * low 24-bits during PCI bus mastering, then you would pass
20 * 0x00ffffff as the mask to this function.
21 */
22int dma_supported(struct device *dev, u64 mask)
23{ 9{
24#ifdef CONFIG_PCI 10 dma_debug_init(PREALLOC_DMA_DEBUG_ENTRIES);
25 if (dev->bus == &pci_bus_type)
26 return 1;
27#endif
28 return 0; 11 return 0;
29} 12}
30EXPORT_SYMBOL(dma_supported); 13fs_initcall(dma_init);
31
32int dma_set_mask(struct device *dev, u64 dma_mask)
33{
34#ifdef CONFIG_PCI
35 if (dev->bus == &pci_bus_type)
36 return pci_set_dma_mask(to_pci_dev(dev), dma_mask);
37#endif
38 return -EOPNOTSUPP;
39}
40EXPORT_SYMBOL(dma_set_mask);