diff options
Diffstat (limited to 'sound/pci/hda/hda_local.h')
-rw-r--r-- | sound/pci/hda/hda_local.h | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/sound/pci/hda/hda_local.h b/sound/pci/hda/hda_local.h index 20c5e6250374..ad0014ab71f9 100644 --- a/sound/pci/hda/hda_local.h +++ b/sound/pci/hda/hda_local.h | |||
@@ -90,6 +90,13 @@ int snd_hda_codec_amp_stereo(struct hda_codec *codec, hda_nid_t nid, | |||
90 | void snd_hda_codec_resume_amp(struct hda_codec *codec); | 90 | void snd_hda_codec_resume_amp(struct hda_codec *codec); |
91 | #endif | 91 | #endif |
92 | 92 | ||
93 | void snd_hda_set_vmaster_tlv(struct hda_codec *codec, hda_nid_t nid, int dir, | ||
94 | unsigned int *tlv); | ||
95 | struct snd_kcontrol *snd_hda_find_mixer_ctl(struct hda_codec *codec, | ||
96 | const char *name); | ||
97 | int snd_hda_add_vmaster(struct hda_codec *codec, char *name, | ||
98 | unsigned int *tlv, const char **slaves); | ||
99 | |||
93 | /* amp value bits */ | 100 | /* amp value bits */ |
94 | #define HDA_AMP_MUTE 0x80 | 101 | #define HDA_AMP_MUTE 0x80 |
95 | #define HDA_AMP_UNMUTE 0x00 | 102 | #define HDA_AMP_UNMUTE 0x00 |
@@ -220,6 +227,7 @@ struct hda_multi_out { | |||
220 | hda_nid_t dig_out_nid; /* digital out audio widget */ | 227 | hda_nid_t dig_out_nid; /* digital out audio widget */ |
221 | int max_channels; /* currently supported analog channels */ | 228 | int max_channels; /* currently supported analog channels */ |
222 | int dig_out_used; /* current usage of digital out (HDA_DIG_XXX) */ | 229 | int dig_out_used; /* current usage of digital out (HDA_DIG_XXX) */ |
230 | int no_share_stream; /* don't share a stream with multiple pins */ | ||
223 | }; | 231 | }; |
224 | 232 | ||
225 | int snd_hda_multi_out_dig_open(struct hda_codec *codec, | 233 | int snd_hda_multi_out_dig_open(struct hda_codec *codec, |
@@ -324,6 +332,7 @@ struct auto_pin_cfg { | |||
324 | hda_nid_t input_pins[AUTO_PIN_LAST]; | 332 | hda_nid_t input_pins[AUTO_PIN_LAST]; |
325 | hda_nid_t dig_out_pin; | 333 | hda_nid_t dig_out_pin; |
326 | hda_nid_t dig_in_pin; | 334 | hda_nid_t dig_in_pin; |
335 | hda_nid_t mono_out_pin; | ||
327 | }; | 336 | }; |
328 | 337 | ||
329 | #define get_defcfg_connect(cfg) \ | 338 | #define get_defcfg_connect(cfg) \ |
@@ -362,10 +371,11 @@ static inline u32 get_wcaps(struct hda_codec *codec, hda_nid_t nid) | |||
362 | { | 371 | { |
363 | if (nid < codec->start_nid || | 372 | if (nid < codec->start_nid || |
364 | nid >= codec->start_nid + codec->num_nodes) | 373 | nid >= codec->start_nid + codec->num_nodes) |
365 | return snd_hda_param_read(codec, nid, AC_PAR_AUDIO_WIDGET_CAP); | 374 | return 0; |
366 | return codec->wcaps[nid - codec->start_nid]; | 375 | return codec->wcaps[nid - codec->start_nid]; |
367 | } | 376 | } |
368 | 377 | ||
378 | u32 query_amp_caps(struct hda_codec *codec, hda_nid_t nid, int direction); | ||
369 | int snd_hda_override_amp_caps(struct hda_codec *codec, hda_nid_t nid, int dir, | 379 | int snd_hda_override_amp_caps(struct hda_codec *codec, hda_nid_t nid, int dir, |
370 | unsigned int caps); | 380 | unsigned int caps); |
371 | 381 | ||
@@ -397,4 +407,11 @@ int snd_hda_check_amp_list_power(struct hda_codec *codec, | |||
397 | hda_nid_t nid); | 407 | hda_nid_t nid); |
398 | #endif /* CONFIG_SND_HDA_POWER_SAVE */ | 408 | #endif /* CONFIG_SND_HDA_POWER_SAVE */ |
399 | 409 | ||
410 | /* | ||
411 | * virtual master control | ||
412 | */ | ||
413 | struct snd_kcontrol *snd_ctl_make_virtual_master(char *name, | ||
414 | const unsigned int *tlv); | ||
415 | int snd_ctl_add_slave(struct snd_kcontrol *master, struct snd_kcontrol *slave); | ||
416 | |||
400 | #endif /* __SOUND_HDA_LOCAL_H */ | 417 | #endif /* __SOUND_HDA_LOCAL_H */ |