]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - sound/aoa/soundbus/i2sbus/i2sbus.h
[ALSA] snd-aoa-i2sbus: use MODULE_DEVICE_TABLE instead of plain MODULE_ALIAS
[linux-2.6-omap-h63xx.git] / sound / aoa / soundbus / i2sbus / i2sbus.h
index cfa5162e3b0f44d0af5aa65d5ca6428fc0b83af2..ff29654782c96efdee2c3f9ba21064ea49bba393 100644 (file)
@@ -7,20 +7,23 @@
  */
 #ifndef __I2SBUS_H
 #define __I2SBUS_H
-#include <asm/dbdma.h>
 #include <linux/interrupt.h>
-#include <sound/pcm.h>
 #include <linux/spinlock.h>
 #include <linux/mutex.h>
+#include <linux/completion.h>
+
+#include <sound/pcm.h>
+
 #include <asm/prom.h>
+#include <asm/pmac_feature.h>
+#include <asm/dbdma.h>
+
 #include "i2sbus-interface.h"
-#include "i2sbus-control.h"
 #include "../soundbus.h"
 
 struct i2sbus_control {
-       volatile struct i2s_control_regs __iomem *controlregs;
-       struct resource rsrc;
        struct list_head list;
+       struct macio_chip *macio;
 };
 
 #define MAX_DBDMA_COMMANDS     32
@@ -32,6 +35,7 @@ struct dbdma_command_mem {
        void *space;
        int size;
        u32 running:1;
+       u32 stopping:1;
 };
 
 struct pcm_info {
@@ -43,6 +47,13 @@ struct pcm_info {
        u32 frame_count;
        struct dbdma_command_mem dbdma_ring;
        volatile struct dbdma_regs __iomem *dbdma;
+       struct completion *stop_completion;
+};
+
+enum {
+       aoa_resource_i2smmio = 0,
+       aoa_resource_txdbdma,
+       aoa_resource_rxdbdma,
 };
 
 struct i2sbus_dev {
@@ -89,9 +100,12 @@ i2sbus_attach_codec(struct soundbus_dev *dev, struct snd_card *card,
 extern void
 i2sbus_detach_codec(struct soundbus_dev *dev, void *data);
 extern irqreturn_t
-i2sbus_tx_intr(int irq, void *devid, struct pt_regs *regs);
+i2sbus_tx_intr(int irq, void *devid);
 extern irqreturn_t
-i2sbus_rx_intr(int irq, void *devid, struct pt_regs *regs);
+i2sbus_rx_intr(int irq, void *devid);
+
+extern void i2sbus_wait_for_stop_both(struct i2sbus_dev *i2sdev);
+extern void i2sbus_pcm_prepare_both(struct i2sbus_dev *i2sdev);
 
 /* control specific functions */
 extern int i2sbus_control_init(struct macio_dev* dev,