Lines Matching refs:ice
47 void (*set_register)(struct snd_ice1712 *ice, unsigned int val);
48 unsigned int (*get_register)(struct snd_ice1712 *ice);
277 struct snd_ice1712 *ice = ak->private_data[0]; in qtet_akm_write() local
283 orig_dir = ice->gpio.get_dir(ice); in qtet_akm_write()
284 ice->gpio.set_dir(ice, orig_dir | GPIO_SPI_ALL); in qtet_akm_write()
286 ice->gpio.set_mask(ice, ~GPIO_SPI_ALL); in qtet_akm_write()
288 tmp = ice->gpio.get_data(ice); in qtet_akm_write()
291 ice->gpio.set_data(ice, tmp); in qtet_akm_write()
299 ice->gpio.set_data(ice, tmp); in qtet_akm_write()
308 ice->gpio.set_data(ice, tmp); in qtet_akm_write()
315 ice->gpio.set_data(ice, tmp); in qtet_akm_write()
319 ice->gpio.set_data(ice, tmp); in qtet_akm_write()
324 ice->gpio.set_data(ice, tmp); in qtet_akm_write()
328 ice->gpio.set_mask(ice, 0xffffff); in qtet_akm_write()
330 ice->gpio.set_dir(ice, orig_dir); in qtet_akm_write()
408 static void reg_write(struct snd_ice1712 *ice, unsigned int reg, in reg_write() argument
413 mutex_lock(&ice->gpio_mutex); in reg_write()
417 ice->gpio.set_dir(ice, tmp); in reg_write()
419 ice->gpio.set_mask(ice, ~(tmp)); in reg_write()
421 tmp = ice->gpio.get_data(ice); in reg_write()
424 ice->gpio.set_data(ice, tmp); in reg_write()
428 ice->gpio.set_data(ice, tmp); in reg_write()
432 ice->gpio.set_data(ice, tmp); in reg_write()
436 ice->gpio.set_data(ice, tmp); in reg_write()
441 ice->gpio.set_data(ice, tmp); in reg_write()
443 ice->gpio.set_mask(ice, 0xffffff); in reg_write()
445 ice->gpio.set_dir(ice, 0x00ff00); in reg_write()
446 mutex_unlock(&ice->gpio_mutex); in reg_write()
449 static unsigned int get_scr(struct snd_ice1712 *ice) in get_scr() argument
451 struct qtet_spec *spec = ice->spec; in get_scr()
455 static unsigned int get_mcr(struct snd_ice1712 *ice) in get_mcr() argument
457 struct qtet_spec *spec = ice->spec; in get_mcr()
461 static unsigned int get_cpld(struct snd_ice1712 *ice) in get_cpld() argument
463 struct qtet_spec *spec = ice->spec; in get_cpld()
467 static void set_scr(struct snd_ice1712 *ice, unsigned int val) in set_scr() argument
469 struct qtet_spec *spec = ice->spec; in set_scr()
470 reg_write(ice, GPIO_SCR, val); in set_scr()
474 static void set_mcr(struct snd_ice1712 *ice, unsigned int val) in set_mcr() argument
476 struct qtet_spec *spec = ice->spec; in set_mcr()
477 reg_write(ice, GPIO_MCR, val); in set_mcr()
481 static void set_cpld(struct snd_ice1712 *ice, unsigned int val) in set_cpld() argument
483 struct qtet_spec *spec = ice->spec; in set_cpld()
484 reg_write(ice, GPIO_CPLD_CSN, val); in set_cpld()
491 struct snd_ice1712 *ice = entry->private_data; in proc_regs_read() local
495 get_scr(ice))); in proc_regs_read()
497 get_mcr(ice))); in proc_regs_read()
499 get_cpld(ice))); in proc_regs_read()
502 static void proc_init(struct snd_ice1712 *ice) in proc_init() argument
505 if (!snd_card_proc_new(ice->card, "quartet", &entry)) in proc_init()
506 snd_info_set_text_ops(entry, ice, proc_regs_read); in proc_init()
512 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in qtet_mute_get() local
514 val = get_scr(ice) & SCR_MUTE; in qtet_mute_get()
522 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in qtet_mute_put() local
524 old = get_scr(ice) & SCR_MUTE; in qtet_mute_put()
537 struct snd_akm4xxx *ak = ice->akm; in qtet_mute_put()
538 set_scr(ice, (get_scr(ice) & ~SCR_MUTE) | new); in qtet_mute_put()
558 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in qtet_ain12_sw_get() local
560 val = get_scr(ice) & (SCR_AIN12_SEL1 | SCR_AIN12_SEL0); in qtet_ain12_sw_get()
583 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in qtet_ain12_sw_put() local
585 old = new = get_scr(ice); in qtet_ain12_sw_put()
596 set_scr(ice, new); in qtet_ain12_sw_put()
599 set_scr(ice, new); in qtet_ain12_sw_put()
604 set_scr(ice, new); in qtet_ain12_sw_put()
606 set_scr(ice, new); in qtet_ain12_sw_put()
611 set_scr(ice, new); in qtet_ain12_sw_put()
613 set_scr(ice, new); in qtet_ain12_sw_put()
627 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in qtet_php_get() local
630 val = get_scr(ice) & SCR_PHP_V; in qtet_php_get()
638 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in qtet_php_put() local
640 old = new = get_scr(ice); in qtet_php_put()
646 set_scr(ice, new); in qtet_php_put()
649 set_scr(ice, new); in qtet_php_put()
655 set_scr(ice, new); in qtet_php_put()
658 set_scr(ice, new); in qtet_php_put()
703 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in qtet_sw_get() local
705 (private.get_register(ice) & private.bit) ? 1 : 0; in qtet_sw_get()
714 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in qtet_sw_put() local
716 old = private.get_register(ice); in qtet_sw_put()
722 private.set_register(ice, new); in qtet_sw_put()
806 static int qtet_add_controls(struct snd_ice1712 *ice) in qtet_add_controls() argument
808 struct qtet_spec *spec = ice->spec; in qtet_add_controls()
811 err = snd_ice1712_akm4xxx_build_controls(ice); in qtet_add_controls()
815 err = snd_ctl_add(ice->card, in qtet_add_controls()
816 snd_ctl_new1(&qtet_controls[i], ice)); in qtet_add_controls()
826 add_slaves(ice->card, vmaster, slave_vols); in qtet_add_controls()
827 err = snd_ctl_add(ice->card, vmaster); in qtet_add_controls()
832 ice->pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream); in qtet_add_controls()
835 static inline int qtet_is_spdif_master(struct snd_ice1712 *ice) in qtet_is_spdif_master() argument
838 return (get_cpld(ice) & CPLD_SYNC_SEL) ? 1 : 0; in qtet_is_spdif_master()
841 static unsigned int qtet_get_rate(struct snd_ice1712 *ice) in qtet_get_rate() argument
846 result = get_cpld(ice) & CPLD_CKS_MASK; in qtet_get_rate()
863 static void qtet_set_rate(struct snd_ice1712 *ice, unsigned int rate) in qtet_set_rate() argument
868 val = inb(ICEMT1724(ice, RATE)); in qtet_set_rate()
869 outb(val | VT1724_SPDIF_MASTER, ICEMT1724(ice, RATE)); in qtet_set_rate()
871 new = (get_cpld(ice) & ~CPLD_CKS_MASK) | get_cks_val(rate); in qtet_set_rate()
876 set_cpld(ice, new); in qtet_set_rate()
879 static inline unsigned char qtet_set_mclk(struct snd_ice1712 *ice, in qtet_set_mclk() argument
887 static int qtet_set_spdif_clock(struct snd_ice1712 *ice, int type) in qtet_set_spdif_clock() argument
891 old = new = get_cpld(ice); in qtet_set_spdif_clock()
907 set_cpld(ice, new); in qtet_set_spdif_clock()
914 static int qtet_get_spdif_master_type(struct snd_ice1712 *ice) in qtet_get_spdif_master_type() argument
918 val = get_cpld(ice); in qtet_get_spdif_master_type()
948 struct snd_ice1712 *ice = ak4113->change_callback_private; in qtet_ak4113_change() local
950 if ((qtet_get_spdif_master_type(ice) == EXT_SPDIF_TYPE) && in qtet_ak4113_change()
956 qtet_akm_set_rate_val(ice->akm, rate); in qtet_ak4113_change()
964 static void qtet_spdif_in_open(struct snd_ice1712 *ice, in qtet_spdif_in_open() argument
967 struct qtet_spec *spec = ice->spec; in qtet_spdif_in_open()
971 if (qtet_get_spdif_master_type(ice) != EXT_SPDIF_TYPE) in qtet_spdif_in_open()
985 static int qtet_init(struct snd_ice1712 *ice) in qtet_init() argument
1005 val = inb(ICEMT1724(ice, RATE)); in qtet_init()
1006 outb(val | VT1724_SPDIF_MASTER, ICEMT1724(ice, RATE)); in qtet_init()
1012 ice->hw_rates = &qtet_rates_info; in qtet_init()
1013 ice->is_spdif_master = qtet_is_spdif_master; in qtet_init()
1014 ice->get_rate = qtet_get_rate; in qtet_init()
1015 ice->set_rate = qtet_set_rate; in qtet_init()
1016 ice->set_mclk = qtet_set_mclk; in qtet_init()
1017 ice->set_spdif_clock = qtet_set_spdif_clock; in qtet_init()
1018 ice->get_spdif_master_type = qtet_get_spdif_master_type; in qtet_init()
1019 ice->ext_clock_names = ext_clock_names; in qtet_init()
1020 ice->ext_clock_count = ARRAY_SIZE(ext_clock_names); in qtet_init()
1023 ice->spdif.ops.open = ice->pro_open = qtet_spdif_in_open; in qtet_init()
1024 ice->spec = spec; in qtet_init()
1029 set_scr(ice, SCR_PHP); in qtet_init()
1032 set_scr(ice, SCR_PHP | SCR_CODEC_PDN); in qtet_init()
1035 set_mcr(ice, 0); in qtet_init()
1038 set_cpld(ice, 0); in qtet_init()
1041 ice->num_total_dacs = 2; in qtet_init()
1042 ice->num_total_adcs = 2; in qtet_init()
1044 ice->akm = kcalloc(2, sizeof(struct snd_akm4xxx), GFP_KERNEL); in qtet_init()
1045 ak = ice->akm; in qtet_init()
1049 ice->akm_codecs = 1; in qtet_init()
1050 err = snd_ice1712_akm4xxx_init(ak, &akm_qtet_dac, NULL, ice); in qtet_init()
1053 err = snd_ak4113_create(ice->card, in qtet_init()
1057 ice, &spec->ak4113); in qtet_init()
1062 spec->ak4113->change_callback_private = ice; in qtet_init()
1067 proc_init(ice); in qtet_init()
1069 qtet_set_rate(ice, 44100); in qtet_init()