• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/sound/pci/ice1712/

Lines Matching defs:ice

48 static void ap_cs8427_write_byte(struct snd_ice1712 *ice, unsigned char data, unsigned char tmp)
56 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, tmp);
59 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, tmp);
65 static unsigned char ap_cs8427_read_byte(struct snd_ice1712 *ice, unsigned char tmp)
72 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, tmp);
74 if (snd_ice1712_read(ice, ICE1712_IREG_GPIO_DATA) & ICE1712_DELTA_AP_DIN)
77 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, tmp);
84 static unsigned char ap_cs8427_codec_select(struct snd_ice1712 *ice)
87 tmp = snd_ice1712_read(ice, ICE1712_IREG_GPIO_DATA);
88 switch (ice->eeprom.subvendor) {
104 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, tmp);
110 static void ap_cs8427_codec_deassert(struct snd_ice1712 *ice, unsigned char tmp)
112 switch (ice->eeprom.subvendor) {
126 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, tmp);
132 struct snd_ice1712 *ice = device->bus->private_data;
136 mutex_lock(&ice->gpio_mutex);
137 tmp = ap_cs8427_codec_select(ice);
138 ap_cs8427_write_byte(ice, (device->addr << 1) | 0, tmp); /* address + write mode */
140 ap_cs8427_write_byte(ice, *bytes++, tmp);
141 ap_cs8427_codec_deassert(ice, tmp);
142 mutex_unlock(&ice->gpio_mutex);
149 struct snd_ice1712 *ice = device->bus->private_data;
153 mutex_lock(&ice->gpio_mutex);
154 tmp = ap_cs8427_codec_select(ice);
155 ap_cs8427_write_byte(ice, (device->addr << 1) | 1, tmp); /* address + read mode */
157 *bytes++ = ap_cs8427_read_byte(ice, tmp);
158 ap_cs8427_codec_deassert(ice, tmp);
159 mutex_unlock(&ice->gpio_mutex);
179 static void snd_ice1712_delta_cs8403_spdif_write(struct snd_ice1712 *ice, unsigned char bits)
186 mutex_lock(&ice->gpio_mutex);
187 tmp = snd_ice1712_read(ice, ICE1712_IREG_GPIO_DATA);
192 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, tmp);
195 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, tmp);
199 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, tmp);
200 mutex_unlock(&ice->gpio_mutex);
204 static void delta_spdif_default_get(struct snd_ice1712 *ice, struct snd_ctl_elem_value *ucontrol)
206 snd_cs8403_decode_spdif_bits(&ucontrol->value.iec958, ice->spdif.cs8403_bits);
209 static int delta_spdif_default_put(struct snd_ice1712 *ice, struct snd_ctl_elem_value *ucontrol)
215 spin_lock_irq(&ice->reg_lock);
216 change = ice->spdif.cs8403_bits != val;
217 ice->spdif.cs8403_bits = val;
218 if (change && ice->playback_pro_substream == NULL) {
219 spin_unlock_irq(&ice->reg_lock);
220 snd_ice1712_delta_cs8403_spdif_write(ice, val);
222 spin_unlock_irq(&ice->reg_lock);
227 static void delta_spdif_stream_get(struct snd_ice1712 *ice, struct snd_ctl_elem_value *ucontrol)
229 snd_cs8403_decode_spdif_bits(&ucontrol->value.iec958, ice->spdif.cs8403_stream_bits);
232 static int delta_spdif_stream_put(struct snd_ice1712 *ice, struct snd_ctl_elem_value *ucontrol)
238 spin_lock_irq(&ice->reg_lock);
239 change = ice->spdif.cs8403_stream_bits != val;
240 ice->spdif.cs8403_stream_bits = val;
241 if (change && ice->playback_pro_substream != NULL) {
242 spin_unlock_irq(&ice->reg_lock);
243 snd_ice1712_delta_cs8403_spdif_write(ice, val);
245 spin_unlock_irq(&ice->reg_lock);
257 struct snd_ice1712 *ice = ak->private_data[0];
259 snd_ice1712_save_gpio_status(ice);
271 struct snd_ice1712 *ice = ak->private_data[0];
273 snd_ice1712_save_gpio_status(ice);
284 struct snd_ice1712 *ice = ak->private_data[0];
286 snd_ice1712_save_gpio_status(ice);
295 static void delta_1010_set_rate_val(struct snd_ice1712 *ice, unsigned int rate)
302 mutex_lock(&ice->gpio_mutex);
303 tmp = snd_ice1712_read(ice, ICE1712_IREG_GPIO_DATA);
308 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, tmp2);
309 mutex_unlock(&ice->gpio_mutex);
318 struct snd_ice1712 *ice = ak->private_data[0];
324 mutex_lock(&ice->gpio_mutex);
325 tmp = snd_ice1712_read(ice, ICE1712_IREG_GPIO_DATA);
326 mutex_unlock(&ice->gpio_mutex);
335 mutex_lock(&ice->gpio_mutex);
336 tmp = snd_ice1712_read(ice, ICE1712_IREG_GPIO_DATA) & ~ICE1712_DELTA_DFS;
339 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, tmp);
340 mutex_unlock(&ice->gpio_mutex);
367 static void delta_open_spdif(struct snd_ice1712 *ice, struct snd_pcm_substream *substream)
369 ice->spdif.cs8403_stream_bits = ice->spdif.cs8403_bits;
373 static void delta_setup_spdif(struct snd_ice1712 *ice, int rate)
379 spin_lock_irqsave(&ice->reg_lock, flags);
380 tmp = ice->spdif.cs8403_stream_bits;
389 change = ice->spdif.cs8403_stream_bits != tmp;
390 ice->spdif.cs8403_stream_bits = tmp;
391 spin_unlock_irqrestore(&ice->reg_lock, flags);
393 snd_ctl_notify(ice->card, SNDRV_CTL_EVENT_MASK_VALUE, &ice->spdif.stream_ctl->id);
394 snd_ice1712_delta_cs8403_spdif_write(ice, tmp);
404 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
406 if (snd_i2c_sendbytes(ice->cs8427, &reg, 1) != 1)
408 snd_i2c_readbytes(ice->cs8427, &reg, 1);
534 static int __devinit snd_ice1712_delta_init(struct snd_ice1712 *ice)
539 if (ice->eeprom.subvendor == ICE1712_SUBDEVICE_DELTA1010 &&
540 ice->eeprom.gpiodir == 0x7b)
541 ice->eeprom.subvendor = ICE1712_SUBDEVICE_DELTA1010E;
543 if (ice->eeprom.subvendor == ICE1712_SUBDEVICE_DELTA66 &&
544 ice->eeprom.gpiodir == 0xfb)
545 ice->eeprom.subvendor = ICE1712_SUBDEVICE_DELTA66E;
548 switch (ice->eeprom.subvendor) {
550 ice->num_total_dacs = 2;
551 ice->num_total_adcs = 2;
554 ice->num_total_dacs = 8;
555 ice->num_total_adcs = 2;
559 ice->num_total_dacs = ice->omni ? 8 : 4;
560 ice->num_total_adcs = ice->omni ? 8 : 4;
566 ice->num_total_dacs = 8;
567 ice->num_total_adcs = 8;
570 ice->num_total_dacs = 4; /* two AK4324 codecs */
574 ice->num_total_dacs = 4;
575 ice->num_total_adcs = 4;
580 switch (ice->eeprom.subvendor) {
587 if ((err = snd_i2c_bus_create(ice->card, "ICE1712 GPIO 1", NULL, &ice->i2c)) < 0) {
591 ice->i2c->private_data = ice;
592 ice->i2c->ops = &ap_cs8427_i2c_ops;
593 if ((err = snd_ice1712_init_cs8427(ice, CS8427_BASE_ADDR)) < 0)
598 ice->gpio.set_pro_rate = delta_1010_set_rate_val;
601 ice->gpio.set_pro_rate = delta_1010_set_rate_val;
604 ice->spdif.ops.open = delta_open_spdif;
605 ice->spdif.ops.setup_rate = delta_setup_spdif;
606 ice->spdif.ops.default_get = delta_spdif_default_get;
607 ice->spdif.ops.default_put = delta_spdif_default_put;
608 ice->spdif.ops.stream_get = delta_spdif_stream_get;
609 ice->spdif.ops.stream_put = delta_spdif_stream_put;
611 snd_ice1712_delta_cs8403_spdif_write(ice, ice->spdif.cs8403_bits);
616 switch (ice->eeprom.subvendor) {
625 ak = ice->akm = kmalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL);
628 ice->akm_codecs = 1;
630 switch (ice->eeprom.subvendor) {
632 err = snd_ice1712_akm4xxx_init(ak, &akm_audiophile, &akm_audiophile_priv, ice);
635 err = snd_ice1712_akm4xxx_init(ak, &akm_delta410, &akm_delta410_priv, ice);
638 err = snd_ice1712_akm4xxx_init(ak, &akm_delta1010lt, &akm_delta1010lt_priv, ice);
642 err = snd_ice1712_akm4xxx_init(ak, &akm_delta44, &akm_delta44_priv, ice);
646 err = snd_ice1712_akm4xxx_init(ak, &akm_vx442, &akm_vx442_priv, ice);
673 static int __devinit snd_ice1712_delta_add_controls(struct snd_ice1712 *ice)
678 switch (ice->eeprom.subvendor) {
681 err = snd_ctl_add(ice->card, snd_ctl_new1(&snd_ice1712_delta1010_wordclock_select, ice));
684 err = snd_ctl_add(ice->card, snd_ctl_new1(&snd_ice1712_delta1010_wordclock_status, ice));
689 err = snd_ctl_add(ice->card, snd_ctl_new1(&snd_ice1712_deltadio2496_spdif_in_select, ice));
695 err = snd_ctl_add(ice->card, snd_ctl_new1(&snd_ice1712_delta1010lt_wordclock_select, ice));
698 err = snd_ctl_add(ice->card, snd_ctl_new1(&snd_ice1712_delta1010lt_wordclock_status, ice));
705 switch (ice->eeprom.subvendor) {
710 err = snd_ice1712_spdif_build_controls(ice);
717 switch (ice->eeprom.subvendor) {
722 err = snd_ctl_add(ice->card, snd_ctl_new1(&snd_ice1712_delta_spdif_in_status, ice));
729 switch (ice->eeprom.subvendor) {
737 err = snd_ice1712_akm4xxx_build_controls(ice);