]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - sound/arm/pxa2xx-pcm.h
sgiioc4: fix error cleanup path (take 2)
[linux-2.6-omap-h63xx.git] / sound / arm / pxa2xx-pcm.h
index 43517597cab9587bb945e9dbb4e42bb95d4685ef..5c4a4d38a08399c1df3a60ea3bf02e78c70998cf 100644 (file)
@@ -9,21 +9,22 @@
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
  */
+#include <asm/dma.h>
 
-typedef struct {
-       char *name;                     /* stream identifier */
-       u32 dcmd;                       /* DMA descriptor dcmd field */
-       volatile u32 *drcmr;            /* the DMA request channel to use */
-       u32 dev_addr;                   /* device physical address for DMA */
-} pxa2xx_pcm_dma_params_t;
-       
-typedef struct {
-       pxa2xx_pcm_dma_params_t *playback_params;
-       pxa2xx_pcm_dma_params_t *capture_params;
-       int (*startup)(snd_pcm_substream_t *);
-       void (*shutdown)(snd_pcm_substream_t *);
-       int (*prepare)(snd_pcm_substream_t *);
-} pxa2xx_pcm_client_t;
+struct pxa2xx_runtime_data {
+       int dma_ch;
+       struct pxa2xx_pcm_dma_params *params;
+       pxa_dma_desc *dma_desc_array;
+       dma_addr_t dma_desc_array_phys;
+};
 
-extern int pxa2xx_pcm_new(snd_card_t *, pxa2xx_pcm_client_t *, snd_pcm_t **);
+struct pxa2xx_pcm_client {
+       struct pxa2xx_pcm_dma_params *playback_params;
+       struct pxa2xx_pcm_dma_params *capture_params;
+       int (*startup)(struct snd_pcm_substream *);
+       void (*shutdown)(struct snd_pcm_substream *);
+       int (*prepare)(struct snd_pcm_substream *);
+};
+
+extern int pxa2xx_pcm_new(struct snd_card *, struct pxa2xx_pcm_client *, struct snd_pcm **);