Lines Matching refs:ice

33 	void (*set_register)(struct snd_ice1712 *ice, unsigned int val);
34 unsigned int (*get_register)(struct snd_ice1712 *ice);
263 struct snd_ice1712 *ice = ak->private_data[0]; in qtet_akm_write() local
269 orig_dir = ice->gpio.get_dir(ice); in qtet_akm_write()
270 ice->gpio.set_dir(ice, orig_dir | GPIO_SPI_ALL); in qtet_akm_write()
272 ice->gpio.set_mask(ice, ~GPIO_SPI_ALL); in qtet_akm_write()
274 tmp = ice->gpio.get_data(ice); in qtet_akm_write()
277 ice->gpio.set_data(ice, tmp); in qtet_akm_write()
285 ice->gpio.set_data(ice, tmp); in qtet_akm_write()
294 ice->gpio.set_data(ice, tmp); in qtet_akm_write()
301 ice->gpio.set_data(ice, tmp); in qtet_akm_write()
305 ice->gpio.set_data(ice, tmp); in qtet_akm_write()
310 ice->gpio.set_data(ice, tmp); in qtet_akm_write()
314 ice->gpio.set_mask(ice, 0xffffff); in qtet_akm_write()
316 ice->gpio.set_dir(ice, orig_dir); in qtet_akm_write()
394 static void reg_write(struct snd_ice1712 *ice, unsigned int reg, in reg_write() argument
399 mutex_lock(&ice->gpio_mutex); in reg_write()
403 ice->gpio.set_dir(ice, tmp); in reg_write()
405 ice->gpio.set_mask(ice, ~(tmp)); in reg_write()
407 tmp = ice->gpio.get_data(ice); in reg_write()
410 ice->gpio.set_data(ice, tmp); in reg_write()
414 ice->gpio.set_data(ice, tmp); in reg_write()
418 ice->gpio.set_data(ice, tmp); in reg_write()
422 ice->gpio.set_data(ice, tmp); in reg_write()
427 ice->gpio.set_data(ice, tmp); in reg_write()
429 ice->gpio.set_mask(ice, 0xffffff); in reg_write()
431 ice->gpio.set_dir(ice, 0x00ff00); in reg_write()
432 mutex_unlock(&ice->gpio_mutex); in reg_write()
435 static unsigned int get_scr(struct snd_ice1712 *ice) in get_scr() argument
437 struct qtet_spec *spec = ice->spec; in get_scr()
441 static unsigned int get_mcr(struct snd_ice1712 *ice) in get_mcr() argument
443 struct qtet_spec *spec = ice->spec; in get_mcr()
447 static unsigned int get_cpld(struct snd_ice1712 *ice) in get_cpld() argument
449 struct qtet_spec *spec = ice->spec; in get_cpld()
453 static void set_scr(struct snd_ice1712 *ice, unsigned int val) in set_scr() argument
455 struct qtet_spec *spec = ice->spec; in set_scr()
456 reg_write(ice, GPIO_SCR, val); in set_scr()
460 static void set_mcr(struct snd_ice1712 *ice, unsigned int val) in set_mcr() argument
462 struct qtet_spec *spec = ice->spec; in set_mcr()
463 reg_write(ice, GPIO_MCR, val); in set_mcr()
467 static void set_cpld(struct snd_ice1712 *ice, unsigned int val) in set_cpld() argument
469 struct qtet_spec *spec = ice->spec; in set_cpld()
470 reg_write(ice, GPIO_CPLD_CSN, val); in set_cpld()
477 struct snd_ice1712 *ice = entry->private_data; in proc_regs_read() local
481 get_scr(ice))); in proc_regs_read()
483 get_mcr(ice))); in proc_regs_read()
485 get_cpld(ice))); in proc_regs_read()
488 static void proc_init(struct snd_ice1712 *ice) in proc_init() argument
490 snd_card_ro_proc_new(ice->card, "quartet", ice, proc_regs_read); in proc_init()
496 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in qtet_mute_get() local
498 val = get_scr(ice) & SCR_MUTE; in qtet_mute_get()
506 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in qtet_mute_put() local
508 old = get_scr(ice) & SCR_MUTE; in qtet_mute_put()
521 struct snd_akm4xxx *ak = ice->akm; in qtet_mute_put()
522 set_scr(ice, (get_scr(ice) & ~SCR_MUTE) | new); in qtet_mute_put()
542 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in qtet_ain12_sw_get() local
544 val = get_scr(ice) & (SCR_AIN12_SEL1 | SCR_AIN12_SEL0); in qtet_ain12_sw_get()
567 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in qtet_ain12_sw_put() local
569 old = new = get_scr(ice); in qtet_ain12_sw_put()
580 set_scr(ice, new); in qtet_ain12_sw_put()
583 set_scr(ice, new); in qtet_ain12_sw_put()
588 set_scr(ice, new); in qtet_ain12_sw_put()
590 set_scr(ice, new); in qtet_ain12_sw_put()
595 set_scr(ice, new); in qtet_ain12_sw_put()
597 set_scr(ice, new); in qtet_ain12_sw_put()
611 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in qtet_php_get() local
614 val = get_scr(ice) & SCR_PHP_V; in qtet_php_get()
622 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in qtet_php_put() local
624 old = new = get_scr(ice); in qtet_php_put()
630 set_scr(ice, new); in qtet_php_put()
633 set_scr(ice, new); in qtet_php_put()
639 set_scr(ice, new); in qtet_php_put()
642 set_scr(ice, new); in qtet_php_put()
687 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in qtet_sw_get() local
689 (private.get_register(ice) & private.bit) ? 1 : 0; in qtet_sw_get()
698 struct snd_ice1712 *ice = snd_kcontrol_chip(kcontrol); in qtet_sw_put() local
700 old = private.get_register(ice); in qtet_sw_put()
706 private.set_register(ice, new); in qtet_sw_put()
789 static int qtet_add_controls(struct snd_ice1712 *ice) in qtet_add_controls() argument
791 struct qtet_spec *spec = ice->spec; in qtet_add_controls()
794 err = snd_ice1712_akm4xxx_build_controls(ice); in qtet_add_controls()
798 err = snd_ctl_add(ice->card, in qtet_add_controls()
799 snd_ctl_new1(&qtet_controls[i], ice)); in qtet_add_controls()
809 add_followers(ice->card, vmaster, follower_vols); in qtet_add_controls()
810 err = snd_ctl_add(ice->card, vmaster); in qtet_add_controls()
815 ice->pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream); in qtet_add_controls()
818 static inline int qtet_is_spdif_master(struct snd_ice1712 *ice) in qtet_is_spdif_master() argument
821 return (get_cpld(ice) & CPLD_SYNC_SEL) ? 1 : 0; in qtet_is_spdif_master()
824 static unsigned int qtet_get_rate(struct snd_ice1712 *ice) in qtet_get_rate() argument
829 result = get_cpld(ice) & CPLD_CKS_MASK; in qtet_get_rate()
846 static void qtet_set_rate(struct snd_ice1712 *ice, unsigned int rate) in qtet_set_rate() argument
851 val = inb(ICEMT1724(ice, RATE)); in qtet_set_rate()
852 outb(val | VT1724_SPDIF_MASTER, ICEMT1724(ice, RATE)); in qtet_set_rate()
854 new = (get_cpld(ice) & ~CPLD_CKS_MASK) | get_cks_val(rate); in qtet_set_rate()
859 set_cpld(ice, new); in qtet_set_rate()
862 static inline unsigned char qtet_set_mclk(struct snd_ice1712 *ice, in qtet_set_mclk() argument
870 static int qtet_set_spdif_clock(struct snd_ice1712 *ice, int type) in qtet_set_spdif_clock() argument
874 old = new = get_cpld(ice); in qtet_set_spdif_clock()
890 set_cpld(ice, new); in qtet_set_spdif_clock()
897 static int qtet_get_spdif_master_type(struct snd_ice1712 *ice) in qtet_get_spdif_master_type() argument
901 val = get_cpld(ice); in qtet_get_spdif_master_type()
931 struct snd_ice1712 *ice = ak4113->change_callback_private; in qtet_ak4113_change() local
933 if ((qtet_get_spdif_master_type(ice) == EXT_SPDIF_TYPE) && in qtet_ak4113_change()
939 qtet_akm_set_rate_val(ice->akm, rate); in qtet_ak4113_change()
947 static void qtet_spdif_in_open(struct snd_ice1712 *ice, in qtet_spdif_in_open() argument
950 struct qtet_spec *spec = ice->spec; in qtet_spdif_in_open()
954 if (qtet_get_spdif_master_type(ice) != EXT_SPDIF_TYPE) in qtet_spdif_in_open()
968 static int qtet_init(struct snd_ice1712 *ice) in qtet_init() argument
988 val = inb(ICEMT1724(ice, RATE)); in qtet_init()
989 outb(val | VT1724_SPDIF_MASTER, ICEMT1724(ice, RATE)); in qtet_init()
995 ice->hw_rates = &qtet_rates_info; in qtet_init()
996 ice->is_spdif_master = qtet_is_spdif_master; in qtet_init()
997 ice->get_rate = qtet_get_rate; in qtet_init()
998 ice->set_rate = qtet_set_rate; in qtet_init()
999 ice->set_mclk = qtet_set_mclk; in qtet_init()
1000 ice->set_spdif_clock = qtet_set_spdif_clock; in qtet_init()
1001 ice->get_spdif_master_type = qtet_get_spdif_master_type; in qtet_init()
1002 ice->ext_clock_names = ext_clock_names; in qtet_init()
1003 ice->ext_clock_count = ARRAY_SIZE(ext_clock_names); in qtet_init()
1006 ice->spdif.ops.open = ice->pro_open = qtet_spdif_in_open; in qtet_init()
1007 ice->spec = spec; in qtet_init()
1012 set_scr(ice, SCR_PHP); in qtet_init()
1015 set_scr(ice, SCR_PHP | SCR_CODEC_PDN); in qtet_init()
1018 set_mcr(ice, 0); in qtet_init()
1021 set_cpld(ice, 0); in qtet_init()
1024 ice->num_total_dacs = 2; in qtet_init()
1025 ice->num_total_adcs = 2; in qtet_init()
1027 ice->akm = kcalloc(2, sizeof(struct snd_akm4xxx), GFP_KERNEL); in qtet_init()
1028 ak = ice->akm; in qtet_init()
1032 ice->akm_codecs = 1; in qtet_init()
1033 err = snd_ice1712_akm4xxx_init(ak, &akm_qtet_dac, NULL, ice); in qtet_init()
1036 err = snd_ak4113_create(ice->card, in qtet_init()
1040 ice, &spec->ak4113); in qtet_init()
1045 spec->ak4113->change_callback_private = ice; in qtet_init()
1050 proc_init(ice); in qtet_init()
1052 qtet_set_rate(ice, 44100); in qtet_init()