|
@@ -194,18 +194,24 @@ u32 snd_hda_pin_sense(struct hda_codec *codec, hda_nid_t nid)
|
|
|
EXPORT_SYMBOL_HDA(snd_hda_pin_sense);
|
|
|
|
|
|
/**
|
|
|
- * snd_hda_jack_detect - query pin Presence Detect status
|
|
|
+ * snd_hda_jack_detect_state - query pin Presence Detect status
|
|
|
* @codec: the CODEC to sense
|
|
|
* @nid: the pin NID to sense
|
|
|
*
|
|
|
- * Query and return the pin's Presence Detect status.
|
|
|
+ * Query and return the pin's Presence Detect status, as either
|
|
|
+ * HDA_JACK_NOT_PRESENT, HDA_JACK_PRESENT or HDA_JACK_PHANTOM.
|
|
|
*/
|
|
|
-int snd_hda_jack_detect(struct hda_codec *codec, hda_nid_t nid)
|
|
|
+int snd_hda_jack_detect_state(struct hda_codec *codec, hda_nid_t nid)
|
|
|
{
|
|
|
- u32 sense = snd_hda_pin_sense(codec, nid);
|
|
|
- return get_jack_plug_state(sense);
|
|
|
+ struct hda_jack_tbl *jack = snd_hda_jack_tbl_get(codec, nid);
|
|
|
+ if (jack && jack->phantom_jack)
|
|
|
+ return HDA_JACK_PHANTOM;
|
|
|
+ else if (snd_hda_pin_sense(codec, nid) & AC_PINSENSE_PRESENCE)
|
|
|
+ return HDA_JACK_PRESENT;
|
|
|
+ else
|
|
|
+ return HDA_JACK_NOT_PRESENT;
|
|
|
}
|
|
|
-EXPORT_SYMBOL_HDA(snd_hda_jack_detect);
|
|
|
+EXPORT_SYMBOL_HDA(snd_hda_jack_detect_state);
|
|
|
|
|
|
/**
|
|
|
* snd_hda_jack_detect_enable - enable the jack-detection
|