Lines Matching refs:spec

85 #define VT2002P_COMPATIBLE(spec) \  argument
86 ((spec)->codec_type == VT2002P ||\
87 (spec)->codec_type == VT1812 ||\
88 (spec)->codec_type == VT1802)
124 struct via_spec *spec; in via_new_spec() local
126 spec = kzalloc(sizeof(*spec), GFP_KERNEL); in via_new_spec()
127 if (spec == NULL) in via_new_spec()
130 codec->spec = spec; in via_new_spec()
131 snd_hda_gen_spec_init(&spec->gen); in via_new_spec()
132 spec->codec_type = get_codec_type(codec); in via_new_spec()
134 if (spec->codec_type == VT1708BCE) in via_new_spec()
135 spec->codec_type = VT1708S; in via_new_spec()
136 spec->gen.indep_hp = 1; in via_new_spec()
137 spec->gen.keep_eapd_on = 1; in via_new_spec()
138 spec->gen.pcm_playback_hook = via_playback_pcm_hook; in via_new_spec()
139 spec->gen.add_stereo_mix_input = HDA_HINT_STEREO_MIX_AUTO; in via_new_spec()
141 spec->gen.power_down_unused = 1; in via_new_spec()
143 return spec; in via_new_spec()
207 struct via_spec *spec = codec->spec; in vt1708_stop_hp_work() local
208 if (spec->codec_type != VT1708 || !spec->gen.autocfg.hp_outs) in vt1708_stop_hp_work()
210 if (spec->hp_work_active) { in vt1708_stop_hp_work()
214 spec->hp_work_active = false; in vt1708_stop_hp_work()
220 struct via_spec *spec = codec->spec; in vt1708_update_hp_work() local
221 if (spec->codec_type != VT1708 || !spec->gen.autocfg.hp_outs) in vt1708_update_hp_work()
223 if (spec->vt1708_jack_detect) { in vt1708_update_hp_work()
224 if (!spec->hp_work_active) { in vt1708_update_hp_work()
228 spec->hp_work_active = true; in vt1708_update_hp_work()
244 struct via_spec *spec = codec->spec; in via_pin_power_ctl_get() local
246 ucontrol->value.enumerated.item[0] = spec->gen.power_down_unused; in via_pin_power_ctl_get()
254 struct via_spec *spec = codec->spec; in via_pin_power_ctl_put() local
257 if (val == spec->gen.power_down_unused) in via_pin_power_ctl_put()
260 spec->gen.power_down_unused = val; in via_pin_power_ctl_put()
277 static inline void set_beep_amp(struct via_spec *spec, hda_nid_t nid, in set_beep_amp() argument
280 spec->gen.beep_nid = nid; in set_beep_amp()
281 spec->beep_amp = HDA_COMPOSE_AMP_VAL(nid, 1, idx, dir); in set_beep_amp()
294 struct via_spec *spec = codec->spec; in add_beep_ctls() local
297 if (spec->beep_amp) { in add_beep_ctls()
304 kctl->private_value = spec->beep_amp; in add_beep_ctls()
315 struct via_spec *spec = codec->spec; in auto_parse_beep() local
320 set_beep_amp(spec, nid, 0, HDA_OUTPUT); in auto_parse_beep()
325 #define set_beep_amp(spec, nid, idx, dir) /* NOP */ argument
333 struct via_spec *spec = codec->spec; in is_aa_path_mute() local
337 p = spec->gen.loopback.amplist; in is_aa_path_mute()
354 struct via_spec *spec = codec->spec; in __analog_low_current_mode() local
361 enable = is_aa_path_mute(codec) && !spec->gen.active_streams; in __analog_low_current_mode()
362 if (enable == spec->alc_mode && !force) in __analog_low_current_mode()
364 spec->alc_mode = enable; in __analog_low_current_mode()
367 switch (spec->codec_type) { in __analog_low_current_mode()
408 struct via_spec *spec = codec->spec; in via_build_controls() local
419 spec->mixers[spec->num_mixers++] = via_pin_power_ctl_enum; in via_build_controls()
421 for (i = 0; i < spec->num_mixers; i++) { in via_build_controls()
422 err = snd_hda_add_new_ctls(codec, spec->mixers[i]); in via_build_controls()
448 struct via_spec *spec = codec->spec; in via_suspend() local
452 if (spec->codec_type == VT1802) in via_suspend()
471 struct via_spec *spec = codec->spec; in via_check_power_status() local
474 return snd_hda_check_amp_list_power(codec, &spec->gen.loopback, nid); in via_check_power_status()
523 struct via_spec *spec = codec->spec; in vt1708_jack_detect_get() local
525 if (spec->codec_type != VT1708) in vt1708_jack_detect_get()
527 ucontrol->value.integer.value[0] = spec->vt1708_jack_detect; in vt1708_jack_detect_get()
535 struct via_spec *spec = codec->spec; in vt1708_jack_detect_put() local
538 if (spec->codec_type != VT1708) in vt1708_jack_detect_put()
541 if (spec->vt1708_jack_detect == val) in vt1708_jack_detect_put()
543 spec->vt1708_jack_detect = val; in vt1708_jack_detect_put()
579 struct via_spec *spec = codec->spec; in via_parse_auto_config() local
582 spec->gen.main_out_badness = &via_main_out_badness; in via_parse_auto_config()
583 spec->gen.extra_out_badness = &via_extra_out_badness; in via_parse_auto_config()
585 err = snd_hda_parse_pin_defcfg(codec, &spec->gen.autocfg, NULL, 0); in via_parse_auto_config()
591 err = snd_hda_gen_parse_auto_config(codec, &spec->gen.autocfg); in via_parse_auto_config()
597 spec->gen.power_down_unused = 0; in via_parse_auto_config()
603 struct via_spec *spec = codec->spec; in via_init() local
606 for (i = 0; i < spec->num_iverbs; i++) in via_init()
607 snd_hda_sequence_write(codec, spec->init_verbs[i]); in via_init()
633 struct via_spec *spec = codec->spec; in vt1708_build_pcms() local
644 for (i = 0; i < ARRAY_SIZE(spec->gen.pcm_rec); i++) { in vt1708_build_pcms()
645 struct hda_pcm *info = spec->gen.pcm_rec[i]; in vt1708_build_pcms()
660 struct via_spec *spec; in patch_vt1708() local
664 spec = via_new_spec(codec); in patch_vt1708()
665 if (spec == NULL) in patch_vt1708()
671 spec->gen.mixer_nid = 0x17; in patch_vt1708()
675 spec->vt1708_jack_detect = 1; in patch_vt1708()
679 spec->gen.suppress_auto_mic = 1; in patch_vt1708()
681 spec->gen.auto_mute_via_amp = 1; in patch_vt1708()
695 spec->mixers[spec->num_mixers++] = vt1708_jack_detect_ctl; in patch_vt1708()
697 spec->init_verbs[spec->num_iverbs++] = vt1708_init_verbs; in patch_vt1708()
707 struct via_spec *spec; in patch_vt1709() local
711 spec = via_new_spec(codec); in patch_vt1709()
712 if (spec == NULL) in patch_vt1709()
715 spec->gen.mixer_nid = 0x18; in patch_vt1709()
729 struct via_spec *spec; in patch_vt1708B() local
736 spec = via_new_spec(codec); in patch_vt1708B()
737 if (spec == NULL) in patch_vt1708B()
740 spec->gen.mixer_nid = 0x16; in patch_vt1708B()
775 struct via_spec *spec; in patch_vt1708S() local
779 spec = via_new_spec(codec); in patch_vt1708S()
780 if (spec == NULL) in patch_vt1708S()
783 spec->gen.mixer_nid = 0x16; in patch_vt1708S()
801 spec->init_verbs[spec->num_iverbs++] = vt1708S_init_verbs; in patch_vt1708S()
818 struct via_spec *spec; in patch_vt1702() local
822 spec = via_new_spec(codec); in patch_vt1702()
823 if (spec == NULL) in patch_vt1702()
826 spec->gen.mixer_nid = 0x1a; in patch_vt1702()
842 spec->init_verbs[spec->num_iverbs++] = vt1702_init_verbs; in patch_vt1702()
863 struct via_spec *spec = codec->spec; in add_secret_dac_path() local
868 if (!spec->gen.mixer_nid) in add_secret_dac_path()
870 nums = snd_hda_get_connections(codec, spec->gen.mixer_nid, conn, in add_secret_dac_path()
884 spec->gen.mixer_nid, in add_secret_dac_path()
894 struct via_spec *spec; in patch_vt1718S() local
898 spec = via_new_spec(codec); in patch_vt1718S()
899 if (spec == NULL) in patch_vt1718S()
902 spec->gen.mixer_nid = 0x21; in patch_vt1718S()
914 spec->init_verbs[spec->num_iverbs++] = vt1718S_init_verbs; in patch_vt1718S()
949 struct via_spec *spec = codec->spec; in vt1716s_dmic_put() local
954 spec->dmic_enabled = index; in vt1716s_dmic_put()
991 struct via_spec *spec; in patch_vt1716S() local
995 spec = via_new_spec(codec); in patch_vt1716S()
996 if (spec == NULL) in patch_vt1716S()
999 spec->gen.mixer_nid = 0x16; in patch_vt1716S()
1010 spec->init_verbs[spec->num_iverbs++] = vt1716S_init_verbs; in patch_vt1716S()
1012 spec->mixers[spec->num_mixers++] = vt1716s_dmic_mixer; in patch_vt1716S()
1013 spec->mixers[spec->num_mixers++] = vt1716S_mono_out_mixer; in patch_vt1716S()
1092 struct via_spec *spec; in patch_vt2002P() local
1096 spec = via_new_spec(codec); in patch_vt2002P()
1097 if (spec == NULL) in patch_vt2002P()
1100 spec->gen.mixer_nid = 0x21; in patch_vt2002P()
1103 if (spec->codec_type == VT1802) in patch_vt2002P()
1117 if (spec->codec_type == VT1802) in patch_vt2002P()
1118 spec->init_verbs[spec->num_iverbs++] = vt1802_init_verbs; in patch_vt2002P()
1120 spec->init_verbs[spec->num_iverbs++] = vt2002P_init_verbs; in patch_vt2002P()
1138 struct via_spec *spec; in patch_vt1812() local
1142 spec = via_new_spec(codec); in patch_vt1812()
1143 if (spec == NULL) in patch_vt1812()
1146 spec->gen.mixer_nid = 0x21; in patch_vt1812()
1158 spec->init_verbs[spec->num_iverbs++] = vt1812_init_verbs; in patch_vt1812()
1177 struct via_spec *spec; in patch_vt3476() local
1181 spec = via_new_spec(codec); in patch_vt3476()
1182 if (spec == NULL) in patch_vt3476()
1185 spec->gen.mixer_nid = 0x3f; in patch_vt3476()
1195 spec->init_verbs[spec->num_iverbs++] = vt3476_init_verbs; in patch_vt3476()