aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorWu Fengguang <fengguang.wu@intel.com>2009-12-10 23:28:34 -0500
committerTakashi Iwai <tiwai@suse.de>2009-12-11 01:56:04 -0500
commit728765b30a052317b6cb6111d4c4e66aba5c0099 (patch)
tree0eac7cbdc7bdc09d6d328b2adfb24b81ad25419f /sound
parentb923528ed29dc2d12832f76b1b9e05848d9de853 (diff)
ALSA: intelhdmi - accept DisplayPort pin
HDA036 spec states: DP (Display Port) indicates whether the Pin Complex Widget supports connection to a Display Port sink. Supported if set to 1. Note that it is possible for the pin widget to support more than one digital display connection type, e.g. HDMI and DP bit are both set to 1. Also export the DP pin cap in procfs. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/hda/hda_codec.h3
-rw-r--r--sound/pci/hda/hda_proc.c2
-rw-r--r--sound/pci/hda/patch_intelhdmi.c2
3 files changed, 6 insertions, 1 deletions
diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h
index f9a084a1378e..9000d52fccca 100644
--- a/sound/pci/hda/hda_codec.h
+++ b/sound/pci/hda/hda_codec.h
@@ -255,6 +255,9 @@ enum {
255 * in HD-audio specification 255 * in HD-audio specification
256 */ 256 */
257#define AC_PINCAP_HDMI (1<<7) /* HDMI pin */ 257#define AC_PINCAP_HDMI (1<<7) /* HDMI pin */
258#define AC_PINCAP_DP (1<<24) /* DisplayPort pin, can
259 * coexist with AC_PINCAP_HDMI
260 */
258#define AC_PINCAP_VREF (0x37<<8) 261#define AC_PINCAP_VREF (0x37<<8)
259#define AC_PINCAP_VREF_SHIFT 8 262#define AC_PINCAP_VREF_SHIFT 8
260#define AC_PINCAP_EAPD (1<<16) /* EAPD capable */ 263#define AC_PINCAP_EAPD (1<<16) /* EAPD capable */
diff --git a/sound/pci/hda/hda_proc.c b/sound/pci/hda/hda_proc.c
index 8d381c891001..c9afc04adac8 100644
--- a/sound/pci/hda/hda_proc.c
+++ b/sound/pci/hda/hda_proc.c
@@ -246,6 +246,8 @@ static void print_pin_caps(struct snd_info_buffer *buffer,
246 snd_iprintf(buffer, " HDMI"); 246 snd_iprintf(buffer, " HDMI");
247 } 247 }
248 } 248 }
249 if (caps & AC_PINCAP_DP)
250 snd_iprintf(buffer, " DP");
249 if (caps & AC_PINCAP_TRIG_REQ) 251 if (caps & AC_PINCAP_TRIG_REQ)
250 snd_iprintf(buffer, " Trigger"); 252 snd_iprintf(buffer, " Trigger");
251 if (caps & AC_PINCAP_IMP_SENSE) 253 if (caps & AC_PINCAP_IMP_SENSE)
diff --git a/sound/pci/hda/patch_intelhdmi.c b/sound/pci/hda/patch_intelhdmi.c
index 928df59be5d8..742f15eb3331 100644
--- a/sound/pci/hda/patch_intelhdmi.c
+++ b/sound/pci/hda/patch_intelhdmi.c
@@ -344,7 +344,7 @@ static int intel_hdmi_parse_codec(struct hda_codec *codec)
344 break; 344 break;
345 case AC_WID_PIN: 345 case AC_WID_PIN:
346 caps = snd_hda_param_read(codec, nid, AC_PAR_PIN_CAP); 346 caps = snd_hda_param_read(codec, nid, AC_PAR_PIN_CAP);
347 if (!(caps & AC_PINCAP_HDMI)) 347 if (!(caps & (AC_PINCAP_HDMI | AC_PINCAP_DP)))
348 continue; 348 continue;
349 if (intel_hdmi_add_pin(codec, nid) < 0) 349 if (intel_hdmi_add_pin(codec, nid) < 0)
350 return -EINVAL; 350 return -EINVAL;