summaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/hda_jack.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2012-03-18 18:22:30 +0100
committerTakashi Iwai <tiwai@suse.de>2012-03-18 18:22:30 +0100
commitdbf117cbb9c89991727d42e3161e68b868a1b6ae (patch)
treeb3c0c07534952b493d2bdc9f73c54c6065b1691f /sound/pci/hda/hda_jack.c
parent25dc16f69892182192b1234594fd3cf342ad4195 (diff)
parent350eba43fca735733a51185f26bdc30899c64a20 (diff)
Merge branch 'topic/hda' into for-linus
Diffstat (limited to 'sound/pci/hda/hda_jack.c')
-rw-r--r--sound/pci/hda/hda_jack.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_jack.c b/sound/pci/hda/hda_jack.c
index 9d819c4b492..d68948499fb 100644
--- a/sound/pci/hda/hda_jack.c
+++ b/sound/pci/hda/hda_jack.c
@@ -19,6 +19,22 @@
#include "hda_local.h"
#include "hda_jack.h"
+bool is_jack_detectable(struct hda_codec *codec, hda_nid_t nid)
+{
+ if (codec->no_jack_detect)
+ return false;
+ if (!(snd_hda_query_pin_caps(codec, nid) & AC_PINCAP_PRES_DETECT))
+ return false;
+ if (!codec->ignore_misc_bit &&
+ (get_defcfg_misc(snd_hda_codec_get_pincfg(codec, nid)) &
+ AC_DEFCFG_MISC_NO_PRESENCE))
+ return false;
+ if (!(get_wcaps(codec, nid) & AC_WCAP_UNSOL_CAP))
+ return false;
+ return true;
+}
+EXPORT_SYMBOL_HDA(is_jack_detectable);
+
/* execute pin sense measurement */
static u32 read_pin_sense(struct hda_codec *codec, hda_nid_t nid)
{