]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Improve HDMI/DisplayPort audio support in snd_hda(4):
authorAlexander Motin <mav@FreeBSD.org>
Wed, 18 Jan 2012 19:12:33 +0000 (19:12 +0000)
committerAlexander Motin <mav@FreeBSD.org>
Wed, 18 Jan 2012 19:12:33 +0000 (19:12 +0000)
commit88addcbe26ac074ef66ff226251b0658acf40ce3
treeca3af1619ad3e47d33b40c745fc3516cc1cb18ee
parent925c02f9dd5f3055397ace099454c9de7a97b102
Improve HDMI/DisplayPort audio support in snd_hda(4):

 - Enable and handle unsolicited responses from digital display pins,
reporting connection and EDID-Like Data (ELD) validity status changes.
 - Fetch ELD data, describing connected digital display device audio
capabilities. These data not really used at the moment (user is not
denied to use audio formats not supported by the device), only printed to
verbose logs. But they are useful for debugging. The fact that ELD was
received tells that HDMI link was established and video driver enabled
HDMI audio passthrough. Some old chips may not return ELD, so lack of it
is not necessary a problem.
 - Add some more points to CODEC configuration sequence:
   - For converter widgets, supporting more then two channels (HDMI/DP
     converter widgets support 8), set number of channels to handle.
   - For digital display pins (HDMI/DP) fill audio infoframe, reporting
     connected device about number of channels and speakers allocation.
   - For digital display pins (HDMI/DP) set mapping between channels seen
     by software and channels transferred via HDMI/DisplayPort.
 - Allow more audio formats, not used for analog connections because of
stereo pairs orientation, but easily applicable to HDMI/DisplayPort: 2.1,
3.0, 3.1, 4.1, 5.0, 6.0, 6.1, 7.0. That list may be filtered later using
info from ELD.
 - Disable MSI interrupts for NVIDIA HDA controllers before GT520.

At this point I can successfully play audio over HDMI from NVIDIA GT210
and GT520 cards with nvidia-driver-290.10 driver to Marantz SR4001
receiver in 2.0, 2.1, 3.0, 4.0, 4.1, 5.0 and 5.1 PCM formats at 44, 48,
88 and 96KHz at 16 and 24 bits, same as do AC3/DTS passthrough.
6.0, 6.1, 7.0 and 7.1 PCM formats are not working for me, but I think
it is because of receiver age.

MFC after: 2 months
Sponsored by: iXsystems, Inc.
sys/dev/sound/pci/hda/hda_reg.h
sys/dev/sound/pci/hda/hdaa.c
sys/dev/sound/pci/hda/hdaa.h
sys/dev/sound/pci/hda/hdac.c
sys/dev/sound/pci/hda/hdac.h