Lines Matching full:spec
72 #define VT2002P_COMPATIBLE(spec) \ argument
73 ((spec)->codec_type == VT2002P ||\
74 (spec)->codec_type == VT1812 ||\
75 (spec)->codec_type == VT1802)
102 struct via_spec *spec; in via_new_spec() local
104 spec = kzalloc(sizeof(*spec), GFP_KERNEL); in via_new_spec()
105 if (spec == NULL) in via_new_spec()
108 codec->spec = spec; in via_new_spec()
109 snd_hda_gen_spec_init(&spec->gen); in via_new_spec()
110 spec->codec_type = get_codec_type(codec); in via_new_spec()
112 if (spec->codec_type == VT1708BCE) in via_new_spec()
113 spec->codec_type = VT1708S; in via_new_spec()
114 spec->gen.indep_hp = 1; in via_new_spec()
115 spec->gen.keep_eapd_on = 1; in via_new_spec()
116 spec->gen.pcm_playback_hook = via_playback_pcm_hook; in via_new_spec()
117 spec->gen.add_stereo_mix_input = HDA_HINT_STEREO_MIX_AUTO; in via_new_spec()
119 spec->gen.power_down_unused = 1; in via_new_spec()
121 return spec; in via_new_spec()
185 struct via_spec *spec = codec->spec; in vt1708_stop_hp_work() local
186 if (spec->codec_type != VT1708 || !spec->gen.autocfg.hp_outs) in vt1708_stop_hp_work()
188 if (spec->hp_work_active) { in vt1708_stop_hp_work()
192 spec->hp_work_active = false; in vt1708_stop_hp_work()
198 struct via_spec *spec = codec->spec; in vt1708_update_hp_work() local
199 if (spec->codec_type != VT1708 || !spec->gen.autocfg.hp_outs) in vt1708_update_hp_work()
201 if (spec->vt1708_jack_detect) { in vt1708_update_hp_work()
202 if (!spec->hp_work_active) { in vt1708_update_hp_work()
206 spec->hp_work_active = true; in vt1708_update_hp_work()
222 struct via_spec *spec = codec->spec; in via_pin_power_ctl_get() local
224 ucontrol->value.enumerated.item[0] = spec->gen.power_down_unused; in via_pin_power_ctl_get()
232 struct via_spec *spec = codec->spec; in via_pin_power_ctl_put() local
235 if (val == spec->gen.power_down_unused) in via_pin_power_ctl_put()
238 spec->gen.power_down_unused = val; in via_pin_power_ctl_put()
258 static int set_beep_amp(struct via_spec *spec, hda_nid_t nid, in set_beep_amp() argument
265 spec->gen.beep_nid = nid; in set_beep_amp()
267 knew = snd_hda_gen_add_kctl(&spec->gen, NULL, in set_beep_amp()
278 struct via_spec *spec = codec->spec; in auto_parse_beep() local
283 return set_beep_amp(spec, nid, 0, HDA_OUTPUT); in auto_parse_beep()
293 struct via_spec *spec = codec->spec; in is_aa_path_mute() local
297 p = spec->gen.loopback.amplist; in is_aa_path_mute()
314 struct via_spec *spec = codec->spec; in __analog_low_current_mode() local
321 enable = is_aa_path_mute(codec) && !spec->gen.active_streams; in __analog_low_current_mode()
322 if (enable == spec->alc_mode && !force) in __analog_low_current_mode()
324 spec->alc_mode = enable; in __analog_low_current_mode()
327 switch (spec->codec_type) { in __analog_low_current_mode()
384 struct via_spec *spec = codec->spec; in via_suspend() local
388 if (spec->codec_type == VT1802) in via_suspend()
407 struct via_spec *spec = codec->spec; in via_check_power_status() local
410 return snd_hda_check_amp_list_power(codec, &spec->gen.loopback, nid); in via_check_power_status()
459 struct via_spec *spec = codec->spec; in vt1708_jack_detect_get() local
461 if (spec->codec_type != VT1708) in vt1708_jack_detect_get()
463 ucontrol->value.integer.value[0] = spec->vt1708_jack_detect; in vt1708_jack_detect_get()
471 struct via_spec *spec = codec->spec; in vt1708_jack_detect_put() local
474 if (spec->codec_type != VT1708) in vt1708_jack_detect_put()
477 if (spec->vt1708_jack_detect == val) in vt1708_jack_detect_put()
479 spec->vt1708_jack_detect = val; in vt1708_jack_detect_put()
512 struct via_spec *spec = codec->spec; in via_parse_auto_config() local
515 spec->gen.main_out_badness = &via_main_out_badness; in via_parse_auto_config()
516 spec->gen.extra_out_badness = &via_extra_out_badness; in via_parse_auto_config()
518 err = snd_hda_parse_pin_defcfg(codec, &spec->gen.autocfg, NULL, 0); in via_parse_auto_config()
522 err = snd_hda_gen_parse_auto_config(codec, &spec->gen.autocfg); in via_parse_auto_config()
530 if (!snd_hda_gen_add_kctl(&spec->gen, NULL, &via_pin_power_ctl_enum)) in via_parse_auto_config()
535 spec->gen.power_down_unused = 0; in via_parse_auto_config()
565 struct via_spec *spec = codec->spec; in vt1708_build_pcms() local
576 for (i = 0; i < ARRAY_SIZE(spec->gen.pcm_rec); i++) { in vt1708_build_pcms()
577 struct hda_pcm *info = spec->gen.pcm_rec[i]; in vt1708_build_pcms()
592 struct via_spec *spec; in patch_vt1708() local
596 spec = via_new_spec(codec); in patch_vt1708()
597 if (spec == NULL) in patch_vt1708()
603 spec->gen.mixer_nid = 0x17; in patch_vt1708()
607 spec->vt1708_jack_detect = 1; in patch_vt1708()
611 spec->gen.suppress_auto_mic = 1; in patch_vt1708()
613 spec->gen.auto_mute_via_amp = 1; in patch_vt1708()
629 if (!snd_hda_gen_add_kctl(&spec->gen, NULL, &vt1708_jack_detect_ctl)) { in patch_vt1708()
646 struct via_spec *spec; in patch_vt1709() local
650 spec = via_new_spec(codec); in patch_vt1709()
651 if (spec == NULL) in patch_vt1709()
654 spec->gen.mixer_nid = 0x18; in patch_vt1709()
670 struct via_spec *spec; in patch_vt1708B() local
677 spec = via_new_spec(codec); in patch_vt1708B()
678 if (spec == NULL) in patch_vt1708B()
681 spec->gen.mixer_nid = 0x16; in patch_vt1708B()
718 struct via_spec *spec; in patch_vt1708S() local
722 spec = via_new_spec(codec); in patch_vt1708S()
723 if (spec == NULL) in patch_vt1708S()
726 spec->gen.mixer_nid = 0x16; in patch_vt1708S()
765 struct via_spec *spec; in patch_vt1702() local
769 spec = via_new_spec(codec); in patch_vt1702()
770 if (spec == NULL) in patch_vt1702()
773 spec->gen.mixer_nid = 0x1a; in patch_vt1702()
814 struct via_spec *spec = codec->spec; in add_secret_dac_path() local
819 if (!spec->gen.mixer_nid) in add_secret_dac_path()
821 nums = snd_hda_get_connections(codec, spec->gen.mixer_nid, conn, in add_secret_dac_path()
835 spec->gen.mixer_nid, in add_secret_dac_path()
845 struct via_spec *spec; in patch_vt1718S() local
849 spec = via_new_spec(codec); in patch_vt1718S()
850 if (spec == NULL) in patch_vt1718S()
853 spec->gen.mixer_nid = 0x21; in patch_vt1718S()
904 struct via_spec *spec = codec->spec; in vt1716s_dmic_put() local
909 spec->dmic_enabled = index; in vt1716s_dmic_put()
942 struct via_spec *spec; in patch_vt1716S() local
946 spec = via_new_spec(codec); in patch_vt1716S()
947 if (spec == NULL) in patch_vt1716S()
950 spec->gen.mixer_nid = 0x16; in patch_vt1716S()
963 if (!snd_hda_gen_add_kctl(&spec->gen, NULL, &vt1716s_dmic_mixer_vol) || in patch_vt1716S()
964 !snd_hda_gen_add_kctl(&spec->gen, NULL, &vt1716s_dmic_mixer_sw) || in patch_vt1716S()
965 !snd_hda_gen_add_kctl(&spec->gen, NULL, &vt1716S_mono_out_mixer)) { in patch_vt1716S()
1051 struct via_spec *spec; in patch_vt2002P() local
1055 spec = via_new_spec(codec); in patch_vt2002P()
1056 if (spec == NULL) in patch_vt2002P()
1059 spec->gen.mixer_nid = 0x21; in patch_vt2002P()
1062 if (spec->codec_type == VT1802) in patch_vt2002P()
1069 if (spec->codec_type == VT1802) in patch_vt2002P()
1101 struct via_spec *spec; in patch_vt1812() local
1105 spec = via_new_spec(codec); in patch_vt1812()
1106 if (spec == NULL) in patch_vt1812()
1109 spec->gen.mixer_nid = 0x21; in patch_vt1812()
1144 struct via_spec *spec; in patch_vt3476() local
1148 spec = via_new_spec(codec); in patch_vt3476()
1149 if (spec == NULL) in patch_vt3476()
1152 spec->gen.mixer_nid = 0x3f; in patch_vt3476()