freebsd-dev/sys/dev/sound/pci
Alexander Motin 88addcbe26 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.
2012-01-18 19:12:33 +00:00
..
hda Improve HDMI/DisplayPort audio support in snd_hda(4): 2012-01-18 19:12:33 +00:00
als4000.c
als4000.h
atiixp.c
atiixp.h
aureal.c
aureal.h
cmi.c
cmireg.h
cs4281.c
cs4281.h
csa.c - There's no need to overwrite the default device method with the default 2011-11-22 21:28:20 +00:00
csapcm.c
csareg.h
csavar.h
ds1-fw.h Remove spurious 8bit chars, turning files into plain ASCII. 2012-01-15 13:23:33 +00:00
ds1.c
ds1.h
emu10k1.c Fix an inconsistency that crept in while replacing constants 2012-01-11 21:03:54 +00:00
emu10kx-midi.c Replace GPL'd headers in the emu10kx snd driver code. 2012-01-11 21:17:14 +00:00
emu10kx-pcm.c Replace GPL'd headers in the emu10kx snd driver code. 2012-01-11 21:17:14 +00:00
emu10kx.c Fix a few comment typos. 2012-01-15 13:36:47 +00:00
emu10kx.h Replace GPL'd headers in the emu10kx snd driver code. 2012-01-11 21:17:14 +00:00
emuxkireg.h Replace GPL'd headers in the emu10kx snd driver code. 2012-01-11 21:17:14 +00:00
envy24.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
envy24.h
envy24ht.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
envy24ht.h
es137x.c Fix typos - remove duplicate "the". 2011-02-21 09:01:34 +00:00
es137x.h
fm801.c - There's no need to overwrite the default device method with the default 2011-11-22 21:28:20 +00:00
ich.c
ich.h
maestro3.c
maestro_reg.h
maestro.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
neomagic-coeff.h
neomagic.c
neomagic.h
solo.c
spicds.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
spicds.h
t4dwave.c
t4dwave.h
via82c686.c
via82c686.h
via8233.c
via8233.h
vibes.c
vibes.h