• 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

59 	struct snd_ice1712 *ice = bus->private_data;
65 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, tmp);
71 struct snd_ice1712 *ice = bus->private_data;
72 return snd_ice1712_read(ice, ICE1712_IREG_GPIO_DATA) & ICE1712_EWX2496_SERIAL_CLOCK ? 1 : 0;
77 struct snd_ice1712 *ice = bus->private_data;
80 snd_ice1712_write(ice, ICE1712_IREG_GPIO_WRITE_MASK, ~ICE1712_EWX2496_RW);
81 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, 0);
84 bit = snd_ice1712_read(ice, ICE1712_IREG_GPIO_DATA) & ICE1712_EWX2496_SERIAL_DATA ? 1 : 0;
86 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, ICE1712_EWX2496_RW);
88 snd_ice1712_write(ice, ICE1712_IREG_GPIO_WRITE_MASK, ~ICE1712_EWX2496_SERIAL_CLOCK);
94 struct snd_ice1712 *ice = bus->private_data;
97 snd_ice1712_save_gpio_status(ice);
100 switch (ice->eeprom.subvendor) {
108 snd_ice1712_gpio_write_bits(ice, mask, mask);
113 struct snd_ice1712 *ice = bus->private_data;
114 snd_ice1712_restore_gpio_status(ice);
119 struct snd_ice1712 *ice = bus->private_data;
126 ice->gpio.direction &= ~(ICE1712_EWX2496_SERIAL_CLOCK|ICE1712_EWX2496_SERIAL_DATA);
127 ice->gpio.direction |= mask;
128 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DIRECTION, ice->gpio.direction);
129 snd_ice1712_write(ice, ICE1712_IREG_GPIO_WRITE_MASK, ~mask);
147 static int snd_ice1712_ews88mt_chip_select(struct snd_ice1712 *ice, int chip_mask)
149 struct ews_spec *spec = ice->spec;
154 snd_i2c_lock(ice->i2c);
162 snd_i2c_unlock(ice->i2c);
166 snd_i2c_unlock(ice->i2c);
174 struct snd_ice1712 *ice = ak->private_data[0];
177 if (snd_ice1712_ews88mt_chip_select(ice, ~(1 << chip) & 0x0f) < 0)
179 snd_ice1712_save_gpio_status(ice);
183 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DIRECTION,
184 ice->gpio.direction | tmp);
185 snd_ice1712_write(ice, ICE1712_IREG_GPIO_WRITE_MASK, ~tmp);
191 struct snd_ice1712 *ice = ak->private_data[0];
192 snd_ice1712_restore_gpio_status(ice);
194 snd_ice1712_ews88mt_chip_select(ice, 0x0f);
200 struct snd_ice1712 *ice = ak->private_data[0];
202 snd_ice1712_save_gpio_status(ice);
207 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DIRECTION,
208 ice->gpio.direction | tmp);
209 snd_ice1712_write(ice, ICE1712_IREG_GPIO_WRITE_MASK, ~tmp);
216 struct snd_ice1712 *ice = ak->private_data[0];
218 snd_ice1712_save_gpio_status(ice);
223 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DIRECTION,
224 ice->gpio.direction | tmp);
225 snd_ice1712_write(ice, ICE1712_IREG_GPIO_WRITE_MASK, ~tmp);
232 static void snd_ice1712_ews_cs8404_spdif_write(struct snd_ice1712 *ice, unsigned char bits)
234 struct ews_spec *spec = ice->spec;
237 snd_i2c_lock(ice->i2c);
238 switch (ice->eeprom.subvendor) {
260 snd_i2c_unlock(ice->i2c);
266 static void ews88_spdif_default_get(struct snd_ice1712 *ice, struct snd_ctl_elem_value *ucontrol)
268 snd_cs8404_decode_spdif_bits(&ucontrol->value.iec958, ice->spdif.cs8403_bits);
271 static int ews88_spdif_default_put(struct snd_ice1712 *ice, struct snd_ctl_elem_value *ucontrol)
277 spin_lock_irq(&ice->reg_lock);
278 change = ice->spdif.cs8403_bits != val;
279 ice->spdif.cs8403_bits = val;
280 if (change && ice->playback_pro_substream == NULL) {
281 spin_unlock_irq(&ice->reg_lock);
282 snd_ice1712_ews_cs8404_spdif_write(ice, val);
284 spin_unlock_irq(&ice->reg_lock);
289 static void ews88_spdif_stream_get(struct snd_ice1712 *ice, struct snd_ctl_elem_value *ucontrol)
291 snd_cs8404_decode_spdif_bits(&ucontrol->value.iec958, ice->spdif.cs8403_stream_bits);
294 static int ews88_spdif_stream_put(struct snd_ice1712 *ice, struct snd_ctl_elem_value *ucontrol)
300 spin_lock_irq(&ice->reg_lock);
301 change = ice->spdif.cs8403_stream_bits != val;
302 ice->spdif.cs8403_stream_bits = val;
303 if (change && ice->playback_pro_substream != NULL) {
304 spin_unlock_irq(&ice->reg_lock);
305 snd_ice1712_ews_cs8404_spdif_write(ice, val);
307 spin_unlock_irq(&ice->reg_lock);
314 static void ews88_open_spdif(struct snd_ice1712 *ice, struct snd_pcm_substream *substream)
316 ice->spdif.cs8403_stream_bits = ice->spdif.cs8403_bits;
320 static void ews88_setup_spdif(struct snd_ice1712 *ice, int rate)
326 spin_lock_irqsave(&ice->reg_lock, flags);
327 tmp = ice->spdif.cs8403_stream_bits;
336 change = ice->spdif.cs8403_stream_bits != tmp;
337 ice->spdif.cs8403_stream_bits = tmp;
338 spin_unlock_irqrestore(&ice->reg_lock, flags);
340 snd_ctl_notify(ice->card, SNDRV_CTL_EVENT_MASK_VALUE, &ice->spdif.stream_ctl->id);
341 snd_ice1712_ews_cs8404_spdif_write(ice, tmp);
421 static int snd_ice1712_6fire_write_pca(struct snd_ice1712 *ice, unsigned char reg, unsigned char data);
423 static int __devinit snd_ice1712_ews_init(struct snd_ice1712 *ice)
430 switch (ice->eeprom.subvendor) {
432 ice->num_total_dacs = 2;
433 ice->num_total_adcs = 2;
439 ice->num_total_dacs = 8;
440 ice->num_total_adcs = 8;
444 ice->num_total_dacs = 8;
445 ice->num_total_adcs = 8;
448 ice->num_total_dacs = 6;
449 ice->num_total_adcs = 6;
456 ice->spec = spec;
459 if ((err = snd_i2c_bus_create(ice->card, "ICE1712 GPIO 1", NULL, &ice->i2c)) < 0) {
463 ice->i2c->private_data = ice;
464 ice->i2c->hw_ops.bit = &snd_ice1712_ewx_cs8427_bit_ops;
467 switch (ice->eeprom.subvendor) {
469 err = snd_i2c_device_create(ice->i2c, "PCF9554",
476 snd_ice1712_6fire_write_pca(ice, PCF9554_REG_CONFIG, 0x80);
483 err = snd_i2c_device_create(ice->i2c, "CS8404",
488 err = snd_i2c_device_create(ice->i2c, "PCF8574 (1st)",
493 err = snd_i2c_device_create(ice->i2c, "PCF8574 (2nd)",
499 if ((err = snd_ice1712_ews88mt_chip_select(ice, 0x0f)) < 0)
503 err = snd_i2c_device_create(ice->i2c, "PCF8575",
512 switch (ice->eeprom.subvendor) {
514 if ((err = snd_ice1712_init_cs8427(ice, CS8427_BASE_ADDR)) < 0)
516 snd_cs8427_reg_write(ice->cs8427, CS8427_REG_RECVERRMASK, CS8427_UNLOCK | CS8427_CONF | CS8427_BIP | CS8427_PAR);
519 if ((err = snd_ice1712_init_cs8427(ice, ICE1712_6FIRE_CS8427_ADDR)) < 0)
521 snd_cs8427_reg_write(ice->cs8427, CS8427_REG_RECVERRMASK, CS8427_UNLOCK | CS8427_CONF | CS8427_BIP | CS8427_PAR);
529 ice->spdif.ops.open = ews88_open_spdif;
530 ice->spdif.ops.setup_rate = ews88_setup_spdif;
531 ice->spdif.ops.default_get = ews88_spdif_default_get;
532 ice->spdif.ops.default_put = ews88_spdif_default_put;
533 ice->spdif.ops.stream_get = ews88_spdif_stream_get;
534 ice->spdif.ops.stream_put = ews88_spdif_stream_put;
536 snd_ice1712_ews_cs8404_spdif_write(ice, ice->spdif.cs8403_bits);
541 switch (ice->eeprom.subvendor) {
547 ak = ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL);
550 ice->akm_codecs = 1;
552 switch (ice->eeprom.subvendor) {
557 err = snd_ice1712_akm4xxx_init(ak, &akm_ews88mt, &akm_ews88mt_priv, ice);
560 err = snd_ice1712_akm4xxx_init(ak, &akm_ewx2496, &akm_ewx2496_priv, ice);
563 err = snd_ice1712_akm4xxx_init(ak, &akm_6fire, &akm_6fire_priv, ice);
593 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
596 snd_ice1712_save_gpio_status(ice);
597 ucontrol->value.enumerated.item[0] = snd_ice1712_read(ice, ICE1712_IREG_GPIO_DATA) & mask ? 1 : 0;
598 snd_ice1712_restore_gpio_status(ice);
604 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
611 snd_ice1712_save_gpio_status(ice);
612 val = snd_ice1712_read(ice, ICE1712_IREG_GPIO_DATA);
614 snd_ice1712_write(ice, ICE1712_IREG_GPIO_DATA, nval);
615 snd_ice1712_restore_gpio_status(ice);
645 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
646 struct ews_spec *spec = ice->spec;
649 snd_i2c_lock(ice->i2c);
651 snd_i2c_unlock(ice->i2c);
654 snd_i2c_unlock(ice->i2c);
662 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
663 struct ews_spec *spec = ice->spec;
666 snd_i2c_lock(ice->i2c);
668 snd_i2c_unlock(ice->i2c);
674 snd_i2c_unlock(ice->i2c);
677 snd_i2c_unlock(ice->i2c);
684 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
685 struct ews_spec *spec = ice->spec;
691 snd_i2c_lock(ice->i2c);
693 snd_i2c_unlock(ice->i2c);
698 snd_i2c_unlock(ice->i2c);
705 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
706 struct ews_spec *spec = ice->spec;
712 snd_i2c_lock(ice->i2c);
714 snd_i2c_unlock(ice->i2c);
720 snd_i2c_unlock(ice->i2c);
723 snd_i2c_unlock(ice->i2c);
753 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
754 struct ews_spec *spec = ice->spec;
759 snd_i2c_lock(ice->i2c);
761 snd_i2c_unlock(ice->i2c);
764 snd_i2c_unlock(ice->i2c);
774 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
775 struct ews_spec *spec = ice->spec;
781 snd_i2c_lock(ice->i2c);
783 snd_i2c_unlock(ice->i2c);
797 snd_i2c_unlock(ice->i2c);
800 snd_i2c_unlock(ice->i2c);
827 static int snd_ice1712_6fire_read_pca(struct snd_ice1712 *ice, unsigned char reg)
830 struct ews_spec *spec = ice->spec;
832 snd_i2c_lock(ice->i2c);
837 snd_i2c_unlock(ice->i2c);
841 snd_i2c_unlock(ice->i2c);
845 static int snd_ice1712_6fire_write_pca(struct snd_ice1712 *ice, unsigned char reg, unsigned char data)
848 struct ews_spec *spec = ice->spec;
850 snd_i2c_lock(ice->i2c);
854 snd_i2c_unlock(ice->i2c);
857 snd_i2c_unlock(ice->i2c);
865 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
870 if ((data = snd_ice1712_6fire_read_pca(ice, PCF9554_REG_OUTPUT)) < 0)
881 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
886 if ((data = snd_ice1712_6fire_read_pca(ice, PCF9554_REG_OUTPUT)) < 0)
894 snd_ice1712_6fire_write_pca(ice, PCF9554_REG_OUTPUT, (unsigned char)ndata);
916 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
919 if ((data = snd_ice1712_6fire_read_pca(ice, PCF9554_REG_OUTPUT)) < 0)
927 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
930 if ((data = snd_ice1712_6fire_read_pca(ice, PCF9554_REG_OUTPUT)) < 0)
935 snd_ice1712_6fire_write_pca(ice, PCF9554_REG_OUTPUT, (unsigned char)ndata);
967 static int __devinit snd_ice1712_ews_add_controls(struct snd_ice1712 *ice)
973 if (ice->cs8427 == NULL) {
974 err = snd_ice1712_spdif_build_controls(ice);
980 switch (ice->eeprom.subvendor) {
987 err = snd_ice1712_akm4xxx_build_controls(ice);
994 switch (ice->eeprom.subvendor) {
997 err = snd_ctl_add(ice->card, snd_ctl_new1(&snd_ice1712_ewx2496_controls[idx], ice));
1006 err = snd_ctl_add(ice->card, snd_ctl_new1(&snd_ice1712_ews88mt_input_sense, ice));
1009 err = snd_ctl_add(ice->card, snd_ctl_new1(&snd_ice1712_ews88mt_output_sense, ice));
1015 err = snd_ctl_add(ice->card, snd_ctl_new1(&snd_ice1712_ews88d_controls[idx], ice));
1022 err = snd_ctl_add(ice->card, snd_ctl_new1(&snd_ice1712_6fire_controls[idx], ice));