Lines Matching refs:ice

102 static void se200pci_WM8740_init(struct snd_ice1712 *ice)  in se200pci_WM8740_init()  argument
108 static void se200pci_WM8740_set_pro_rate(struct snd_ice1712 *ice, in se200pci_WM8740_set_pro_rate() argument
119 static void se200pci_WM8766_write(struct snd_ice1712 *ice, in se200pci_WM8766_write() argument
130 snd_ice1712_save_gpio_status(ice); in se200pci_WM8766_write()
133 snd_ice1712_gpio_set_dir(ice, ice->gpio.direction | ALL_MASK); in se200pci_WM8766_write()
134 snd_ice1712_gpio_set_mask(ice, ice->gpio.write_mask & ~ALL_MASK); in se200pci_WM8766_write()
135 bits = snd_ice1712_gpio_read(ice) & ~ALL_MASK; in se200pci_WM8766_write()
137 snd_ice1712_gpio_write(ice, bits); in se200pci_WM8766_write()
147 snd_ice1712_gpio_write(ice, bits); in se200pci_WM8766_write()
151 snd_ice1712_gpio_write(ice, bits); in se200pci_WM8766_write()
156 snd_ice1712_gpio_write(ice, bits); in se200pci_WM8766_write()
160 snd_ice1712_gpio_write(ice, bits); in se200pci_WM8766_write()
162 snd_ice1712_restore_gpio_status(ice); in se200pci_WM8766_write()
165 static void se200pci_WM8766_set_volume(struct snd_ice1712 *ice, int ch, in se200pci_WM8766_set_volume() argument
170 se200pci_WM8766_write(ice, 0x000, vol1); in se200pci_WM8766_set_volume()
171 se200pci_WM8766_write(ice, 0x001, vol2 | 0x100); in se200pci_WM8766_set_volume()
174 se200pci_WM8766_write(ice, 0x004, vol1); in se200pci_WM8766_set_volume()
175 se200pci_WM8766_write(ice, 0x005, vol2 | 0x100); in se200pci_WM8766_set_volume()
178 se200pci_WM8766_write(ice, 0x006, vol1); in se200pci_WM8766_set_volume()
179 se200pci_WM8766_write(ice, 0x007, vol2 | 0x100); in se200pci_WM8766_set_volume()
184 static void se200pci_WM8766_init(struct snd_ice1712 *ice) in se200pci_WM8766_init() argument
186 se200pci_WM8766_write(ice, 0x1f, 0x000); /* RESET ALL */ in se200pci_WM8766_init()
189 se200pci_WM8766_set_volume(ice, 0, 0, 0); /* volume L=0 R=0 */ in se200pci_WM8766_init()
190 se200pci_WM8766_set_volume(ice, 1, 0, 0); /* volume L=0 R=0 */ in se200pci_WM8766_init()
191 se200pci_WM8766_set_volume(ice, 2, 0, 0); /* volume L=0 R=0 */ in se200pci_WM8766_init()
193 se200pci_WM8766_write(ice, 0x03, 0x022); /* serial mode I2S-24bits */ in se200pci_WM8766_init()
194 se200pci_WM8766_write(ice, 0x0a, 0x080); /* MCLK=256fs */ in se200pci_WM8766_init()
195 se200pci_WM8766_write(ice, 0x12, 0x000); /* MDP=0 */ in se200pci_WM8766_init()
196 se200pci_WM8766_write(ice, 0x15, 0x000); /* MDP=0 */ in se200pci_WM8766_init()
197 se200pci_WM8766_write(ice, 0x09, 0x000); /* demp=off mute=off */ in se200pci_WM8766_init()
199 se200pci_WM8766_write(ice, 0x02, 0x124); /* ch-assign L=L R=R RESET */ in se200pci_WM8766_init()
200 se200pci_WM8766_write(ice, 0x02, 0x120); /* ch-assign L=L R=R */ in se200pci_WM8766_init()
203 static void se200pci_WM8766_set_pro_rate(struct snd_ice1712 *ice, in se200pci_WM8766_set_pro_rate() argument
207 se200pci_WM8766_write(ice, 0x0a, 0x000); /* MCLK=128fs */ in se200pci_WM8766_set_pro_rate()
209 se200pci_WM8766_write(ice, 0x0a, 0x080); /* MCLK=256fs */ in se200pci_WM8766_set_pro_rate()
217 static void se200pci_WM8776_write(struct snd_ice1712 *ice, in se200pci_WM8776_write() argument
223 snd_vt1724_write_i2c(ice, 0x34, val >> 8, val & 0xff); in se200pci_WM8776_write()
227 static void se200pci_WM8776_set_output_volume(struct snd_ice1712 *ice, in se200pci_WM8776_set_output_volume() argument
230 se200pci_WM8776_write(ice, 0x03, vol1); in se200pci_WM8776_set_output_volume()
231 se200pci_WM8776_write(ice, 0x04, vol2 | 0x100); in se200pci_WM8776_set_output_volume()
234 static void se200pci_WM8776_set_input_volume(struct snd_ice1712 *ice, in se200pci_WM8776_set_input_volume() argument
237 se200pci_WM8776_write(ice, 0x0e, vol1); in se200pci_WM8776_set_input_volume()
238 se200pci_WM8776_write(ice, 0x0f, vol2 | 0x100); in se200pci_WM8776_set_input_volume()
245 static void se200pci_WM8776_set_input_selector(struct snd_ice1712 *ice, in se200pci_WM8776_set_input_selector() argument
254 se200pci_WM8776_write(ice, 0x15, vals[sel]); in se200pci_WM8776_set_input_selector()
257 static void se200pci_WM8776_set_afl(struct snd_ice1712 *ice, unsigned int afl) in se200pci_WM8776_set_afl() argument
261 se200pci_WM8776_write(ice, 0x16, 0x005); in se200pci_WM8776_set_afl()
263 se200pci_WM8776_write(ice, 0x16, 0x001); in se200pci_WM8776_set_afl()
270 static void se200pci_WM8776_set_agc(struct snd_ice1712 *ice, unsigned int agc) in se200pci_WM8776_set_agc() argument
275 se200pci_WM8776_write(ice, 0x11, 0x000); /* Off */ in se200pci_WM8776_set_agc()
278 se200pci_WM8776_write(ice, 0x10, 0x07b); in se200pci_WM8776_set_agc()
279 se200pci_WM8776_write(ice, 0x11, 0x100); /* LimiterMode */ in se200pci_WM8776_set_agc()
282 se200pci_WM8776_write(ice, 0x10, 0x1fb); in se200pci_WM8776_set_agc()
283 se200pci_WM8776_write(ice, 0x11, 0x100); /* ALCMode */ in se200pci_WM8776_set_agc()
288 static void se200pci_WM8776_init(struct snd_ice1712 *ice) in se200pci_WM8776_init() argument
300 se200pci_WM8776_write(ice, 0x17, 0x000); /* reset all */ in se200pci_WM8776_init()
306 se200pci_WM8776_write(ice, i, default_values[i]); in se200pci_WM8776_init()
308 se200pci_WM8776_set_input_selector(ice, 0); in se200pci_WM8776_init()
309 se200pci_WM8776_set_afl(ice, 0); in se200pci_WM8776_init()
310 se200pci_WM8776_set_agc(ice, 0); in se200pci_WM8776_init()
311 se200pci_WM8776_set_input_volume(ice, 0, 0); in se200pci_WM8776_init()
312 se200pci_WM8776_set_output_volume(ice, 0, 0); in se200pci_WM8776_init()
315 se200pci_WM8776_write(ice, 0x00, 0); in se200pci_WM8776_init()
316 se200pci_WM8776_write(ice, 0x01, 0); in se200pci_WM8776_init()
317 se200pci_WM8776_write(ice, 0x02, 0x100); in se200pci_WM8776_init()
318 se200pci_WM8776_write(ice, 0x0d, 0x080); in se200pci_WM8776_init()
321 static void se200pci_WM8776_set_pro_rate(struct snd_ice1712 *ice, in se200pci_WM8776_set_pro_rate() argument
332 static void se200pci_set_pro_rate(struct snd_ice1712 *ice, unsigned int rate) in se200pci_set_pro_rate() argument
334 se200pci_WM8740_set_pro_rate(ice, rate); in se200pci_set_pro_rate()
335 se200pci_WM8766_set_pro_rate(ice, rate); in se200pci_set_pro_rate()
336 se200pci_WM8776_set_pro_rate(ice, rate); in se200pci_set_pro_rate()
447 struct snd_ice1712 *ice = snd_kcontrol_chip(kc); in se200pci_cont_volume_get() local
448 struct se_spec *spec = ice->spec; in se200pci_cont_volume_get()
458 struct snd_ice1712 *ice = snd_kcontrol_chip(kc); in se200pci_cont_boolean_get() local
459 struct se_spec *spec = ice->spec; in se200pci_cont_boolean_get()
468 struct snd_ice1712 *ice = snd_kcontrol_chip(kc); in se200pci_cont_enum_get() local
469 struct se_spec *spec = ice->spec; in se200pci_cont_enum_get()
475 static void se200pci_cont_update(struct snd_ice1712 *ice, int n) in se200pci_cont_update() argument
477 struct se_spec *spec = ice->spec; in se200pci_cont_update()
480 se200pci_WM8766_set_volume(ice, in se200pci_cont_update()
487 se200pci_WM8776_set_input_volume(ice, in se200pci_cont_update()
493 se200pci_WM8776_set_output_volume(ice, in se200pci_cont_update()
499 se200pci_WM8776_set_input_selector(ice, in se200pci_cont_update()
504 se200pci_WM8776_set_agc(ice, spec->vol[n].ch1); in se200pci_cont_update()
508 se200pci_WM8776_set_afl(ice, spec->vol[n].ch1); in se200pci_cont_update()
519 struct snd_ice1712 *ice = snd_kcontrol_chip(kc); in se200pci_cont_volume_put() local
520 struct se_spec *spec = ice->spec; in se200pci_cont_volume_put()
537 se200pci_cont_update(ice, n); in se200pci_cont_volume_put()
545 struct snd_ice1712 *ice = snd_kcontrol_chip(kc); in se200pci_cont_boolean_put() local
546 struct se_spec *spec = ice->spec; in se200pci_cont_boolean_put()
553 se200pci_cont_update(ice, n); in se200pci_cont_boolean_put()
562 struct snd_ice1712 *ice = snd_kcontrol_chip(kc); in se200pci_cont_enum_put() local
563 struct se_spec *spec = ice->spec; in se200pci_cont_enum_put()
572 se200pci_cont_update(ice, n); in se200pci_cont_enum_put()
581 static int se200pci_add_controls(struct snd_ice1712 *ice) in se200pci_add_controls() argument
620 err = snd_ctl_add(ice->card, snd_ctl_new1(&cont, ice)); in se200pci_add_controls()
659 static int se_init(struct snd_ice1712 *ice) in se_init() argument
666 ice->spec = spec; in se_init()
668 if (ice->eeprom.subvendor == VT1724_SUBDEVICE_SE90PCI) { in se_init()
669 ice->num_total_dacs = 2; in se_init()
670 ice->num_total_adcs = 0; in se_init()
671 ice->vt1720 = 1; in se_init()
674 } else if (ice->eeprom.subvendor == VT1724_SUBDEVICE_SE200PCI) { in se_init()
675 ice->num_total_dacs = 8; in se_init()
676 ice->num_total_adcs = 2; in se_init()
677 se200pci_WM8740_init(ice); in se_init()
678 se200pci_WM8766_init(ice); in se_init()
679 se200pci_WM8776_init(ice); in se_init()
680 ice->gpio.set_pro_rate = se200pci_set_pro_rate; in se_init()
687 static int se_add_controls(struct snd_ice1712 *ice) in se_add_controls() argument
693 if (ice->eeprom.subvendor == VT1724_SUBDEVICE_SE200PCI) in se_add_controls()
694 err = se200pci_add_controls(ice); in se_add_controls()