linux/sound/pci/hda
Anssi Hannula 18e391862c ALSA: hda - hdmi: Fallback to ALSA allocation when selecting CA
hdmi_channel_allocation() tries to find a HDMI channel allocation that
matches the number channels in the playback stream and contains only
speakers that the HDMI sink has reported as available via EDID. If no
such allocation is found, 0 (stereo audio) is used.

Using CA 0 causes the audio causes the sink to discard everything except
the first two channels (front left and front right).

However, the sink may be capable of receiving more channels than it has
speakers (and then perform downmix or discard the extra channels), in
which case it is preferable to use a CA that contains extra channels
than to use CA 0 which discards all the non-stereo channels.

Additionally, it seems that HBR (HD) passthrough output does not work on
Intel HDMI codecs when CA is set to 0 (possibly the codec zeroes
channels not present in CA). This happens with all receivers that report
a 5.1 speaker mask since a HBR stream is carried on 8 channels to the
codec.

Add a fallback in the CA selection so that the CA channel count at least
matches the stream channel count, even if the stream contains channels
not present in the sink speaker descriptor.

Thanks to GrimGriefer at OpenELEC forums for discovering that changing
the sink speaker mask allowed HBR output.

Reported-by: GrimGriefer
Reported-by: Ashecrow
Reported-by: Frank Zafka <kafkaesque1978@gmail.com>
Reported-by: Peter Frühberger <fritsch@xbmc.org>
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-09-02 15:04:48 +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 - Make the resume of digital beep setup proper 2013-03-18 12:58:48 +01: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 - add flags and routines to get devices selection info for DP1.2 MST 2013-08-27 12:15:09 +02:00
hda_codec.h ALSA: hda - add device entry and inactive flag to unsolicited response 2013-08-27 12:15:28 +02:00
hda_eld.c ALSA: hda - bug fix on return value when getting HDMI ELD info 2013-04-02 11:55:23 +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_trace.h ALSA: hda - Add tracepoints to HD-audio controller driver 2012-10-30 10:39:59 +01:00
hda_intel.c ALSA: hda - Try to allow haswell HDMI audio even without powerwell 2013-08-19 15:46:17 +02: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 - Fix missing Mic Boost controls for VIA codecs 2013-06-19 07:54:09 +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
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
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: Replace the magic number 44 with const 2013-06-28 12:14:44 +02:00
patch_cirrus.c ALSA: hda - Fix pin configurations for MacBook Air 4,2 2013-06-17 10:22:46 +02:00
patch_cmedia.c ALSA: hda - Remove superfluous header inclusions 2013-01-21 16:10:56 +01:00
patch_conexant.c ALSA: hda - Headphone mic support for an Asus/Conexant device 2013-07-16 11:57:37 +02:00
patch_hdmi.c ALSA: hda - hdmi: Fallback to ALSA allocation when selecting CA 2013-09-02 15:04:48 +02:00
patch_realtek.c ASoC: Updates for v3.12 2013-08-23 14:12:22 +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 ASoC: Updates for v3.12 2013-08-23 14:12:22 +02:00
patch_via.c ALSA: hda - Clearing jackpoll_interval avoid pending work 2013-07-29 14:19:03 +02:00