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)
122 struct via_spec *spec; in via_new_spec() local
124 spec = kzalloc(sizeof(*spec), GFP_KERNEL); in via_new_spec()
125 if (spec == NULL) in via_new_spec()
128 codec->spec = spec; in via_new_spec()
129 snd_hda_gen_spec_init(&spec->gen); in via_new_spec()
130 spec->codec_type = get_codec_type(codec); in via_new_spec()
132 if (spec->codec_type == VT1708BCE) in via_new_spec()
133 spec->codec_type = VT1708S; in via_new_spec()
134 spec->gen.indep_hp = 1; in via_new_spec()
135 spec->gen.keep_eapd_on = 1; in via_new_spec()
136 spec->gen.pcm_playback_hook = via_playback_pcm_hook; in via_new_spec()
137 spec->gen.add_stereo_mix_input = HDA_HINT_STEREO_MIX_AUTO; in via_new_spec()
139 spec->gen.power_down_unused = 1; in via_new_spec()
140 return spec; in via_new_spec()
204 struct via_spec *spec = codec->spec; in vt1708_stop_hp_work() local
205 if (spec->codec_type != VT1708 || !spec->gen.autocfg.hp_outs) in vt1708_stop_hp_work()
207 if (spec->hp_work_active) { in vt1708_stop_hp_work()
211 spec->hp_work_active = false; in vt1708_stop_hp_work()
217 struct via_spec *spec = codec->spec; in vt1708_update_hp_work() local
218 if (spec->codec_type != VT1708 || !spec->gen.autocfg.hp_outs) in vt1708_update_hp_work()
220 if (spec->vt1708_jack_detect) { in vt1708_update_hp_work()
221 if (!spec->hp_work_active) { in vt1708_update_hp_work()
225 spec->hp_work_active = true; in vt1708_update_hp_work()
241 struct via_spec *spec = codec->spec; in via_pin_power_ctl_get() local
243 ucontrol->value.enumerated.item[0] = spec->gen.power_down_unused; in via_pin_power_ctl_get()
251 struct via_spec *spec = codec->spec; in via_pin_power_ctl_put() local
254 if (val == spec->gen.power_down_unused) in via_pin_power_ctl_put()
257 spec->gen.power_down_unused = val; in via_pin_power_ctl_put()
274 static inline void set_beep_amp(struct via_spec *spec, hda_nid_t nid, in set_beep_amp() argument
277 spec->gen.beep_nid = nid; in set_beep_amp()
278 spec->beep_amp = HDA_COMPOSE_AMP_VAL(nid, 1, idx, dir); in set_beep_amp()
291 struct via_spec *spec = codec->spec; in add_beep_ctls() local
294 if (spec->beep_amp) { in add_beep_ctls()
301 kctl->private_value = spec->beep_amp; in add_beep_ctls()
312 struct via_spec *spec = codec->spec; in auto_parse_beep() local
317 set_beep_amp(spec, nid, 0, HDA_OUTPUT); in auto_parse_beep()
322 #define set_beep_amp(spec, nid, idx, dir) /* NOP */ argument
330 struct via_spec *spec = codec->spec; in is_aa_path_mute() local
334 p = spec->gen.loopback.amplist; in is_aa_path_mute()
351 struct via_spec *spec = codec->spec; in __analog_low_current_mode() local
358 enable = is_aa_path_mute(codec) && !spec->gen.active_streams; in __analog_low_current_mode()
359 if (enable == spec->alc_mode && !force) in __analog_low_current_mode()
361 spec->alc_mode = enable; in __analog_low_current_mode()
364 switch (spec->codec_type) { in __analog_low_current_mode()
405 struct via_spec *spec = codec->spec; in via_build_controls() local
416 spec->mixers[spec->num_mixers++] = via_pin_power_ctl_enum; in via_build_controls()
418 for (i = 0; i < spec->num_mixers; i++) { in via_build_controls()
419 err = snd_hda_add_new_ctls(codec, spec->mixers[i]); in via_build_controls()
445 struct via_spec *spec = codec->spec; in via_suspend() local
449 if (spec->codec_type == VT1802) in via_suspend()
468 struct via_spec *spec = codec->spec; in via_check_power_status() local
471 return snd_hda_check_amp_list_power(codec, &spec->gen.loopback, nid); in via_check_power_status()
521 struct via_spec *spec = codec->spec; in vt1708_jack_detect_get() local
523 if (spec->codec_type != VT1708) in vt1708_jack_detect_get()
525 ucontrol->value.integer.value[0] = spec->vt1708_jack_detect; in vt1708_jack_detect_get()
533 struct via_spec *spec = codec->spec; in vt1708_jack_detect_put() local
536 if (spec->codec_type != VT1708) in vt1708_jack_detect_put()
539 if (spec->vt1708_jack_detect == val) in vt1708_jack_detect_put()
541 spec->vt1708_jack_detect = val; in vt1708_jack_detect_put()
577 struct via_spec *spec = codec->spec; in via_parse_auto_config() local
580 spec->gen.main_out_badness = &via_main_out_badness; in via_parse_auto_config()
581 spec->gen.extra_out_badness = &via_extra_out_badness; in via_parse_auto_config()
583 err = snd_hda_parse_pin_defcfg(codec, &spec->gen.autocfg, NULL, 0); in via_parse_auto_config()
589 err = snd_hda_gen_parse_auto_config(codec, &spec->gen.autocfg); in via_parse_auto_config()
595 spec->gen.power_down_unused = 0; in via_parse_auto_config()
601 struct via_spec *spec = codec->spec; in via_init() local
604 for (i = 0; i < spec->num_iverbs; i++) in via_init()
605 snd_hda_sequence_write(codec, spec->init_verbs[i]); in via_init()
631 struct via_spec *spec = codec->spec; in vt1708_build_pcms() local
642 for (i = 0; i < ARRAY_SIZE(spec->gen.pcm_rec); i++) { in vt1708_build_pcms()
643 struct hda_pcm *info = spec->gen.pcm_rec[i]; in vt1708_build_pcms()
658 struct via_spec *spec; in patch_vt1708() local
662 spec = via_new_spec(codec); in patch_vt1708()
663 if (spec == NULL) in patch_vt1708()
666 spec->gen.mixer_nid = 0x17; in patch_vt1708()
670 spec->vt1708_jack_detect = 1; in patch_vt1708()
674 spec->gen.suppress_auto_mic = 1; in patch_vt1708()
676 spec->gen.auto_mute_via_amp = 1; in patch_vt1708()
690 spec->mixers[spec->num_mixers++] = vt1708_jack_detect_ctl; in patch_vt1708()
692 spec->init_verbs[spec->num_iverbs++] = vt1708_init_verbs; in patch_vt1708()
706 struct via_spec *spec; in patch_vt1709() local
710 spec = via_new_spec(codec); in patch_vt1709()
711 if (spec == NULL) in patch_vt1709()
714 spec->gen.mixer_nid = 0x18; in patch_vt1709()
730 struct via_spec *spec; in patch_vt1708B() local
737 spec = via_new_spec(codec); in patch_vt1708B()
738 if (spec == NULL) in patch_vt1708B()
741 spec->gen.mixer_nid = 0x16; in patch_vt1708B()
777 struct via_spec *spec; in patch_vt1708S() local
781 spec = via_new_spec(codec); in patch_vt1708S()
782 if (spec == NULL) in patch_vt1708S()
785 spec->gen.mixer_nid = 0x16; in patch_vt1708S()
813 spec->init_verbs[spec->num_iverbs++] = vt1708S_init_verbs; in patch_vt1708S()
831 struct via_spec *spec; in patch_vt1702() local
835 spec = via_new_spec(codec); in patch_vt1702()
836 if (spec == NULL) in patch_vt1702()
839 spec->gen.mixer_nid = 0x1a; in patch_vt1702()
855 spec->init_verbs[spec->num_iverbs++] = vt1702_init_verbs; in patch_vt1702()
877 struct via_spec *spec = codec->spec; in add_secret_dac_path() local
882 if (!spec->gen.mixer_nid) in add_secret_dac_path()
884 nums = snd_hda_get_connections(codec, spec->gen.mixer_nid, conn, in add_secret_dac_path()
898 spec->gen.mixer_nid, in add_secret_dac_path()
908 struct via_spec *spec; in patch_vt1718S() local
912 spec = via_new_spec(codec); in patch_vt1718S()
913 if (spec == NULL) in patch_vt1718S()
916 spec->gen.mixer_nid = 0x21; in patch_vt1718S()
928 spec->init_verbs[spec->num_iverbs++] = vt1718S_init_verbs; in patch_vt1718S()
964 struct via_spec *spec = codec->spec; in vt1716s_dmic_put() local
969 spec->dmic_enabled = index; in vt1716s_dmic_put()
1006 struct via_spec *spec; in patch_vt1716S() local
1010 spec = via_new_spec(codec); in patch_vt1716S()
1011 if (spec == NULL) in patch_vt1716S()
1014 spec->gen.mixer_nid = 0x16; in patch_vt1716S()
1025 spec->init_verbs[spec->num_iverbs++] = vt1716S_init_verbs; in patch_vt1716S()
1027 spec->mixers[spec->num_mixers++] = vt1716s_dmic_mixer; in patch_vt1716S()
1028 spec->mixers[spec->num_mixers++] = vt1716S_mono_out_mixer; in patch_vt1716S()
1108 struct via_spec *spec; in patch_vt2002P() local
1112 spec = via_new_spec(codec); in patch_vt2002P()
1113 if (spec == NULL) in patch_vt2002P()
1116 spec->gen.mixer_nid = 0x21; in patch_vt2002P()
1119 if (spec->codec_type == VT1802) in patch_vt2002P()
1133 if (spec->codec_type == VT1802) in patch_vt2002P()
1134 spec->init_verbs[spec->num_iverbs++] = vt1802_init_verbs; in patch_vt2002P()
1136 spec->init_verbs[spec->num_iverbs++] = vt2002P_init_verbs; in patch_vt2002P()
1155 struct via_spec *spec; in patch_vt1812() local
1159 spec = via_new_spec(codec); in patch_vt1812()
1160 if (spec == NULL) in patch_vt1812()
1163 spec->gen.mixer_nid = 0x21; in patch_vt1812()
1175 spec->init_verbs[spec->num_iverbs++] = vt1812_init_verbs; in patch_vt1812()
1195 struct via_spec *spec; in patch_vt3476() local
1199 spec = via_new_spec(codec); in patch_vt3476()
1200 if (spec == NULL) in patch_vt3476()
1203 spec->gen.mixer_nid = 0x3f; in patch_vt3476()
1213 spec->init_verbs[spec->num_iverbs++] = vt3476_init_verbs; in patch_vt3476()