linux/sound/pci/hda
Anssi Hannula 1df5a06abb ALSA: hda - hdmi: Fix programmed active channel count
Currently the converter channel count is set to the number of actual
input channels. The audio infoframe channel count field is set
similarly.

However, sometimes the used channel map does not map all input channels
to outputs. Notably, 3 channel modes (e.g. 2.1) require a dummy input
channel so there are 4 input channels. According to the HDA
specification, converter channel count should be programmed according to
the number of _active_ channels.

On Intel HDMI codecs (but not on NVIDIA), setting the converter channel
to a higher value than there are actually mapped channels to HDMI slots
will cause no audio to be output at all.

Note that the effects of this issue are currently partially masked by
other bugs that prevent the driver from actually unmapping channels in
certain cases. For example, if a 4 channel stream is first created and
prepared, it gets a FL,FR,RL,RR mapping (ALSA->HDMI slot mapping 0->0,
1->1, 2->4, 3->5). If one thereafter assigns a FR,FL,FC mapping to it,
the driver will remap 2->3 but fail to unmap 2->4 and 3->5, so there are
still 4 active channels and the issue will not trigger in this case.
These bugs will be fixed separately.

Fix the channel counts in the converter channel count field and in the
audio infoframe channel count field to match the actual number of active
channels.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-10-07 12:47:06 +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 sound fixes for 3.12-rc1 2013-09-12 08:52:41 -07: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: hda/ca0132: Staticize codec_send_command 2013-09-13 14:36:32 +02:00
patch_cirrus.c ALSA: hda - Add CS4208 codec support for MacBook 6,1 and 6,2 2013-09-09 16:09:57 +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: Fix programmed active channel count 2013-10-07 12:47:06 +02:00
patch_realtek.c ASoC: Fixes for v3.12 2013-09-11 12:38:45 +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