Lines Matching full:spec
85 #define VT2002P_COMPATIBLE(spec) \ argument
86 ((spec)->codec_type == VT2002P ||\
87 (spec)->codec_type == VT1812 ||\
88 (spec)->codec_type == VT1802)
115 struct via_spec *spec; in via_new_spec() local
117 spec = kzalloc(sizeof(*spec), GFP_KERNEL); in via_new_spec()
118 if (spec == NULL) in via_new_spec()
121 codec->spec = spec; in via_new_spec()
122 snd_hda_gen_spec_init(&spec->gen); in via_new_spec()
123 spec->codec_type = get_codec_type(codec); in via_new_spec()
125 if (spec->codec_type == VT1708BCE) in via_new_spec()
126 spec->codec_type = VT1708S; in via_new_spec()
127 spec->gen.indep_hp = 1; in via_new_spec()
128 spec->gen.keep_eapd_on = 1; in via_new_spec()
129 spec->gen.pcm_playback_hook = via_playback_pcm_hook; in via_new_spec()
130 spec->gen.add_stereo_mix_input = HDA_HINT_STEREO_MIX_AUTO; in via_new_spec()
132 spec->gen.power_down_unused = 1; in via_new_spec()
134 return spec; in via_new_spec()
198 struct via_spec *spec = codec->spec; in vt1708_stop_hp_work() local
199 if (spec->codec_type != VT1708 || !spec->gen.autocfg.hp_outs) in vt1708_stop_hp_work()
201 if (spec->hp_work_active) { in vt1708_stop_hp_work()
205 spec->hp_work_active = false; in vt1708_stop_hp_work()
211 struct via_spec *spec = codec->spec; in vt1708_update_hp_work() local
212 if (spec->codec_type != VT1708 || !spec->gen.autocfg.hp_outs) in vt1708_update_hp_work()
214 if (spec->vt1708_jack_detect) { in vt1708_update_hp_work()
215 if (!spec->hp_work_active) { in vt1708_update_hp_work()
219 spec->hp_work_active = true; in vt1708_update_hp_work()
235 struct via_spec *spec = codec->spec; in via_pin_power_ctl_get() local
237 ucontrol->value.enumerated.item[0] = spec->gen.power_down_unused; in via_pin_power_ctl_get()
245 struct via_spec *spec = codec->spec; in via_pin_power_ctl_put() local
248 if (val == spec->gen.power_down_unused) in via_pin_power_ctl_put()
251 spec->gen.power_down_unused = val; in via_pin_power_ctl_put()
271 static int set_beep_amp(struct via_spec *spec, hda_nid_t nid, in set_beep_amp() argument
278 spec->gen.beep_nid = nid; in set_beep_amp()
280 knew = snd_hda_gen_add_kctl(&spec->gen, NULL, in set_beep_amp()
291 struct via_spec *spec = codec->spec; in auto_parse_beep() local
296 return set_beep_amp(spec, nid, 0, HDA_OUTPUT); in auto_parse_beep()
306 struct via_spec *spec = codec->spec; in is_aa_path_mute() local
310 p = spec->gen.loopback.amplist; in is_aa_path_mute()
327 struct via_spec *spec = codec->spec; in __analog_low_current_mode() local
334 enable = is_aa_path_mute(codec) && !spec->gen.active_streams; in __analog_low_current_mode()
335 if (enable == spec->alc_mode && !force) in __analog_low_current_mode()
337 spec->alc_mode = enable; in __analog_low_current_mode()
340 switch (spec->codec_type) { in __analog_low_current_mode()
397 struct via_spec *spec = codec->spec; in via_suspend() local
401 if (spec->codec_type == VT1802) in via_suspend()
420 struct via_spec *spec = codec->spec; in via_check_power_status() local
423 return snd_hda_check_amp_list_power(codec, &spec->gen.loopback, nid); in via_check_power_status()
472 struct via_spec *spec = codec->spec; in vt1708_jack_detect_get() local
474 if (spec->codec_type != VT1708) in vt1708_jack_detect_get()
476 ucontrol->value.integer.value[0] = spec->vt1708_jack_detect; in vt1708_jack_detect_get()
484 struct via_spec *spec = codec->spec; in vt1708_jack_detect_put() local
487 if (spec->codec_type != VT1708) in vt1708_jack_detect_put()
490 if (spec->vt1708_jack_detect == val) in vt1708_jack_detect_put()
492 spec->vt1708_jack_detect = val; in vt1708_jack_detect_put()
525 struct via_spec *spec = codec->spec; in via_parse_auto_config() local
528 spec->gen.main_out_badness = &via_main_out_badness; in via_parse_auto_config()
529 spec->gen.extra_out_badness = &via_extra_out_badness; in via_parse_auto_config()
531 err = snd_hda_parse_pin_defcfg(codec, &spec->gen.autocfg, NULL, 0); in via_parse_auto_config()
535 err = snd_hda_gen_parse_auto_config(codec, &spec->gen.autocfg); in via_parse_auto_config()
543 if (!snd_hda_gen_add_kctl(&spec->gen, NULL, &via_pin_power_ctl_enum)) in via_parse_auto_config()
548 spec->gen.power_down_unused = 0; in via_parse_auto_config()
578 struct via_spec *spec = codec->spec; in vt1708_build_pcms() local
589 for (i = 0; i < ARRAY_SIZE(spec->gen.pcm_rec); i++) { in vt1708_build_pcms()
590 struct hda_pcm *info = spec->gen.pcm_rec[i]; in vt1708_build_pcms()
605 struct via_spec *spec; in patch_vt1708() local
609 spec = via_new_spec(codec); in patch_vt1708()
610 if (spec == NULL) in patch_vt1708()
616 spec->gen.mixer_nid = 0x17; in patch_vt1708()
620 spec->vt1708_jack_detect = 1; in patch_vt1708()
624 spec->gen.suppress_auto_mic = 1; in patch_vt1708()
626 spec->gen.auto_mute_via_amp = 1; in patch_vt1708()
642 if (!snd_hda_gen_add_kctl(&spec->gen, NULL, &vt1708_jack_detect_ctl)) { in patch_vt1708()
659 struct via_spec *spec; in patch_vt1709() local
663 spec = via_new_spec(codec); in patch_vt1709()
664 if (spec == NULL) in patch_vt1709()
667 spec->gen.mixer_nid = 0x18; in patch_vt1709()
683 struct via_spec *spec; in patch_vt1708B() local
690 spec = via_new_spec(codec); in patch_vt1708B()
691 if (spec == NULL) in patch_vt1708B()
694 spec->gen.mixer_nid = 0x16; in patch_vt1708B()
731 struct via_spec *spec; in patch_vt1708S() local
735 spec = via_new_spec(codec); in patch_vt1708S()
736 if (spec == NULL) in patch_vt1708S()
739 spec->gen.mixer_nid = 0x16; in patch_vt1708S()
778 struct via_spec *spec; in patch_vt1702() local
782 spec = via_new_spec(codec); in patch_vt1702()
783 if (spec == NULL) in patch_vt1702()
786 spec->gen.mixer_nid = 0x1a; in patch_vt1702()
827 struct via_spec *spec = codec->spec; in add_secret_dac_path() local
832 if (!spec->gen.mixer_nid) in add_secret_dac_path()
834 nums = snd_hda_get_connections(codec, spec->gen.mixer_nid, conn, in add_secret_dac_path()
848 spec->gen.mixer_nid, in add_secret_dac_path()
858 struct via_spec *spec; in patch_vt1718S() local
862 spec = via_new_spec(codec); in patch_vt1718S()
863 if (spec == NULL) in patch_vt1718S()
866 spec->gen.mixer_nid = 0x21; in patch_vt1718S()
917 struct via_spec *spec = codec->spec; in vt1716s_dmic_put() local
922 spec->dmic_enabled = index; in vt1716s_dmic_put()
955 struct via_spec *spec; in patch_vt1716S() local
959 spec = via_new_spec(codec); in patch_vt1716S()
960 if (spec == NULL) in patch_vt1716S()
963 spec->gen.mixer_nid = 0x16; in patch_vt1716S()
976 if (!snd_hda_gen_add_kctl(&spec->gen, NULL, &vt1716s_dmic_mixer_vol) || in patch_vt1716S()
977 !snd_hda_gen_add_kctl(&spec->gen, NULL, &vt1716s_dmic_mixer_sw) || in patch_vt1716S()
978 !snd_hda_gen_add_kctl(&spec->gen, NULL, &vt1716S_mono_out_mixer)) { in patch_vt1716S()
1064 struct via_spec *spec; in patch_vt2002P() local
1068 spec = via_new_spec(codec); in patch_vt2002P()
1069 if (spec == NULL) in patch_vt2002P()
1072 spec->gen.mixer_nid = 0x21; in patch_vt2002P()
1075 if (spec->codec_type == VT1802) in patch_vt2002P()
1082 if (spec->codec_type == VT1802) in patch_vt2002P()
1114 struct via_spec *spec; in patch_vt1812() local
1118 spec = via_new_spec(codec); in patch_vt1812()
1119 if (spec == NULL) in patch_vt1812()
1122 spec->gen.mixer_nid = 0x21; in patch_vt1812()
1157 struct via_spec *spec; in patch_vt3476() local
1161 spec = via_new_spec(codec); in patch_vt3476()
1162 if (spec == NULL) in patch_vt3476()
1165 spec->gen.mixer_nid = 0x3f; in patch_vt3476()