forked from Minki/linux
ALSA: hda/realtek - Don't detect LO jack when identical with HP
The spec->autocfg.line_out_pins[] may contain the same pins as hp_pins[] depending on the configuration. When they are identical, detecting the line_jack_present flag screws up the auto-mute because alc_line_automute() is called unconditionally at initialization while it won't be triggered by unsol events, thus the old line_jack_present flag is kept for the whole run. For fixing this buggy behavior, the driver needs to check whether the line-outs are really individual, and skip if same as headphone jacks. Reference: https://bugzilla.novell.com/show_bug.cgi?id=716104 Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
5fe6e0151d
commit
e0d32e335f
@ -578,6 +578,10 @@ static void alc_line_automute(struct hda_codec *codec)
|
|||||||
{
|
{
|
||||||
struct alc_spec *spec = codec->spec;
|
struct alc_spec *spec = codec->spec;
|
||||||
|
|
||||||
|
/* check LO jack only when it's different from HP */
|
||||||
|
if (spec->autocfg.line_out_pins[0] == spec->autocfg.hp_pins[0])
|
||||||
|
return;
|
||||||
|
|
||||||
spec->line_jack_present =
|
spec->line_jack_present =
|
||||||
detect_jacks(codec, ARRAY_SIZE(spec->autocfg.line_out_pins),
|
detect_jacks(codec, ARRAY_SIZE(spec->autocfg.line_out_pins),
|
||||||
spec->autocfg.line_out_pins);
|
spec->autocfg.line_out_pins);
|
||||||
|
Loading…
Reference in New Issue
Block a user