Lines Matching +full:codec +full:- +full:3
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 * Generic BIOS auto-parser helper functions for HD-audio
13 /* table entry for multi-io paths */
15 hda_nid_t pin; /* multi-io widget pin NID */
17 unsigned int ctl_in; /* cached input-pin control value */
22 * For output, stored in the order of DAC -> ... -> pin,
23 * for input, pin -> ... -> ADC.
27 * multi[] indicates whether it's a selector widget with multi-connectors
53 /* mic/line-in auto switching entry */
55 #define MAX_AUTO_MIC_PINS 3
59 int idx; /* imux index, -1 = invalid */
91 void (*old_hook)(struct hda_codec *codec,
114 struct hda_multi_out multiout; /* playback set-up
119 hda_nid_t follower_dig_outs[3]; /* optional - for auto-parsing */
125 hda_nid_t dig_in_nid; /* digital-in NID; optional */
126 hda_nid_t mixer_nid; /* analog-mixer NID */
127 hda_nid_t mixer_merge_nid; /* aamix merge-point NID (optional) */
131 /* capture setup for dynamic dual-adc switch */
138 unsigned int cur_mux[3];
157 struct hda_pcm *pcm_rec[3]; /* used in build_pcms() */
183 int aamix_out_paths[3];
190 /* auto-mic stuff */
208 unsigned int detect_lo:1; /* Line-out detection enabled */
212 /* additional parameters set by codec drivers */
215 unsigned int line_in_auto_switch:1; /* allow line-in auto switch */
216 unsigned int auto_mute_via_amp:1; /* auto-mute via amp instead of pinctl */
224 unsigned int hp_mic:1; /* Allow HP as a mic-in */
277 /* multi-io */
282 void (*init_hook)(struct hda_codec *codec);
283 void (*automute_hook)(struct hda_codec *codec);
284 void (*cap_sync_hook)(struct hda_codec *codec,
293 struct hda_codec *codec,
297 struct hda_codec *codec,
302 void (*hp_automute_hook)(struct hda_codec *codec,
304 void (*line_automute_hook)(struct hda_codec *codec,
306 void (*mic_autoswitch_hook)(struct hda_codec *codec,
317 HDA_HINT_STEREO_MIX_AUTO, /* Add only if auto-mic is disabled */
322 int snd_hda_gen_init(struct hda_codec *codec);
323 void snd_hda_gen_free(struct hda_codec *codec);
325 int snd_hda_get_path_idx(struct hda_codec *codec, struct nid_path *path);
326 struct nid_path *snd_hda_get_path_from_idx(struct hda_codec *codec, int idx);
328 snd_hda_add_new_path(struct hda_codec *codec, hda_nid_t from_nid,
330 void snd_hda_activate_path(struct hda_codec *codec, struct nid_path *path,
337 int snd_hda_gen_parse_auto_config(struct hda_codec *codec,
339 int snd_hda_gen_build_controls(struct hda_codec *codec);
340 int snd_hda_gen_build_pcms(struct hda_codec *codec);
341 void snd_hda_gen_reboot_notify(struct hda_codec *codec);
344 void snd_hda_gen_hp_automute(struct hda_codec *codec,
346 void snd_hda_gen_line_automute(struct hda_codec *codec,
348 void snd_hda_gen_mic_autoswitch(struct hda_codec *codec,
350 void snd_hda_gen_update_outputs(struct hda_codec *codec);
353 int snd_hda_gen_check_power_status(struct hda_codec *codec, hda_nid_t nid);
355 unsigned int snd_hda_gen_path_power_filter(struct hda_codec *codec,
358 void snd_hda_gen_stream_pm(struct hda_codec *codec, hda_nid_t nid, bool on);
359 int snd_hda_gen_fix_pin_power(struct hda_codec *codec, hda_nid_t pin);
361 int snd_hda_gen_add_mute_led_cdev(struct hda_codec *codec,
364 int snd_hda_gen_add_micmute_led_cdev(struct hda_codec *codec,