WSL2-Linux-Kernel/sound/pci/hda
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
..
Kconfig ALSA: hda - Simplify CONFIG_SND_HDA_I915 condition 2013-08-27 14:49:59 +02:00
Makefile ALSA: hda - Add power-welll support for haswell HDA 2013-06-06 17:31:56 +02:00
ca0132_regs.h ALSA: hda/ca0132 - Fix type of INVALID_CHIP_ADDRESS 2013-02-12 10:15:15 +01:00
hda_auto_parser.c ALSA: hda - Fix missing fixup for Mac Mini with STAC9221 2013-08-02 08:16:52 +02:00
hda_auto_parser.h ALSA: hda - add some small convenience functions to auto parser 2013-04-11 11:59:27 +02:00
hda_beep.c ALSA: hda - Remove OOM message after input_allocate_device 2013-10-24 11:26:07 +02:00
hda_beep.h ALSA: hda - Fix power-saving during playing beep sound 2013-03-18 12:58:47 +01:00
hda_codec.c ALSA: hda - Treat zero connection as non-error 2013-10-17 19:21:52 +02:00
hda_codec.h ALSA: hda - Fix mute LED on HP laptops in runtime suspend 2013-10-24 11:37:33 +02:00
hda_eld.c ALSA: hda - Move mutex from hda_eld to per_pin in HDMI codec driver 2013-10-17 19:23:45 +02:00
hda_generic.c ASoC: Updates for v3.12 2013-08-23 14:12:22 +02:00
hda_generic.h ALSA: hda - Fix invalid multi-io creation on VAIO-Z laptops 2013-07-29 16:54:36 +02:00
hda_hwdep.c ALSA: replace strict_strto*() with kstrto*() 2013-07-21 11:56:18 +02:00
hda_i915.c ALSA: hda - Add power-welll support for haswell HDA 2013-06-06 17:31:56 +02:00
hda_i915.h ALSA: hda - Add power-welll support for haswell HDA 2013-06-06 17:31:56 +02:00
hda_intel.c ALSA: hda - Fix mute LED on HP laptops in runtime suspend 2013-10-24 11:37:33 +02:00
hda_intel_trace.h ALSA: hda - Add tracepoints to HD-audio controller driver 2012-10-30 10:39:59 +01:00
hda_jack.c ALSA: hda - Fix jack gating when auto_{mute,mic} is suppressed. 2013-08-05 11:19:59 +02:00
hda_jack.h ALSA: hda - Add snd_hda_jack_detect_state() helper function 2013-07-21 11:52:54 +02:00
hda_local.h ALSA: hda - Move mutex from hda_eld to per_pin in HDMI codec driver 2013-10-17 19:23:45 +02:00
hda_proc.c ALSA: hda - add device list & select info of display pins to codec proc file 2013-08-27 12:15:17 +02:00
hda_trace.h ALSA: hda - Clean up CONFIG_SND_HDA_POWER_SAVE 2012-08-30 07:50:13 -07:00
patch_analog.c ALSA: hda - Remove static quirks for AD1986A codec 2013-07-05 14:14:14 +02:00
patch_ca0110.c ALSA: hda - Remove superfluous header inclusions 2013-01-21 16:10:56 +01:00
patch_ca0132.c ALSA: hda/ca0132: Staticize codec_send_command 2013-09-13 14:36:32 +02:00
patch_cirrus.c ALSA: hda - Add fixup for MacBook Air 6,1 and 6,2 with CS4208 codec 2013-09-27 10:17:44 +02:00
patch_cmedia.c ALSA: hda - Remove superfluous header inclusions 2013-01-21 16:10:56 +01:00
patch_conexant.c ALSA: hda - add connection to thinkpad_acpi to control mute/micmute LEDs 2013-10-17 14:39:03 +02:00
patch_hdmi.c ALSA: hda - hdmi: Add ATI/AMD multi-channel audio support 2013-10-24 22:53:43 +02:00
patch_realtek.c ALSA: hda/realtek - Raise the delay for alc283_shutup 2013-10-24 15:45:24 +02:00
patch_si3054.c sound: Add module.h to the previously silent sound users 2011-10-31 19:31:21 -04:00
patch_sigmatel.c ALSA: hda - Fix mute LED on HP laptops in runtime suspend 2013-10-24 11:37:33 +02:00
patch_via.c ALSA: hda - Clearing jackpoll_interval avoid pending work 2013-07-29 14:19:03 +02:00