linux/sound/pci
Anssi Hannula f06ab794af ALSA: hda - hdmi: Set converter channel count even without sink
Since commit 1df5a06a ("ALSA: hda - hdmi: Fix programmed active channel
count") channel count is no longer being set if monitor_present is 0.
This is because setting the count was moved after the CA value is
determined, which is only after the monitor_present check in
hdmi_setup_audio_infoframe().

Unfortunately, in some cases, such as with a non-spec-compliant codec or
with a problematic video driver, monitor_present is always 0. As a
specific example, this seems to happen with gen1 ATV (SiI1390 codec),
causing left-channel-only stereo playback (multi-channel playback has
apparently never worked with this codec despite it reporting 8 channels,
reason unknown).

Simply setting converter channel count without setting the pin infoframe
and channel mapping as well does not theoretically make much sense as
this will just mean they are out-of-sync and multichannel playback will
have a wrong channel mapping.

However, adding back just setting the converter channel count even in
no-monitor case is the safest change which at least fixes the stereo
playback regression on SiI1390 codec. Do that.

Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Reported-by: Stephan Raue <stephan@openelec.tv>
Tested-by: Stephan Raue <stephan@openelec.tv>
Cc: <stable@vger.kernel.org> # 3.12+
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2014-05-05 16:28:10 +02:00
..
ac97 ALSA: ac97: Use standard printk helpers 2014-02-26 16:45:23 +01:00
ali5451 ALSA: ali5451: Use standard printk helpers 2014-02-26 16:45:23 +01:00
asihpi ALSA: asihpi: fix some indenting in snd_card_asihpi_pcm_new() 2014-03-31 10:46:47 +02:00
au88x0 ALSA: pci: Convert to snd_card_new() with a device pointer 2014-02-12 11:17:52 +01:00
aw2 ALSA: aw2: Use standard printk helpers 2014-02-26 16:45:24 +01:00
ca0106 ALSA: ca0106: Use standard printk helpers 2014-02-26 16:45:24 +01:00
cs46xx ALSA: cs46xx: Use standard printk helpers 2014-02-26 16:45:25 +01:00
cs5535audio ALSA: cs5535audio: Use standard printk helpers 2014-02-26 16:45:25 +01:00
ctxfi ALSA: pci: Convert to snd_card_new() with a device pointer 2014-02-12 11:17:52 +01:00
echoaudio ALSA: echoaudio: use after free on error 2014-03-05 12:11:54 +01:00
emu10k1 ALSA: emu10k1: Fix possible NULL dereference 2014-03-05 12:15:56 +01:00
hda ALSA: hda - hdmi: Set converter channel count even without sink 2014-05-05 16:28:10 +02:00
ice1712 ALSA: ice1712: Fix boundary checks in PCM pointer ops 2014-04-08 16:58:34 +02:00
korg1212 ALSA: pci: Convert to snd_card_new() with a device pointer 2014-02-12 11:17:52 +01:00
lola ALSA: lola: NULL deref on allocation error 2014-03-05 12:10:15 +01:00
lx6464es ALSA: lx6464es: Use standard printk helpers 2014-02-26 16:45:28 +01:00
mixart ALSA: mixart: Use standard printk helpers 2014-02-26 16:45:29 +01:00
nm256 ALSA: nm256: Use standard printk helpers 2014-02-26 16:45:29 +01:00
oxygen Merge branch 'for-next' into for-linus 2014-03-31 12:16:31 +02:00
pcxhr ALSA: pcxhr: Use standard printk helpers 2014-02-26 16:45:30 +01:00
riptide ALSA: pci: Convert to snd_card_new() with a device pointer 2014-02-12 11:17:52 +01:00
rme9652 ALSA: rme9652: Use standard printk helpers 2014-02-26 16:45:32 +01:00
trident ALSA: trident: Use standard printk helpers 2014-02-26 16:45:32 +01:00
vx222 ALSA: vx222: Use standard printk helpers 2014-02-26 16:45:33 +01:00
ymfpci ALSA: ymfpci: Use standard printk helpers 2014-02-26 16:45:33 +01:00
ad1889.c ALSA: ad1889: Use standard printk helpers 2014-02-26 16:45:10 +01:00
ad1889.h
ak4531_codec.c ALSA: pci: remove __dev* attributes 2012-12-07 07:20:55 +01:00
als300.c ALSA: als300: Use standard printk helpers 2014-02-26 16:45:11 +01:00
als4000.c ALSA: als4000: Use standard printk helpers 2014-02-26 16:45:12 +01:00
atiixp_modem.c ALSA: atiixp-modem: Use standard printk helpers 2014-02-26 16:45:13 +01:00
atiixp.c ALSA: atiixp: Use standard printk helpers 2014-02-26 16:45:12 +01:00
azt3328.c ALSA: azt3328: Use standard printk helpers 2014-02-26 16:45:14 +01:00
azt3328.h
bt87x.c ALSA: bt87x: Use standard printk helpers 2014-02-26 16:45:14 +01:00
cmipci.c ALSA: cmipci: Use standard printk helpers 2014-02-26 16:45:15 +01:00
cs4281.c ALSA: cs4281: Use standard printk helpers 2014-02-26 16:45:15 +01:00
cs5530.c ALSA: cs5530: Use standard printk helpers 2014-02-26 16:45:16 +01:00
ens1370.c ALSA: ens137x: Use standard printk helpers 2014-02-26 16:45:16 +01:00
ens1371.c
es1938.c ALSA: es1938: Use standard printk helpers 2014-02-26 16:45:17 +01:00
es1968.c ALSA: es1968: Use standard printk helpers 2014-02-26 16:45:17 +01:00
fm801.c ALSA: fm801: Use standard printk helpers 2014-02-26 16:45:18 +01:00
intel8x0.c ALSA: intel8x0: Use standard printk helpers 2014-02-26 16:45:18 +01:00
intel8x0m.c ALSA: intel8x0m: Use standard printk helpers 2014-02-26 16:45:19 +01:00
Kconfig Kconfig: rename HAS_IOPORT to HAS_IOPORT_MAP 2014-04-07 16:36:11 -07:00
maestro3.c ALSA: maestro3: Use standard printk helpers 2014-02-26 16:45:19 +01:00
Makefile ALSA: Add the driver for Digigram Lola PCI-e boards 2011-05-03 16:31:05 +02:00
rme32.c ALSA: rme32: Use standard printk helpers 2014-02-26 16:45:20 +01:00
rme96.c ALSA: rme96: Use standard printk helpers 2014-02-26 16:45:20 +01:00
sis7019.c ALSA: pci: Convert to snd_card_new() with a device pointer 2014-02-12 11:17:52 +01:00
sis7019.h
sonicvibes.c ALSA: sonicvibes: Use standard printk helpers 2014-02-26 16:45:21 +01:00
via82xx_modem.c ALSA: via82xx_modem: Use standard printk helpers 2014-02-26 16:45:22 +01:00
via82xx.c ALSA: via82xx: Use standard printk helpers 2014-02-26 16:45:21 +01:00