Lines Matching refs:ice
47 void (*set_register)(struct snd_ice1712 *ice, unsigned int val);
48 unsigned int (*get_register)(struct snd_ice1712 *ice);
279 struct snd_ice1712 *ice = ak->private_data[0]; in qtet_akm_write() local
285 orig_dir = ice->gpio.get_dir(ice); in qtet_akm_write()
286 ice->gpio.set_dir(ice, orig_dir | GPIO_SPI_ALL); in qtet_akm_write()
288 ice->gpio.set_mask(ice, ~GPIO_SPI_ALL); in qtet_akm_write()
290 tmp = ice->gpio.get_data(ice); in qtet_akm_write()
293 ice->gpio.set_data(ice, tmp); in qtet_akm_write()
301 ice->gpio.set_data(ice, tmp); in qtet_akm_write()
310 ice->gpio.set_data(ice, tmp); in qtet_akm_write()
317 ice->gpio.set_data(ice, tmp); in qtet_akm_write()
321 ice->gpio.set_data(ice, tmp); in qtet_akm_write()
326 ice->gpio.set_data(ice, tmp); in qtet_akm_write()
330 ice->gpio.set_mask(ice, 0xffffff); in qtet_akm_write()
332 ice->gpio.set_dir(ice, orig_dir); in qtet_akm_write()
410 static void reg_write(struct snd_ice1712 *ice, unsigned int reg, in reg_write() argument
415 mutex_lock(&ice->gpio_mutex); in reg_write()
419 ice->gpio.set_dir(ice, tmp); in reg_write()
421 ice->gpio.set_mask(ice, ~(tmp)); in reg_write()
423 tmp = ice->gpio.get_data(ice); in reg_write()
426 ice->gpio.set_data(ice, tmp); in reg_write()
430 ice->gpio.set_data(ice, tmp); in reg_write()
434 ice->gpio.set_data(ice, tmp); in reg_write()
438 ice->gpio.set_data(ice, tmp); in reg_write()
443 ice->gpio.set_data(ice, tmp); in reg_write()
445 ice->gpio.set_mask(ice, 0xffffff); in reg_write()
447 ice->gpio.set_dir(ice, 0x00ff00); in reg_write()
448 mutex_unlock(&ice->gpio_mutex); in reg_write()
451 static unsigned int get_scr(struct snd_ice1712 *ice) in get_scr() argument
453 struct qtet_spec *spec = ice->spec; in get_scr()
457 static unsigned int get_mcr(struct snd_ice1712 *ice) in get_mcr() argument
459 struct qtet_spec *spec = ice->spec; in get_mcr()
463 static unsigned int get_cpld(struct snd_ice1712 *ice) in get_cpld() argument
465 struct qtet_spec *spec = ice->spec; in get_cpld()
469 static void set_scr(struct snd_ice1712 *ice, unsigned int val) in set_scr() argument
471 struct qtet_spec *spec = ice->spec; in set_scr()
472 reg_write(ice, GPIO_SCR, val); in set_scr()
476 static void set_mcr(struct snd_ice1712 *ice, unsigned int val) in set_mcr() argument
478 struct qtet_spec *spec = ice->spec; in set_mcr()
479 reg_write(ice, GPIO_MCR, val); in set_mcr()
483 static void set_cpld(struct snd_ice1712 *ice, unsigned int val) in set_cpld() argument
485 struct qtet_spec *spec = ice->spec; in set_cpld()
486 reg_write(ice, GPIO_CPLD_CSN, val); in set_cpld()
493 struct snd_ice1712 *ice = entry->private_data; in proc_regs_read() local
497 get_scr(ice))); in proc_regs_read()
499 get_mcr(ice))); in proc_regs_read()
501 get_cpld(ice))); in proc_regs_read()
504 static void proc_init(struct snd_ice1712 *ice) in proc_init() argument
507 if (!snd_card_proc_new(ice->card, "quartet", &entry)) in proc_init()
508 snd_info_set_text_ops(entry, ice, proc_regs_read); in proc_init()
511 static void proc_init(struct snd_ice1712 *ice) {} in proc_init() argument
517 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in qtet_mute_get() local
519 val = get_scr(ice) & SCR_MUTE; in qtet_mute_get()
527 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in qtet_mute_put() local
529 old = get_scr(ice) & SCR_MUTE; in qtet_mute_put()
542 struct snd_akm4xxx *ak = ice->akm; in qtet_mute_put()
543 set_scr(ice, (get_scr(ice) & ~SCR_MUTE) | new); in qtet_mute_put()
563 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in qtet_ain12_sw_get() local
565 val = get_scr(ice) & (SCR_AIN12_SEL1 | SCR_AIN12_SEL0); in qtet_ain12_sw_get()
588 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in qtet_ain12_sw_put() local
590 old = new = get_scr(ice); in qtet_ain12_sw_put()
601 set_scr(ice, new); in qtet_ain12_sw_put()
604 set_scr(ice, new); in qtet_ain12_sw_put()
609 set_scr(ice, new); in qtet_ain12_sw_put()
611 set_scr(ice, new); in qtet_ain12_sw_put()
616 set_scr(ice, new); in qtet_ain12_sw_put()
618 set_scr(ice, new); in qtet_ain12_sw_put()
632 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in qtet_php_get() local
635 val = get_scr(ice) & SCR_PHP_V; in qtet_php_get()
643 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in qtet_php_put() local
645 old = new = get_scr(ice); in qtet_php_put()
651 set_scr(ice, new); in qtet_php_put()
654 set_scr(ice, new); in qtet_php_put()
660 set_scr(ice, new); in qtet_php_put()
663 set_scr(ice, new); in qtet_php_put()
708 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in qtet_sw_get() local
710 (private.get_register(ice) & private.bit) ? 1 : 0; in qtet_sw_get()
719 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in qtet_sw_put() local
721 old = private.get_register(ice); in qtet_sw_put()
727 private.set_register(ice, new); in qtet_sw_put()
811 static int qtet_add_controls(struct snd_ice1712 *ice) in qtet_add_controls() argument
813 struct qtet_spec *spec = ice->spec; in qtet_add_controls()
816 err = snd_ice1712_akm4xxx_build_controls(ice); in qtet_add_controls()
820 err = snd_ctl_add(ice->card, in qtet_add_controls()
821 snd_ctl_new1(&qtet_controls[i], ice)); in qtet_add_controls()
831 add_slaves(ice->card, vmaster, slave_vols); in qtet_add_controls()
832 err = snd_ctl_add(ice->card, vmaster); in qtet_add_controls()
837 ice->pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream); in qtet_add_controls()
840 static inline int qtet_is_spdif_master(struct snd_ice1712 *ice) in qtet_is_spdif_master() argument
843 return (get_cpld(ice) & CPLD_SYNC_SEL) ? 1 : 0; in qtet_is_spdif_master()
846 static unsigned int qtet_get_rate(struct snd_ice1712 *ice) in qtet_get_rate() argument
851 result = get_cpld(ice) & CPLD_CKS_MASK; in qtet_get_rate()
868 static void qtet_set_rate(struct snd_ice1712 *ice, unsigned int rate) in qtet_set_rate() argument
873 val = inb(ICEMT1724(ice, RATE)); in qtet_set_rate()
874 outb(val | VT1724_SPDIF_MASTER, ICEMT1724(ice, RATE)); in qtet_set_rate()
876 new = (get_cpld(ice) & ~CPLD_CKS_MASK) | get_cks_val(rate); in qtet_set_rate()
881 set_cpld(ice, new); in qtet_set_rate()
884 static inline unsigned char qtet_set_mclk(struct snd_ice1712 *ice, in qtet_set_mclk() argument
892 static int qtet_set_spdif_clock(struct snd_ice1712 *ice, int type) in qtet_set_spdif_clock() argument
896 old = new = get_cpld(ice); in qtet_set_spdif_clock()
912 set_cpld(ice, new); in qtet_set_spdif_clock()
919 static int qtet_get_spdif_master_type(struct snd_ice1712 *ice) in qtet_get_spdif_master_type() argument
923 val = get_cpld(ice); in qtet_get_spdif_master_type()
953 struct snd_ice1712 *ice = ak4113->change_callback_private; in qtet_ak4113_change() local
955 if ((qtet_get_spdif_master_type(ice) == EXT_SPDIF_TYPE) && in qtet_ak4113_change()
961 qtet_akm_set_rate_val(ice->akm, rate); in qtet_ak4113_change()
969 static void qtet_spdif_in_open(struct snd_ice1712 *ice, in qtet_spdif_in_open() argument
972 struct qtet_spec *spec = ice->spec; in qtet_spdif_in_open()
976 if (qtet_get_spdif_master_type(ice) != EXT_SPDIF_TYPE) in qtet_spdif_in_open()
990 static int qtet_init(struct snd_ice1712 *ice) in qtet_init() argument
1010 val = inb(ICEMT1724(ice, RATE)); in qtet_init()
1011 outb(val | VT1724_SPDIF_MASTER, ICEMT1724(ice, RATE)); in qtet_init()
1017 ice->hw_rates = &qtet_rates_info; in qtet_init()
1018 ice->is_spdif_master = qtet_is_spdif_master; in qtet_init()
1019 ice->get_rate = qtet_get_rate; in qtet_init()
1020 ice->set_rate = qtet_set_rate; in qtet_init()
1021 ice->set_mclk = qtet_set_mclk; in qtet_init()
1022 ice->set_spdif_clock = qtet_set_spdif_clock; in qtet_init()
1023 ice->get_spdif_master_type = qtet_get_spdif_master_type; in qtet_init()
1024 ice->ext_clock_names = ext_clock_names; in qtet_init()
1025 ice->ext_clock_count = ARRAY_SIZE(ext_clock_names); in qtet_init()
1028 ice->spdif.ops.open = ice->pro_open = qtet_spdif_in_open; in qtet_init()
1029 ice->spec = spec; in qtet_init()
1034 set_scr(ice, SCR_PHP); in qtet_init()
1037 set_scr(ice, SCR_PHP | SCR_CODEC_PDN); in qtet_init()
1040 set_mcr(ice, 0); in qtet_init()
1043 set_cpld(ice, 0); in qtet_init()
1046 ice->num_total_dacs = 2; in qtet_init()
1047 ice->num_total_adcs = 2; in qtet_init()
1049 ice->akm = kcalloc(2, sizeof(struct snd_akm4xxx), GFP_KERNEL); in qtet_init()
1050 ak = ice->akm; in qtet_init()
1054 ice->akm_codecs = 1; in qtet_init()
1055 err = snd_ice1712_akm4xxx_init(ak, &akm_qtet_dac, NULL, ice); in qtet_init()
1058 err = snd_ak4113_create(ice->card, in qtet_init()
1062 ice, &spec->ak4113); in qtet_init()
1067 spec->ak4113->change_callback_private = ice; in qtet_init()
1072 proc_init(ice); in qtet_init()
1074 qtet_set_rate(ice, 44100); in qtet_init()