vserver 2.0 rc7
[linux-2.6.git] / sound / pci / ice1712 / ice1712.h
index 4464dd8..8bb1c58 100644 (file)
@@ -27,6 +27,7 @@
 #include <sound/rawmidi.h>
 #include <sound/i2c.h>
 #include <sound/ak4xxx-adda.h>
+#include <sound/ak4114.h>
 #include <sound/pcm.h>
 
 
@@ -335,11 +336,13 @@ struct _snd_ice1712 {
 
        struct semaphore open_mutex;
        snd_pcm_substream_t *pcm_reserved[4];
+       snd_pcm_hw_constraint_list_t *hw_rates; /* card-specific rate constraints */
 
        unsigned int akm_codecs;
        akm4xxx_t *akm;
        struct snd_ice1712_spdif spdif;
 
+       struct semaphore i2c_mutex;     /* I2C mutex for ICE1724 registers */
        snd_i2c_bus_t *i2c;             /* I2C bus */
        snd_i2c_device_t *cs8427;       /* CS8427 I2C device */
        unsigned int cs8427_timeout;    /* CS8427 reset timeout in HZ/100 */
@@ -355,12 +358,13 @@ struct _snd_ice1712 {
                unsigned int (*get_data)(ice1712_t *ice);
                /* misc operators - move to another place? */
                void (*set_pro_rate)(ice1712_t *ice, unsigned int rate);
+               void (*i2s_mclk_changed)(ice1712_t *ice);
        } gpio;
        struct semaphore gpio_mutex;
 
        /* other board-specific data */
        union {
-               /* additional i2c devices for EWS boards*/
+               /* additional i2c devices for EWS boards */
                snd_i2c_device_t *i2cdevs[3];
                /* AC97 register cache for Aureon */
                struct aureon_spec {
@@ -375,6 +379,10 @@ struct _snd_ice1712 {
                        unsigned int config;
                        unsigned short boxconfig[4];
                } hoontech;
+               struct {
+                       ak4114_t *ak4114;
+                       unsigned int analog: 1;
+               } juli;
        } spec;
 
 };
@@ -477,7 +485,7 @@ struct snd_ice1712_card_info {
        char *driver;
        int (*chip_init)(ice1712_t *);
        int (*build_controls)(ice1712_t *);
-       int no_mpu401: 1;
+       unsigned int no_mpu401: 1;
        unsigned int eeprom_size;
        unsigned char *eeprom_data;
 };