Lines Matching refs:ice

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