diff options
author | mav <mav@FreeBSD.org> | 2012-01-24 14:17:13 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2012-01-24 14:17:13 +0000 |
commit | 36d6f2325058ea5c4711675d90e8b5c974da5e54 (patch) | |
tree | 9dd580d156066cb9998eb79ec0cec164abf8826f | |
parent | e59c01b14f52764214c109603e8dd533dacef5da (diff) | |
download | FreeBSD-src-36d6f2325058ea5c4711675d90e8b5c974da5e54.zip FreeBSD-src-36d6f2325058ea5c4711675d90e8b5c974da5e54.tar.gz |
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.
-rw-r--r-- | sys/dev/sound/pci/hda/hdaa.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/sys/dev/sound/pci/hda/hdaa.c b/sys/dev/sound/pci/hda/hdaa.c index be31194..0e63f8f 100644 --- a/sys/dev/sound/pci/hda/hdaa.c +++ b/sys/dev/sound/pci/hda/hdaa.c @@ -2793,12 +2793,11 @@ hdaa_audio_as_parse(struct hdaa_devinfo *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); |