WSL2-Linux-Kernel/sound
Anssi Hannula 5a61358433 ALSA: hda - hdmi: Add ATI/AMD multi-channel audio support
ATI/AMD codecs do not support all the standard HDA HDMI/DP functions,
instead various vendor-specific verbs are provided.

This commit addresses these missing functions:
- standard channel mapping support
- standard infoframe configuration support

ATI/AMD provides their own verbs that allow the following:
- setting CA for infoframe
- setting down-mix information for infoframe
- channel pair remapping
- individual channel remapping (revision ID 3+, 0x100300+)

The documentation for the verbs has now been released by AMD:
http://www.x.org/docs/AMD/AMD_HDA_verbs_v2.pdf

Add support for the ATI/AMD specific verbs and use them instead of the
generic methods on ATI/AMD codecs. This allows multi-channel PCM audio
to work.

Channel remapping is restricted to pairwise mapping on codecs with
revision ID 2 (0x100200 as reported by procfs codec#X) or lower. This
means cards up to Radeon HD7670 as far as I know. This will not affect
standard multi-channel modes since these codecs support automatic
FC-LFE swapping for HDMI.

ATI/AMD codecs do not advertise all of their supported rates, formats
and channel counts, therefore that information is forced accordingly so
that all HDMI 1.x PCM parameters are marked as supported.

Support for multiple ports is also added to patch_atihdmi so that
0x1002aa01 codecs with multiple ports will work properly when switched
back to that patch.

v2: splitted ELD emulation to a separate patch, tlv fixes
v3: adapted to the new hdmi_ops infrastructure, fixed rev3+ vendor id

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Tested-by: Peter Frühberger <fritsch@xbmc.org> # v2
Tested-by: Olivier Langlois <olivier@trillion01.com> # v2+rev3fix
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-10-24 22:53:43 +02:00
..
aoa ALSA: snd-aoa: Add a layout entry for PowerBook6,5 2013-05-16 07:19:01 +02:00
arm ASoC: pxa: use snd_dmaengine_dai_dma_data 2013-08-15 11:29:07 +01:00
atmel ALSA: atmel: Remove redundant platform_set_drvdata() 2013-05-03 11:40:23 +02:00
core ALSA: compress: fix drain calls blocking other compress functions 2013-10-24 14:50:37 +02:00
drivers ALSA: replace strict_strto*() with kstrto*() 2013-07-21 11:56:18 +02:00
firewire Merge branch 'dice-driver-playback-only' of git://git.alsa-project.org/alsa-kprivate into for-next 2013-10-22 10:02:57 +02:00
i2c [media] tea575x: Move from sound to media 2013-08-18 08:09:59 -03:00
isa Merge remote-tracking branch 'asoc/fix/fsl' into asoc-linus 2013-09-11 11:17:15 +01:00
mips ALSA: mips/sgio2audio: Remove redundant platform_set_drvdata() 2013-05-06 10:45:54 +02:00
oss sound: Remove unnecessary semicolons 2013-10-14 11:00:05 +02:00
parisc ALSA: Remove the rest of *_set_drvdata(NULL) calls 2013-05-29 12:50:59 +02:00
pci ALSA: hda - hdmi: Add ATI/AMD multi-channel audio support 2013-10-24 22:53:43 +02:00
pcmcia sound/pcmcia: use module_pcmcia_driver() in pcmcia drivers 2013-03-15 12:26:39 -07:00
ppc ALSA: powermac: Remove redundant platform_set_drvdata() 2013-05-23 14:35:58 +02:00
sh ALSA: sh_dac_audio: Remove redundant platform_set_drvdata() 2013-05-23 14:36:45 +02:00
soc sound: Remove unnecessary semicolons 2013-10-14 11:00:05 +02:00
sparc ALSA: Remove the rest of *_set_drvdata(NULL) calls 2013-05-29 12:50:59 +02:00
spi ALSA: Remove the rest of *_set_drvdata(NULL) calls 2013-05-29 12:50:59 +02:00
synth
usb ALSA: usb-audio: Use module_usb_driver 2013-10-09 14:00:34 +02:00
Kconfig sound: remove reference to feature-removal-schedule.txt 2012-12-17 17:15:12 -08:00
Makefile
ac97_bus.c
last.c ALSA: Remove the last mention of SNDRV_MAIN_OBJECT_FILE 2012-09-03 10:07:23 +02:00
sound_core.c drivers: avoid format string in dev_set_name 2013-07-03 16:07:41 -07:00
sound_firmware.c sound_firmware: don't bother with filp_close() 2013-04-09 15:16:32 -04:00