Lines Matching +full:codec +full:- +full:analog +full:- +full:controls

1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 * Generic BIOS auto-parser helper functions for HD-audio
16 /* table entry for multi-io paths */
18 hda_nid_t pin; /* multi-io widget pin NID */
20 unsigned int ctl_in; /* cached input-pin control value */
25 * For output, stored in the order of DAC -> ... -> pin,
26 * for input, pin -> ... -> ADC.
30 * multi[] indicates whether it's a selector widget with multi-connectors
56 /* mic/line-in auto switching entry */
62 int idx; /* imux index, -1 = invalid */
91 char stream_name_analog[32]; /* analog PCM stream */
95 char stream_name_alt_analog[32]; /* alternative analog PCM stream */
108 struct hda_multi_out multiout; /* playback set-up
113 hda_nid_t follower_dig_outs[3]; /* optional - for auto-parsing */
119 hda_nid_t dig_in_nid; /* digital-in NID; optional */
120 hda_nid_t mixer_nid; /* analog-mixer NID */
121 hda_nid_t mixer_merge_nid; /* aamix merge-point NID (optional) */
125 /* capture setup for dynamic dual-adc switch */
153 /* dynamic controls, init_verbs and input_mux */
184 /* auto-mic stuff */
202 unsigned int detect_lo:1; /* Line-out detection enabled */
206 /* additional parameters set by codec drivers */
209 unsigned int line_in_auto_switch:1; /* allow line-in auto switch */
210 unsigned int auto_mute_via_amp:1; /* auto-mute via amp instead of pinctl */
218 unsigned int hp_mic:1; /* Allow HP as a mic-in */
226 unsigned int vmaster_mute_led:1; /* add SPK-LED flag to vmaster mute switch */
227 unsigned int mic_mute_led:1; /* add MIC-LED flag to capture mute switch */
247 /* bitmask for skipping volume controls */
271 /* multi-io */
276 void (*init_hook)(struct hda_codec *codec);
277 void (*automute_hook)(struct hda_codec *codec);
278 void (*cap_sync_hook)(struct hda_codec *codec,
284 struct hda_codec *codec,
288 struct hda_codec *codec,
293 void (*hp_automute_hook)(struct hda_codec *codec,
295 void (*line_automute_hook)(struct hda_codec *codec,
297 void (*mic_autoswitch_hook)(struct hda_codec *codec,
308 HDA_HINT_STEREO_MIX_AUTO, /* Add only if auto-mic is disabled */
313 int snd_hda_gen_init(struct hda_codec *codec);
314 void snd_hda_gen_free(struct hda_codec *codec);
316 int snd_hda_get_path_idx(struct hda_codec *codec, struct nid_path *path);
317 struct nid_path *snd_hda_get_path_from_idx(struct hda_codec *codec, int idx);
319 snd_hda_add_new_path(struct hda_codec *codec, hda_nid_t from_nid,
321 void snd_hda_activate_path(struct hda_codec *codec, struct nid_path *path,
328 int snd_hda_gen_parse_auto_config(struct hda_codec *codec,
330 int snd_hda_gen_build_controls(struct hda_codec *codec);
331 int snd_hda_gen_build_pcms(struct hda_codec *codec);
334 void snd_hda_gen_hp_automute(struct hda_codec *codec,
336 void snd_hda_gen_line_automute(struct hda_codec *codec,
338 void snd_hda_gen_mic_autoswitch(struct hda_codec *codec,
340 void snd_hda_gen_update_outputs(struct hda_codec *codec);
342 int snd_hda_gen_check_power_status(struct hda_codec *codec, hda_nid_t nid);
343 unsigned int snd_hda_gen_path_power_filter(struct hda_codec *codec,
346 void snd_hda_gen_stream_pm(struct hda_codec *codec, hda_nid_t nid, bool on);
347 int snd_hda_gen_fix_pin_power(struct hda_codec *codec, hda_nid_t pin);
349 int snd_hda_gen_add_mute_led_cdev(struct hda_codec *codec,
352 int snd_hda_gen_add_micmute_led_cdev(struct hda_codec *codec,
355 bool snd_hda_gen_shutup_speakers(struct hda_codec *codec);