Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Jan 2012 14:17:13 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r230507 - head/sys/dev/sound/pci/hda
Message-ID:  <201201241417.q0OEHDNm078776@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mav
Date: Tue Jan 24 14:17:13 2012
New Revision: 230507
URL: http://svn.freebsd.org/changeset/base/230507

Log:
  HDMI and DisplayPort support can coexist in HDA CODEC.
  Report "HDMI/DP" in PCM device name if both supported.
  
  MFC after:	2 months
  Sponsored by:	iXsystems, Inc.

Modified:
  head/sys/dev/sound/pci/hda/hdaa.c

Modified: head/sys/dev/sound/pci/hda/hdaa.c
==============================================================================
--- head/sys/dev/sound/pci/hda/hdaa.c	Tue Jan 24 13:57:30 2012	(r230506)
+++ head/sys/dev/sound/pci/hda/hdaa.c	Tue Jan 24 14:17:13 2012	(r230507)
@@ -2793,12 +2793,11 @@ hdaa_audio_as_parse(struct hdaa_devinfo 
 				as[cnt].enable = 0;
 			}
 			if (HDA_PARAM_AUDIO_WIDGET_CAP_DIGITAL(w->param.widget_cap)) {
+				as[cnt].digital |= 0x1;
+				if (HDA_PARAM_PIN_CAP_HDMI(w->wclass.pin.cap))
+					as[cnt].digital |= 0x2;
 				if (HDA_PARAM_PIN_CAP_DP(w->wclass.pin.cap))
-					as[cnt].digital = 3;
-				else if (HDA_PARAM_PIN_CAP_HDMI(w->wclass.pin.cap))
-					as[cnt].digital = 2;
-				else
-					as[cnt].digital = 1;
+					as[cnt].digital |= 0x4;
 			}
 			if (as[cnt].location == -1) {
 				as[cnt].location =
@@ -6514,9 +6513,10 @@ hdaa_pcm_probe(device_t dev)
 	snprintf(buf, sizeof(buf), "%s PCM (%s%s%s%s%s%s%s)",
 	    device_get_desc(device_get_parent(device_get_parent(dev))),
 	    loc1 >= 0 ? HDA_LOCS[loc1] : "", loc1 >= 0 ? " " : "",
-	    (pdevinfo->digital == 3)?"DisplayPort":
-	    ((pdevinfo->digital == 2)?"HDMI":
-	    ((pdevinfo->digital)?"Digital":"Analog")),
+	    (pdevinfo->digital == 0x7)?"HDMI/DP":
+	    ((pdevinfo->digital == 0x5)?"DisplayPort":
+	    ((pdevinfo->digital == 0x3)?"HDMI":
+	    ((pdevinfo->digital)?"Digital":"Analog"))),
 	    chans1[0] ? " " : "", chans1,
 	    chans2[0] ? "/" : "", chans2);
 	device_set_desc_copy(dev, buf);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201201241417.q0OEHDNm078776>