Lines Matching refs:ice

61 static inline void stac9460_put(struct snd_ice1712 *ice, int reg, unsigned char val)
63 snd_vt1724_write_i2c(ice, PRODIGY192_STAC9460_ADDR, reg, val);
66 static inline unsigned char stac9460_get(struct snd_ice1712 *ice, int reg)
68 return snd_vt1724_read_i2c(ice, PRODIGY192_STAC9460_ADDR, reg);
78 static int stac9460_dac_mute(struct snd_ice1712 *ice, int idx,
83 old = stac9460_get(ice, idx);
87 /* dev_dbg(ice->card->dev, "Volume register 0x%02x: 0x%02x\n", idx, new);*/
88 stac9460_put(ice, idx, new);
96 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
104 val = stac9460_get(ice, idx);
111 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
112 struct prodigy192_spec *spec = ice->spec;
122 dev_dbg(ice->card->dev, "Mute put: reg 0x%02x, ctrl value: 0x%02x\n", idx,
125 change = stac9460_dac_mute(ice, idx, ucontrol->value.integer.value[0]);
144 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
152 vol = stac9460_get(ice, idx) & 0x7f;
160 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
170 tmp = stac9460_get(ice, idx);
176 dev_dbg(ice->card->dev, "DAC Volume: reg 0x%02x: 0x%02x\n",
179 stac9460_put(ice, idx, (0x7f - nvol) | (tmp & 0x80));
191 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
196 val = stac9460_get(ice, STAC946X_MIC_L_VOLUME + i);
205 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
212 old = stac9460_get(ice, reg);
216 stac9460_put(ice, reg, new);
236 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
242 vol = stac9460_get(ice, reg) & 0x0f;
251 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
259 ovol = 0x0f - stac9460_get(ice, reg);
262 stac9460_put(ice, reg, (0x0f - nvol) | (ovol & ~0x0f));
280 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
283 val = stac9460_get(ice, STAC946X_GENERAL_PURPOSE);
291 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
294 old = stac9460_get(ice, STAC946X_GENERAL_PURPOSE);
298 stac9460_put(ice, STAC946X_GENERAL_PURPOSE, new);
304 static void stac9460_set_rate_val(struct snd_ice1712 *ice, unsigned int rate)
309 struct prodigy192_spec *spec = ice->spec;
319 old = stac9460_get(ice, STAC946X_MASTER_CLOCKING);
327 changed[idx] = stac9460_dac_mute(ice,
329 /*dev_dbg(ice->card->dev, "Rate change: %d, new MC: 0x%02x\n", rate, new);*/
330 stac9460_put(ice, STAC946X_MASTER_CLOCKING, new);
336 stac9460_dac_mute(ice, STAC946X_MASTER_VOLUME + idx, 1);
432 static void write_data(struct snd_ice1712 *ice, unsigned int gpio,
438 snd_ice1712_gpio_write(ice, gpio);
445 snd_ice1712_gpio_write(ice, gpio);
449 snd_ice1712_gpio_write(ice, gpio);
457 static unsigned char read_data(struct snd_ice1712 *ice, unsigned int gpio,
465 snd_ice1712_gpio_write(ice, gpio);
468 if (snd_ice1712_gpio_read(ice) & VT1724_PRODIGY192_CDIN)
473 snd_ice1712_gpio_write(ice, gpio);
481 static unsigned int prodigy192_4wire_start(struct snd_ice1712 *ice)
485 snd_ice1712_save_gpio_status(ice);
486 tmp = snd_ice1712_gpio_read(ice);
490 snd_ice1712_gpio_write(ice, tmp);
498 static void prodigy192_4wire_finish(struct snd_ice1712 *ice, unsigned int tmp)
501 snd_ice1712_gpio_write(ice, tmp);
503 snd_ice1712_restore_gpio_status(ice);
512 struct snd_ice1712 *ice = private_data;
514 tmp = prodigy192_4wire_start(ice);
517 write_data(ice, tmp, addrdata, 15);
518 prodigy192_4wire_finish(ice, tmp);
527 struct snd_ice1712 *ice = private_data;
531 tmp = prodigy192_4wire_start(ice);
532 write_data(ice, tmp, (AK4114_ADDR << 6) | (addr & 0x1f), 7);
533 data = read_data(ice, tmp, 7);
534 prodigy192_4wire_finish(ice, tmp);
551 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
554 val = prodigy192_ak4114_read(ice, AK4114_REG_IO1);
565 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol);
569 old = prodigy192_ak4114_read(ice, AK4114_REG_IO1);
576 prodigy192_ak4114_write(ice, AK4114_REG_IO1, new);
593 static int prodigy192_ak4114_init(struct snd_ice1712 *ice)
609 struct prodigy192_spec *spec = ice->spec;
612 err = snd_ak4114_create(ice->card,
616 ice, &spec->ak4114);
628 struct snd_ice1712 *ice = entry->private_data;
632 val = stac9460_get(ice, reg);
638 static void stac9460_proc_init(struct snd_ice1712 *ice)
640 snd_card_ro_proc_new(ice->card, "stac9460_codec", ice,
645 static int prodigy192_add_controls(struct snd_ice1712 *ice)
647 struct prodigy192_spec *spec = ice->spec;
652 err = snd_ctl_add(ice->card,
653 snd_ctl_new1(&stac_controls[i], ice));
660 err = snd_ctl_add(ice->card,
662 ice));
668 ice->pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream);
672 stac9460_proc_init(ice);
679 static int prodigy192_miodio_exists(struct snd_ice1712 *ice)
687 orig_value = prodigy192_ak4114_read(ice, addr);
688 prodigy192_ak4114_write(ice, addr, test_data);
689 if (prodigy192_ak4114_read(ice, addr) == test_data) {
692 prodigy192_ak4114_write(ice, addr, orig_value);
701 static int prodigy192_init(struct snd_ice1712 *ice)
720 ice->num_total_dacs = 6;
721 ice->num_total_adcs = 2;
722 ice->vt1720 = 0; /* ice1724, e.g. 23 GPIOs */
727 ice->spec = spec;
733 stac9460_put(ice, p[0], p[1]);
734 ice->gpio.set_pro_rate = stac9460_set_rate_val;
737 if (prodigy192_miodio_exists(ice)) {
738 err = prodigy192_ak4114_init(ice);
742 dev_dbg(ice->card->dev,
745 dev_dbg(ice->card->dev, "AK4114 not found\n");