android_kernel_xiaomi_sdm845/sound/pci
Wu Fengguang 698544de8a ALSA: hda: HDMI channel allocations for audio infoframe
To play a 3+ channels LPCM/DSD stream via HDMI,

	- HDMI sink must tell HDMI source about its speaker placements
	  (via ELD, speaker-allocation field)
	- HDMI source must tell the HDMI sink about channel allocation
	  (via audio infoframe, channel-allocation field)

(related docs: HDMI 1.3a spec section 7.4, CEA-861-D section 7.5.3 and 6.6)

This patch attempts to set the CA(channel-allocation) byte in the audio infoframe
according to
	- the number of channels in the current stream
	- the speakers attached to the HDMI sink

A channel_allocations[] line must meet the following two criteria to be
considered as a valid candidate for CA:
	1) its number of allocated channels = substream->runtime->channels
	2) its speakers are a subset of the available ones on the sink side

If there are multiple candidates, the first one is selected.  This simple
policy shall cheat the sink into playing music, but may direct data to the
wrong speakers.

Signed-off-by: Wu Fengguang <wfg@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-19 07:35:36 +01:00
..
ac97 ALSA: ac97_patch make functions static 2008-09-04 10:26:37 +02:00
ali5451 [ALSA] Fix synchronize_irq() bugs, redundancies 2008-04-24 12:00:40 +02:00
au88x0 ALSA: Clean up SG-buffer helper functions and macros 2008-08-25 09:57:18 +02:00
aw2 ALSA: aw2 - Fix Oops at initialization 2008-06-23 12:06:23 +02:00
ca0106 ALSA: Cosmetic change: CA0106 on MSI K8N Diamond PLUS Motherboard 2008-08-29 10:01:04 +02:00
cs46xx ALSA: cs46xx: Add PCI IDs for TerraTec and Hercules cards 2008-10-10 13:41:44 +02:00
cs5535audio [ALSA] fix cs5535 section mismatch 2008-01-31 17:30:12 +01:00
echoaudio ALSA: Clean up SG-buffer helper functions and macros 2008-08-25 09:57:18 +02:00
emu10k1 ALSA: Clean up SG-buffer helper functions and macros 2008-08-25 09:57:18 +02:00
hda ALSA: hda: HDMI channel allocations for audio infoframe 2008-11-19 07:35:36 +01:00
ice1712 ALSA: ice1712.c: fix coding style 2008-09-09 09:11:46 +02:00
korg1212 ALSA: Kill snd_assert() in sound/pci/* 2008-08-13 11:46:38 +02:00
mixart ALSA: Kill snd_assert() in sound/pci/* 2008-08-13 11:46:38 +02:00
nm256 ALSA: Kill snd_assert() in sound/pci/* 2008-08-13 11:46:38 +02:00
oxygen ALSA: oxygen: wait for ACK when resetting UART 2008-09-24 15:25:28 +02:00
pcxhr ALSA: Kill snd_assert() in sound/pci/* 2008-08-13 11:46:38 +02:00
riptide ALSA: Clean up SG-buffer helper functions and macros 2008-08-25 09:57:18 +02:00
rme9652 ALSA: Clean up SG-buffer helper functions and macros 2008-08-25 09:57:18 +02:00
trident ALSA: Clean up SG-buffer helper functions and macros 2008-08-25 09:57:18 +02:00
vx222 ALSA: Kill snd_assert() in sound/pci/* 2008-08-13 11:46:38 +02:00
ymfpci ALSA: Kill snd_assert() in sound/pci/* 2008-08-13 11:46:38 +02:00
ad1889.c ALSA: Kill snd_assert() in sound/pci/* 2008-08-13 11:46:38 +02:00
ad1889.h [ALSA] ad1889: add AD1889 driver 2005-09-12 10:40:17 +02:00
ak4531_codec.c ALSA: Kill snd_assert() in sound/pci/* 2008-08-13 11:46:38 +02:00
als300.c [ALSA] sound: replace remaining __FUNCTION__ occurences 2008-04-24 12:00:20 +02:00
als4000.c ALSA: ALS4000 driver work, step 2 2008-08-25 09:57:48 +02:00
atiixp_modem.c ALSA: Kill snd_assert() in sound/pci/* 2008-08-13 11:46:38 +02:00
atiixp.c ALSA: atiixp - Add PCI ID for SB600 (1002:4382) 2008-09-04 10:26:36 +02:00
azt3328.c ALSA: Kill snd_assert() in sound/pci/* 2008-08-13 11:46:38 +02:00
azt3328.h ALSA: sound/pci/azt3328.h: no variables for enums 2008-07-27 10:22:25 +02:00
bt87x.c ALSA: Clean up SG-buffer helper functions and macros 2008-08-25 09:57:18 +02:00
cmipci.c ALSA: Kill snd_assert() in sound/pci/* 2008-08-13 11:46:38 +02:00
cs4281.c ALSA: Kill snd_assert() in sound/pci/* 2008-08-13 11:46:38 +02:00
cs5530.c [ALSA] Remove sound/driver.h 2008-01-31 17:29:48 +01:00
ens1370.c ALSA: ALSA: ens1370: communicate PCI device to AC97 2008-07-17 14:29:55 +02:00
ens1371.c
es1938.c ALSA: Kill snd_assert() in sound/pci/* 2008-08-13 11:46:38 +02:00
es1968.c ALSA: Kill snd_assert() in sound/pci/* 2008-08-13 11:46:38 +02:00
fm801.c [ALSA] sound: fm801.c fix shadowed variable warning 2008-04-24 12:00:16 +02:00
intel8x0.c ALSA: intel8x0 - Add quirk for Fujitsu Lifebook P7010 2008-10-10 13:41:32 +02:00
intel8x0m.c ALSA: Kill snd_assert() in sound/pci/* 2008-08-13 11:46:38 +02:00
Kconfig ALSA: create hda_eld.c for ELD routines and proc interface 2008-11-18 07:39:03 +01:00
maestro3.c ALSA: Kill snd_assert() in sound/pci/* 2008-08-13 11:46:38 +02:00
Makefile [ALSA] Make ak4531 local to ens1370 driver 2008-05-30 09:26:09 +02:00
rme32.c [ALSA] sound: rme32.c fix integer as NULL pointer warning 2008-04-24 12:00:16 +02:00
rme96.c [ALSA] sound: rme96.c fix integer as NULL pointer warning 2008-04-24 12:00:17 +02:00
sis7019.c [ALSA] Fix synchronize_irq() bugs, redundancies 2008-04-24 12:00:40 +02:00
sis7019.h [ALSA] sis7019: support the SiS 7019 Audio Accelerator 2008-01-31 17:29:36 +01:00
sonicvibes.c ALSA: Kill snd_assert() in sound/pci/* 2008-08-13 11:46:38 +02:00
via82xx_modem.c ALSA: Clean up SG-buffer helper functions and macros 2008-08-25 09:57:18 +02:00
via82xx.c ALSA: via82xx - check continuous pages in buffer setup 2008-08-25 09:57:43 +02:00