Lines Matching refs:ice
75 static inline void stac9460_put(struct snd_ice1712 *ice, int reg, unsigned char val) in stac9460_put() argument
77 snd_vt1724_write_i2c(ice, PRODIGY192_STAC9460_ADDR, reg, val); in stac9460_put()
80 static inline unsigned char stac9460_get(struct snd_ice1712 *ice, int reg) in stac9460_get() argument
82 return snd_vt1724_read_i2c(ice, PRODIGY192_STAC9460_ADDR, reg); in stac9460_get()
92 static int stac9460_dac_mute(struct snd_ice1712 *ice, int idx, in stac9460_dac_mute() argument
97 old = stac9460_get(ice, idx); in stac9460_dac_mute()
102 stac9460_put(ice, idx, new); in stac9460_dac_mute()
110 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in stac9460_dac_mute_get() local
118 val = stac9460_get(ice, idx); in stac9460_dac_mute_get()
125 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in stac9460_dac_mute_put() local
126 struct prodigy192_spec *spec = ice->spec; in stac9460_dac_mute_put()
139 change = stac9460_dac_mute(ice, idx, ucontrol->value.integer.value[0]); in stac9460_dac_mute_put()
158 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in stac9460_dac_vol_get() local
166 vol = stac9460_get(ice, idx) & 0x7f; in stac9460_dac_vol_get()
174 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in stac9460_dac_vol_put() local
184 tmp = stac9460_get(ice, idx); in stac9460_dac_vol_put()
193 stac9460_put(ice, idx, (0x7f - nvol) | (tmp & 0x80)); in stac9460_dac_vol_put()
205 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in stac9460_adc_mute_get() local
210 val = stac9460_get(ice, STAC946X_MIC_L_VOLUME + i); in stac9460_adc_mute_get()
219 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in stac9460_adc_mute_put() local
226 old = stac9460_get(ice, reg); in stac9460_adc_mute_put()
230 stac9460_put(ice, reg, new); in stac9460_adc_mute_put()
250 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in stac9460_adc_vol_get() local
256 vol = stac9460_get(ice, reg) & 0x0f; in stac9460_adc_vol_get()
265 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in stac9460_adc_vol_put() local
273 ovol = 0x0f - stac9460_get(ice, reg); in stac9460_adc_vol_put()
276 stac9460_put(ice, reg, (0x0f - nvol) | (ovol & ~0x0f)); in stac9460_adc_vol_put()
294 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in stac9460_mic_sw_get() local
297 val = stac9460_get(ice, STAC946X_GENERAL_PURPOSE); in stac9460_mic_sw_get()
305 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in stac9460_mic_sw_put() local
308 old = stac9460_get(ice, STAC946X_GENERAL_PURPOSE); in stac9460_mic_sw_put()
312 stac9460_put(ice, STAC946X_GENERAL_PURPOSE, new); in stac9460_mic_sw_put()
318 static void stac9460_set_rate_val(struct snd_ice1712 *ice, unsigned int rate) in stac9460_set_rate_val() argument
323 struct prodigy192_spec *spec = ice->spec; in stac9460_set_rate_val()
333 old = stac9460_get(ice, STAC946X_MASTER_CLOCKING); in stac9460_set_rate_val()
341 changed[idx] = stac9460_dac_mute(ice, in stac9460_set_rate_val()
344 stac9460_put(ice, STAC946X_MASTER_CLOCKING, new); in stac9460_set_rate_val()
350 stac9460_dac_mute(ice, STAC946X_MASTER_VOLUME + idx, 1); in stac9460_set_rate_val()
446 static void write_data(struct snd_ice1712 *ice, unsigned int gpio, in write_data() argument
452 snd_ice1712_gpio_write(ice, gpio); in write_data()
459 snd_ice1712_gpio_write(ice, gpio); in write_data()
463 snd_ice1712_gpio_write(ice, gpio); in write_data()
471 static unsigned char read_data(struct snd_ice1712 *ice, unsigned int gpio, in read_data() argument
479 snd_ice1712_gpio_write(ice, gpio); in read_data()
482 if (snd_ice1712_gpio_read(ice) & VT1724_PRODIGY192_CDIN) in read_data()
487 snd_ice1712_gpio_write(ice, gpio); in read_data()
495 static unsigned int prodigy192_4wire_start(struct snd_ice1712 *ice) in prodigy192_4wire_start() argument
499 snd_ice1712_save_gpio_status(ice); in prodigy192_4wire_start()
500 tmp = snd_ice1712_gpio_read(ice); in prodigy192_4wire_start()
504 snd_ice1712_gpio_write(ice, tmp); in prodigy192_4wire_start()
512 static void prodigy192_4wire_finish(struct snd_ice1712 *ice, unsigned int tmp) in prodigy192_4wire_finish() argument
515 snd_ice1712_gpio_write(ice, tmp); in prodigy192_4wire_finish()
517 snd_ice1712_restore_gpio_status(ice); in prodigy192_4wire_finish()
526 struct snd_ice1712 *ice = private_data; in prodigy192_ak4114_write() local
528 tmp = prodigy192_4wire_start(ice); in prodigy192_ak4114_write()
531 write_data(ice, tmp, addrdata, 15); in prodigy192_ak4114_write()
532 prodigy192_4wire_finish(ice, tmp); in prodigy192_ak4114_write()
541 struct snd_ice1712 *ice = private_data; in prodigy192_ak4114_read() local
545 tmp = prodigy192_4wire_start(ice); in prodigy192_ak4114_read()
546 write_data(ice, tmp, (AK4114_ADDR << 6) | (addr & 0x1f), 7); in prodigy192_ak4114_read()
547 data = read_data(ice, tmp, 7); in prodigy192_ak4114_read()
548 prodigy192_4wire_finish(ice, tmp); in prodigy192_ak4114_read()
565 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in ak4114_input_sw_get() local
568 val = prodigy192_ak4114_read(ice, AK4114_REG_IO1); in ak4114_input_sw_get()
579 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in ak4114_input_sw_put() local
583 old = prodigy192_ak4114_read(ice, AK4114_REG_IO1); in ak4114_input_sw_put()
590 prodigy192_ak4114_write(ice, AK4114_REG_IO1, new); in ak4114_input_sw_put()
607 static int prodigy192_ak4114_init(struct snd_ice1712 *ice) in prodigy192_ak4114_init() argument
623 struct prodigy192_spec *spec = ice->spec; in prodigy192_ak4114_init()
626 err = snd_ak4114_create(ice->card, in prodigy192_ak4114_init()
630 ice, &spec->ak4114); in prodigy192_ak4114_init()
642 struct snd_ice1712 *ice = entry->private_data; in stac9460_proc_regs_read() local
646 val = stac9460_get(ice, reg); in stac9460_proc_regs_read()
652 static void stac9460_proc_init(struct snd_ice1712 *ice) in stac9460_proc_init() argument
655 if (!snd_card_proc_new(ice->card, "stac9460_codec", &entry)) in stac9460_proc_init()
656 snd_info_set_text_ops(entry, ice, stac9460_proc_regs_read); in stac9460_proc_init()
660 static int prodigy192_add_controls(struct snd_ice1712 *ice) in prodigy192_add_controls() argument
662 struct prodigy192_spec *spec = ice->spec; in prodigy192_add_controls()
667 err = snd_ctl_add(ice->card, in prodigy192_add_controls()
668 snd_ctl_new1(&stac_controls[i], ice)); in prodigy192_add_controls()
675 err = snd_ctl_add(ice->card, in prodigy192_add_controls()
677 ice)); in prodigy192_add_controls()
683 ice->pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream); in prodigy192_add_controls()
687 stac9460_proc_init(ice); in prodigy192_add_controls()
694 static int prodigy192_miodio_exists(struct snd_ice1712 *ice) in prodigy192_miodio_exists() argument
702 orig_value = prodigy192_ak4114_read(ice, addr); in prodigy192_miodio_exists()
703 prodigy192_ak4114_write(ice, addr, test_data); in prodigy192_miodio_exists()
704 if (prodigy192_ak4114_read(ice, addr) == test_data) { in prodigy192_miodio_exists()
707 prodigy192_ak4114_write(ice, addr, orig_value); in prodigy192_miodio_exists()
716 static int prodigy192_init(struct snd_ice1712 *ice) in prodigy192_init() argument
735 ice->num_total_dacs = 6; in prodigy192_init()
736 ice->num_total_adcs = 2; in prodigy192_init()
737 ice->vt1720 = 0; /* ice1724, e.g. 23 GPIOs */ in prodigy192_init()
742 ice->spec = spec; in prodigy192_init()
748 stac9460_put(ice, p[0], p[1]); in prodigy192_init()
749 ice->gpio.set_pro_rate = stac9460_set_rate_val; in prodigy192_init()
752 if (prodigy192_miodio_exists(ice)) { in prodigy192_init()
753 err = prodigy192_ak4114_init(ice); in prodigy192_init()
757 dev_dbg(ice->card->dev, in prodigy192_init()
760 dev_dbg(ice->card->dev, "AK4114 not found\n"); in prodigy192_init()