Merge branch 'master' of git://git.kernel.org/pub/scm/fs/xfs/xfs
[pandora-kernel.git] / arch / arm / include / asm / mach / dma.h
index fc7278e..9e614a1 100644 (file)
@@ -15,13 +15,13 @@ struct dma_struct;
 typedef struct dma_struct dma_t;
 
 struct dma_ops {
-       int     (*request)(dmach_t, dma_t *);           /* optional */
-       void    (*free)(dmach_t, dma_t *);              /* optional */
-       void    (*enable)(dmach_t, dma_t *);            /* mandatory */
-       void    (*disable)(dmach_t, dma_t *);           /* mandatory */
-       int     (*residue)(dmach_t, dma_t *);           /* optional */
-       int     (*setspeed)(dmach_t, dma_t *, int);     /* optional */
-       char    *type;
+       int     (*request)(unsigned int, dma_t *);              /* optional */
+       void    (*free)(unsigned int, dma_t *);                 /* optional */
+       void    (*enable)(unsigned int, dma_t *);               /* mandatory */
+       void    (*disable)(unsigned int, dma_t *);              /* mandatory */
+       int     (*residue)(unsigned int, dma_t *);              /* optional */
+       int     (*setspeed)(unsigned int, dma_t *, int);        /* optional */
+       const char *type;
 };
 
 struct dma_struct {
@@ -34,24 +34,21 @@ struct dma_struct {
        unsigned int    active:1;       /* Transfer active              */
        unsigned int    invalid:1;      /* Address/Count changed        */
 
-       dmamode_t       dma_mode;       /* DMA mode                     */
+       unsigned int    dma_mode;       /* DMA mode                     */
        int             speed;          /* DMA speed                    */
 
        unsigned int    lock;           /* Device is allocated          */
        const char      *device_id;     /* Device name                  */
 
-       unsigned int    dma_base;       /* Controller base address      */
-       int             dma_irq;        /* Controller IRQ               */
-       struct scatterlist cur_sg;      /* Current controller buffer    */
-       unsigned int    state;
-
-       struct dma_ops  *d_ops;
+       const struct dma_ops *d_ops;
 };
 
-/* Prototype: void arch_dma_init(dma)
- * Purpose  : Initialise architecture specific DMA
- * Params   : dma - pointer to array of DMA structures
+/*
+ * isa_dma_add - add an ISA-style DMA channel
  */
-extern void arch_dma_init(dma_t *dma);
+extern int isa_dma_add(unsigned int, dma_t *dma);
 
-extern void isa_init_dma(dma_t *dma);
+/*
+ * Add the ISA DMA controller.  Always takes channels 0-7.
+ */
+extern void isa_init_dma(void);