};
 #define to_ebus(d) container_of(d, struct linux_ebus, ofdev.dev)
 
-struct ebus_dma_info {
-       spinlock_t      lock;
-       void __iomem    *regs;
-
-       unsigned int    flags;
-#define EBUS_DMA_FLAG_USE_EBDMA_HANDLER                0x00000001
-#define EBUS_DMA_FLAG_TCI_DISABLE              0x00000002
-
-       /* These are only valid is EBUS_DMA_FLAG_USE_EBDMA_HANDLER is
-        * set.
-        */
-       void (*callback)(struct ebus_dma_info *p, int event, void *cookie);
-       void *client_cookie;
-       unsigned int    irq;
-#define EBUS_DMA_EVENT_ERROR   1
-#define EBUS_DMA_EVENT_DMA     2
-#define EBUS_DMA_EVENT_DEVICE  4
-
-       unsigned char   name[64];
-};
-
-extern int ebus_dma_register(struct ebus_dma_info *p);
-extern int ebus_dma_irq_enable(struct ebus_dma_info *p, int on);
-extern void ebus_dma_unregister(struct ebus_dma_info *p);
-extern int ebus_dma_request(struct ebus_dma_info *p, dma_addr_t bus_addr,
-                           size_t len);
-extern void ebus_dma_prepare(struct ebus_dma_info *p, int write);
-extern unsigned int ebus_dma_residue(struct ebus_dma_info *p);
-extern unsigned int ebus_dma_addr(struct ebus_dma_info *p);
-extern void ebus_dma_enable(struct ebus_dma_info *p, int on);
-
 extern struct linux_ebus               *ebus_chain;
 
 extern void ebus_init(void);
 
--- /dev/null
+#ifndef __ASM_SPARC_EBUS_DMA_H
+#define __ASM_SPARC_EBUS_DMA_H
+
+struct ebus_dma_info {
+       spinlock_t      lock;
+       void __iomem    *regs;
+
+       unsigned int    flags;
+#define EBUS_DMA_FLAG_USE_EBDMA_HANDLER                0x00000001
+#define EBUS_DMA_FLAG_TCI_DISABLE              0x00000002
+
+       /* These are only valid is EBUS_DMA_FLAG_USE_EBDMA_HANDLER is
+        * set.
+        */
+       void (*callback)(struct ebus_dma_info *p, int event, void *cookie);
+       void *client_cookie;
+       unsigned int    irq;
+#define EBUS_DMA_EVENT_ERROR   1
+#define EBUS_DMA_EVENT_DMA     2
+#define EBUS_DMA_EVENT_DEVICE  4
+
+       unsigned char   name[64];
+};
+
+extern int ebus_dma_register(struct ebus_dma_info *p);
+extern int ebus_dma_irq_enable(struct ebus_dma_info *p, int on);
+extern void ebus_dma_unregister(struct ebus_dma_info *p);
+extern int ebus_dma_request(struct ebus_dma_info *p, dma_addr_t bus_addr,
+                           size_t len);
+extern void ebus_dma_prepare(struct ebus_dma_info *p, int write);
+extern unsigned int ebus_dma_residue(struct ebus_dma_info *p);
+extern unsigned int ebus_dma_addr(struct ebus_dma_info *p);
+extern void ebus_dma_enable(struct ebus_dma_info *p, int on);
+
+#endif /* __ASM_SPARC_EBUS_DMA_H */
 
 
 #ifdef CONFIG_PCI
 #include <asm/ebus.h>
+#include <asm/ebus_dma.h>
 #include <asm/ns87303.h>
 
 static struct ebus_dma_info sun_pci_fd_ebus_dma;
 
 
 #include <linux/of_device.h>
 
-#include <asm/ebus.h>
+#include <asm/ebus_dma.h>
 #include <asm/ns87303.h>
 #include <asm/prom.h>
 
 
 #include <asm/system.h>
 #include <asm/page.h>
 #include <asm/ebus.h>
+#include <asm/ebus_dma.h>
 #include <asm/oplib.h>
 #include <asm/prom.h>
 #include <asm/irq.h>
 
 #define EBUS_SUPPORT
 #include <linux/pci.h>
 #include <asm/ebus.h>
+#include <asm/ebus_dma.h>
 #endif
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;     /* Index 0-MAX */