diff options
author | Takashi Iwai <tiwai@suse.de> | 2013-03-11 04:48:43 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2013-03-11 04:57:21 -0400 |
commit | 93c9d8ae0b25ab7845b26813da1a326d2b1fea43 (patch) | |
tree | 876e13eec6f607fdf3d6db0ab4fac0bbb23c11be /sound/pci/hda/hda_generic.c | |
parent | d5702162f85526319c848c667df49ee1754dccef (diff) |
ALSA: hda - Don't re-initialize shared hp/mic pinctl
When a headphone pin is set up as a shared hp/mic pin, we rather want
to keep it as a headphone primarily as default, but the driver
overrides it always as a mic pin, just because the input controls are
created after outputs. Add a check of pin NID and skip the
re-initialization of pinctl for such a shared hp/mic pin.
Reported-by: Jonathan Woithe <jwoithe@just42.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/hda_generic.c')
-rw-r--r-- | sound/pci/hda/hda_generic.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c index fb232c118e91..aae6b1023d69 100644 --- a/sound/pci/hda/hda_generic.c +++ b/sound/pci/hda/hda_generic.c | |||
@@ -2967,7 +2967,8 @@ static int create_input_ctls(struct hda_codec *codec) | |||
2967 | val = PIN_IN; | 2967 | val = PIN_IN; |
2968 | if (cfg->inputs[i].type == AUTO_PIN_MIC) | 2968 | if (cfg->inputs[i].type == AUTO_PIN_MIC) |
2969 | val |= snd_hda_get_default_vref(codec, pin); | 2969 | val |= snd_hda_get_default_vref(codec, pin); |
2970 | set_pin_target(codec, pin, val, false); | 2970 | if (pin != spec->hp_mic_pin) |
2971 | set_pin_target(codec, pin, val, false); | ||
2971 | 2972 | ||
2972 | if (mixer) { | 2973 | if (mixer) { |
2973 | if (is_reachable_path(codec, pin, mixer)) { | 2974 | if (is_reachable_path(codec, pin, mixer)) { |