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 */
248 /* bitmask for skipping volume controls */
272 /* multi-io */
277 void (*init_hook)(struct hda_codec *codec);
278 void (*automute_hook)(struct hda_codec *codec);
279 void (*cap_sync_hook)(struct hda_codec *codec,
285 struct hda_codec *codec,
289 struct hda_codec *codec,
294 void (*hp_automute_hook)(struct hda_codec *codec,
296 void (*line_automute_hook)(struct hda_codec *codec,
298 void (*mic_autoswitch_hook)(struct hda_codec *codec,
309 HDA_HINT_STEREO_MIX_AUTO, /* Add only if auto-mic is disabled */
314 int snd_hda_gen_init(struct hda_codec *codec);
315 void snd_hda_gen_free(struct hda_codec *codec);
317 int snd_hda_get_path_idx(struct hda_codec *codec, struct nid_path *path);
318 struct nid_path *snd_hda_get_path_from_idx(struct hda_codec *codec, int idx);
320 snd_hda_add_new_path(struct hda_codec *codec, hda_nid_t from_nid,
322 void snd_hda_activate_path(struct hda_codec *codec, struct nid_path *path,
329 int snd_hda_gen_parse_auto_config(struct hda_codec *codec,
331 int snd_hda_gen_build_controls(struct hda_codec *codec);
332 int snd_hda_gen_build_pcms(struct hda_codec *codec);
335 void snd_hda_gen_hp_automute(struct hda_codec *codec,
337 void snd_hda_gen_line_automute(struct hda_codec *codec,
339 void snd_hda_gen_mic_autoswitch(struct hda_codec *codec,
341 void snd_hda_gen_update_outputs(struct hda_codec *codec);
344 int snd_hda_gen_check_power_status(struct hda_codec *codec, hda_nid_t nid);
346 unsigned int snd_hda_gen_path_power_filter(struct hda_codec *codec,
349 void snd_hda_gen_stream_pm(struct hda_codec *codec, hda_nid_t nid, bool on);
350 int snd_hda_gen_fix_pin_power(struct hda_codec *codec, hda_nid_t pin);
352 int snd_hda_gen_add_mute_led_cdev(struct hda_codec *codec,
355 int snd_hda_gen_add_micmute_led_cdev(struct hda_codec *codec,
358 bool snd_hda_gen_shutup_speakers(struct hda_codec *codec);