Lines Matching full: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
267 /*dev_dbg(ice->card->dev, "Writing to AK4620: chip=%d, addr=0x%x, in qtet_akm_write()
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 = 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()
769 static int qtet_add_controls(struct snd_ice1712 *ice) in qtet_add_controls() argument
771 struct qtet_spec *spec = ice->spec; in qtet_add_controls()
774 err = snd_ice1712_akm4xxx_build_controls(ice); in qtet_add_controls()
778 err = snd_ctl_add(ice->card, in qtet_add_controls()
779 snd_ctl_new1(&qtet_controls[i], ice)); in qtet_add_controls()
789 err = snd_ctl_add(ice->card, vmaster); in qtet_add_controls()
792 err = snd_ctl_add_followers(ice->card, vmaster, follower_vols); in qtet_add_controls()
797 ice->pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream); in qtet_add_controls()
800 static inline int qtet_is_spdif_master(struct snd_ice1712 *ice) in qtet_is_spdif_master() argument
803 return (get_cpld(ice) & CPLD_SYNC_SEL) ? 1 : 0; in qtet_is_spdif_master()
806 static unsigned int qtet_get_rate(struct snd_ice1712 *ice) in qtet_get_rate() argument
811 result = get_cpld(ice) & CPLD_CKS_MASK; in qtet_get_rate()
828 static void qtet_set_rate(struct snd_ice1712 *ice, unsigned int rate) in qtet_set_rate() argument
833 val = inb(ICEMT1724(ice, RATE)); in qtet_set_rate()
834 outb(val | VT1724_SPDIF_MASTER, ICEMT1724(ice, RATE)); in qtet_set_rate()
836 new = (get_cpld(ice) & ~CPLD_CKS_MASK) | get_cks_val(rate); in qtet_set_rate()
839 /* dev_dbg(ice->card->dev, "QT - set_rate: old %x, new %x\n", in qtet_set_rate()
840 get_cpld(ice), new); */ in qtet_set_rate()
841 set_cpld(ice, new); in qtet_set_rate()
844 static inline unsigned char qtet_set_mclk(struct snd_ice1712 *ice, in qtet_set_mclk() argument
852 static int qtet_set_spdif_clock(struct snd_ice1712 *ice, int type) in qtet_set_spdif_clock() argument
856 old = new = get_cpld(ice); in qtet_set_spdif_clock()
872 set_cpld(ice, new); in qtet_set_spdif_clock()
879 static int qtet_get_spdif_master_type(struct snd_ice1712 *ice) in qtet_get_spdif_master_type() argument
883 val = get_cpld(ice); in qtet_get_spdif_master_type()
913 struct snd_ice1712 *ice = ak4113->change_callback_private; in qtet_ak4113_change() local
915 if ((qtet_get_spdif_master_type(ice) == EXT_SPDIF_TYPE) && in qtet_ak4113_change()
919 /* dev_dbg(ice->card->dev, "ak4113 - input rate changed to %d\n", in qtet_ak4113_change()
921 qtet_akm_set_rate_val(ice->akm, rate); in qtet_ak4113_change()
929 static void qtet_spdif_in_open(struct snd_ice1712 *ice, in qtet_spdif_in_open() argument
932 struct qtet_spec *spec = ice->spec; in qtet_spdif_in_open()
936 if (qtet_get_spdif_master_type(ice) != EXT_SPDIF_TYPE) in qtet_spdif_in_open()
950 static int qtet_init(struct snd_ice1712 *ice) in qtet_init() argument
970 val = inb(ICEMT1724(ice, RATE)); in qtet_init()
971 outb(val | VT1724_SPDIF_MASTER, ICEMT1724(ice, RATE)); in qtet_init()
977 ice->hw_rates = &qtet_rates_info; in qtet_init()
978 ice->is_spdif_master = qtet_is_spdif_master; in qtet_init()
979 ice->get_rate = qtet_get_rate; in qtet_init()
980 ice->set_rate = qtet_set_rate; in qtet_init()
981 ice->set_mclk = qtet_set_mclk; in qtet_init()
982 ice->set_spdif_clock = qtet_set_spdif_clock; in qtet_init()
983 ice->get_spdif_master_type = qtet_get_spdif_master_type; in qtet_init()
984 ice->ext_clock_names = ext_clock_names; in qtet_init()
985 ice->ext_clock_count = ARRAY_SIZE(ext_clock_names); in qtet_init()
988 ice->spdif.ops.open = ice->pro_open = qtet_spdif_in_open; in qtet_init()
989 ice->spec = spec; in qtet_init()
994 set_scr(ice, SCR_PHP); in qtet_init()
997 set_scr(ice, SCR_PHP | SCR_CODEC_PDN); in qtet_init()
1000 set_mcr(ice, 0); in qtet_init()
1003 set_cpld(ice, 0); in qtet_init()
1006 ice->num_total_dacs = 2; in qtet_init()
1007 ice->num_total_adcs = 2; in qtet_init()
1009 ice->akm = kcalloc(2, sizeof(struct snd_akm4xxx), GFP_KERNEL); in qtet_init()
1010 ak = ice->akm; in qtet_init()
1014 ice->akm_codecs = 1; in qtet_init()
1015 err = snd_ice1712_akm4xxx_init(ak, &akm_qtet_dac, NULL, ice); in qtet_init()
1018 err = snd_ak4113_create(ice->card, in qtet_init()
1022 ice, &spec->ak4113); in qtet_init()
1027 spec->ak4113->change_callback_private = ice; in qtet_init()
1032 proc_init(ice); in qtet_init()
1034 qtet_set_rate(ice, 44100); in qtet_init()