diff options
Diffstat (limited to 'sound')
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 2a45375d79f8..6b0bc040c3b1 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
@@ -4440,7 +4440,14 @@ static inline int get_pin_presence(struct hda_codec *codec, hda_nid_t nid) | |||
4440 | { | 4440 | { |
4441 | if (!nid) | 4441 | if (!nid) |
4442 | return 0; | 4442 | return 0; |
4443 | return snd_hda_jack_detect(codec, nid); | 4443 | /* NOTE: we can't use snd_hda_jack_detect() here because STAC/IDT |
4444 | * codecs behave wrongly when SET_PIN_SENSE is triggered, although | ||
4445 | * the pincap gives TRIG_REQ bit. | ||
4446 | */ | ||
4447 | if (snd_hda_codec_read(codec, nid, 0, AC_VERB_GET_PIN_SENSE, 0) & | ||
4448 | AC_PINSENSE_PRESENCE) | ||
4449 | return 1; | ||
4450 | return 0; | ||
4444 | } | 4451 | } |
4445 | 4452 | ||
4446 | static void stac92xx_line_out_detect(struct hda_codec *codec, | 4453 | static void stac92xx_line_out_detect(struct hda_codec *codec, |