mirror of
https://github.com/adulau/aha.git
synced 2025-01-01 05:36:24 +00:00
ALSA: hda - Fix headphone-detection on some machines with STAC/IDT codecs
When the headphone can have no unique DAC, the current code doesn't check the HP-detection although it should. Put the hp-detection check before the DAC check to fix this bug. Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
d523b0c808
commit
ffd0e56c60
1 changed files with 5 additions and 5 deletions
|
@ -3076,6 +3076,11 @@ static int create_multi_out_ctls(struct hda_codec *codec, int num_outs,
|
||||||
unsigned int wid_caps;
|
unsigned int wid_caps;
|
||||||
|
|
||||||
for (i = 0; i < num_outs && i < ARRAY_SIZE(chname); i++) {
|
for (i = 0; i < num_outs && i < ARRAY_SIZE(chname); i++) {
|
||||||
|
if (type == AUTO_PIN_HP_OUT && !spec->hp_detect) {
|
||||||
|
wid_caps = get_wcaps(codec, pins[i]);
|
||||||
|
if (wid_caps & AC_WCAP_UNSOL_CAP)
|
||||||
|
spec->hp_detect = 1;
|
||||||
|
}
|
||||||
nid = dac_nids[i];
|
nid = dac_nids[i];
|
||||||
if (!nid)
|
if (!nid)
|
||||||
continue;
|
continue;
|
||||||
|
@ -3119,11 +3124,6 @@ static int create_multi_out_ctls(struct hda_codec *codec, int num_outs,
|
||||||
err = create_controls_idx(codec, name, idx, nid, 3);
|
err = create_controls_idx(codec, name, idx, nid, 3);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
if (type == AUTO_PIN_HP_OUT && !spec->hp_detect) {
|
|
||||||
wid_caps = get_wcaps(codec, pins[i]);
|
|
||||||
if (wid_caps & AC_WCAP_UNSOL_CAP)
|
|
||||||
spec->hp_detect = 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in a new issue