• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/sound/pci/ice1712/

Lines Matching refs:ice

49 static void ap_cs8427_write_byte(struct snd_ice1712 *ice, unsigned char data, unsigned char tmp)
57 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, tmp);
60 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, tmp);
66 static unsigned char ap_cs8427_read_byte(struct snd_ice1712 *ice, unsigned char tmp)
73 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, tmp);
75 if (snd_ice1712_read(ice, ICE1712_IREG_GPIO_DATA) & ICE1712_DELTA_AP_DIN)
78 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, tmp);
85 static unsigned char ap_cs8427_codec_select(struct snd_ice1712 *ice)
88 tmp = snd_ice1712_read(ice, ICE1712_IREG_GPIO_DATA);
89 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) {
125 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, tmp);
131 struct snd_ice1712 *ice = device->bus->private_data;
135 mutex_lock(&ice->gpio_mutex);
136 tmp = ap_cs8427_codec_select(ice);
137 ap_cs8427_write_byte(ice, (device->addr << 1) | 0, tmp); /* address + write mode */
139 ap_cs8427_write_byte(ice, *bytes++, tmp);
140 ap_cs8427_codec_deassert(ice, tmp);
141 mutex_unlock(&ice->gpio_mutex);
148 struct snd_ice1712 *ice = device->bus->private_data;
152 mutex_lock(&ice->gpio_mutex);
153 tmp = ap_cs8427_codec_select(ice);
154 ap_cs8427_write_byte(ice, (device->addr << 1) | 1, tmp); /* address + read mode */
156 *bytes++ = ap_cs8427_read_byte(ice, tmp);
157 ap_cs8427_codec_deassert(ice, tmp);
158 mutex_unlock(&ice->gpio_mutex);
178 static void snd_ice1712_delta_cs8403_spdif_write(struct snd_ice1712 *ice, unsigned char bits)
185 mutex_lock(&ice->gpio_mutex);
186 tmp = snd_ice1712_read(ice, ICE1712_IREG_GPIO_DATA);
191 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, tmp);
194 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, tmp);
198 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, tmp);
199 mutex_unlock(&ice->gpio_mutex);
203 static void delta_spdif_default_get(struct snd_ice1712 *ice, struct snd_ctl_elem_value *ucontrol)
205 snd_cs8403_decode_spdif_bits(&ucontrol->value.iec958, ice->spdif.cs8403_bits);
208 static int delta_spdif_default_put(struct snd_ice1712 *ice, struct snd_ctl_elem_value *ucontrol)
214 spin_lock_irq(&ice->reg_lock);
215 change = ice->spdif.cs8403_bits != val;
216 ice->spdif.cs8403_bits = val;
217 if (change && ice->playback_pro_substream == NULL) {
218 spin_unlock_irq(&ice->reg_lock);
219 snd_ice1712_delta_cs8403_spdif_write(ice, val);
221 spin_unlock_irq(&ice->reg_lock);
226 static void delta_spdif_stream_get(struct snd_ice1712 *ice, struct snd_ctl_elem_value *ucontrol)
228 snd_cs8403_decode_spdif_bits(&ucontrol->value.iec958, ice->spdif.cs8403_stream_bits);
231 static int delta_spdif_stream_put(struct snd_ice1712 *ice, struct snd_ctl_elem_value *ucontrol)
237 spin_lock_irq(&ice->reg_lock);
238 change = ice->spdif.cs8403_stream_bits != val;
239 ice->spdif.cs8403_stream_bits = val;
240 if (change && ice->playback_pro_substream != NULL) {
241 spin_unlock_irq(&ice->reg_lock);
242 snd_ice1712_delta_cs8403_spdif_write(ice, val);
244 spin_unlock_irq(&ice->reg_lock);
256 struct snd_ice1712 *ice = ak->private_data[0];
258 snd_ice1712_save_gpio_status(ice);
270 struct snd_ice1712 *ice = ak->private_data[0];
272 snd_ice1712_save_gpio_status(ice);
283 struct snd_ice1712 *ice = ak->private_data[0];
285 snd_ice1712_save_gpio_status(ice);
294 static void delta_1010_set_rate_val(struct snd_ice1712 *ice, unsigned int rate)
301 mutex_lock(&ice->gpio_mutex);
302 tmp = snd_ice1712_read(ice, ICE1712_IREG_GPIO_DATA);
307 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, tmp2);
308 mutex_unlock(&ice->gpio_mutex);
317 struct snd_ice1712 *ice = ak->private_data[0];
323 mutex_lock(&ice->gpio_mutex);
324 tmp = snd_ice1712_read(ice, ICE1712_IREG_GPIO_DATA);
325 mutex_unlock(&ice->gpio_mutex);
334 mutex_lock(&ice->gpio_mutex);
335 tmp = snd_ice1712_read(ice, ICE1712_IREG_GPIO_DATA) & ~ICE1712_DELTA_DFS;
338 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, tmp);
339 mutex_unlock(&ice->gpio_mutex);
366 static void delta_open_spdif(struct snd_ice1712 *ice, struct snd_pcm_substream *substream)
368 ice->spdif.cs8403_stream_bits = ice->spdif.cs8403_bits;
372 static void delta_setup_spdif(struct snd_ice1712 *ice, int rate)
378 spin_lock_irqsave(&ice->reg_lock, flags);
379 tmp = ice->spdif.cs8403_stream_bits;
388 change = ice->spdif.cs8403_stream_bits != tmp;
389 ice->spdif.cs8403_stream_bits = tmp;
390 spin_unlock_irqrestore(&ice->reg_lock, flags);
392 snd_ctl_notify(ice->card, SNDRV_CTL_EVENT_MASK_VALUE, &ice->spdif.stream_ctl->id);
393 snd_ice1712_delta_cs8403_spdif_write(ice, tmp);
410 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
412 if (snd_i2c_sendbytes(ice->cs8427, &reg, 1) != 1)
414 snd_i2c_readbytes(ice->cs8427, &reg, 1);
540 static int __devinit snd_ice1712_delta_init(struct snd_ice1712 *ice)
546 switch (ice->eeprom.subvendor) {
548 ice->num_total_dacs = 2;
549 ice->num_total_adcs = 2;
552 ice->num_total_dacs = 8;
553 ice->num_total_adcs = 2;
557 ice->num_total_dacs = ice->omni ? 8 : 4;
558 ice->num_total_adcs = ice->omni ? 8 : 4;
563 ice->num_total_dacs = 8;
564 ice->num_total_adcs = 8;
567 ice->num_total_dacs = 4; /* two AK4324 codecs */
570 ice->num_total_dacs = 4;
571 ice->num_total_adcs = 4;
576 switch (ice->eeprom.subvendor) {
581 if ((err = snd_i2c_bus_create(ice->card, "ICE1712 GPIO 1", NULL, &ice->i2c)) < 0) {
585 ice->i2c->private_data = ice;
586 ice->i2c->ops = &ap_cs8427_i2c_ops;
587 if ((err = snd_ice1712_init_cs8427(ice, CS8427_BASE_ADDR)) < 0)
592 ice->gpio.set_pro_rate = delta_1010_set_rate_val;
595 ice->gpio.set_pro_rate = delta_1010_set_rate_val;
598 ice->spdif.ops.open = delta_open_spdif;
599 ice->spdif.ops.setup_rate = delta_setup_spdif;
600 ice->spdif.ops.default_get = delta_spdif_default_get;
601 ice->spdif.ops.default_put = delta_spdif_default_put;
602 ice->spdif.ops.stream_get = delta_spdif_stream_get;
603 ice->spdif.ops.stream_put = delta_spdif_stream_put;
605 snd_ice1712_delta_cs8403_spdif_write(ice, ice->spdif.cs8403_bits);
610 switch (ice->eeprom.subvendor) {
618 ak = ice->akm = kmalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL);
621 ice->akm_codecs = 1;
623 switch (ice->eeprom.subvendor) {
625 err = snd_ice1712_akm4xxx_init(ak, &akm_audiophile, &akm_audiophile_priv, ice);
628 err = snd_ice1712_akm4xxx_init(ak, &akm_delta410, &akm_delta410_priv, ice);
631 err = snd_ice1712_akm4xxx_init(ak, &akm_delta1010lt, &akm_delta1010lt_priv, ice);
635 err = snd_ice1712_akm4xxx_init(ak, &akm_delta44, &akm_delta44_priv, ice);
638 err = snd_ice1712_akm4xxx_init(ak, &akm_vx442, &akm_vx442_priv, ice);
665 static int __devinit snd_ice1712_delta_add_controls(struct snd_ice1712 *ice)
670 switch (ice->eeprom.subvendor) {
673 err = snd_ctl_add(ice->card, snd_ctl_new1(&snd_ice1712_delta1010_wordclock_select, ice));
676 err = snd_ctl_add(ice->card, snd_ctl_new1(&snd_ice1712_delta1010_wordclock_status, ice));
681 err = snd_ctl_add(ice->card, snd_ctl_new1(&snd_ice1712_deltadio2496_spdif_in_select, ice));
686 err = snd_ctl_add(ice->card, snd_ctl_new1(&snd_ice1712_delta1010lt_wordclock_select, ice));
689 err = snd_ctl_add(ice->card, snd_ctl_new1(&snd_ice1712_delta1010lt_wordclock_status, ice));
696 switch (ice->eeprom.subvendor) {
701 err = snd_ice1712_spdif_build_controls(ice);
708 switch (ice->eeprom.subvendor) {
713 err = snd_ctl_add(ice->card, snd_ctl_new1(&snd_ice1712_delta_spdif_in_status, ice));
720 switch (ice->eeprom.subvendor) {
727 err = snd_ice1712_akm4xxx_build_controls(ice);