linux/sound/pci/hda
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
..
Kconfig ALSA: hda - remove PCI dependency in Kconfig 2014-03-01 11:23:55 +01:00
Makefile ALSA: hda - remove PCI dependency in Kconfig 2014-03-01 11:23:55 +01: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 - Inform the unexpectedly ignored pins by auto-parser 2014-03-25 10:02:01 +01: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 - Fix registration of beep input device 2014-02-28 14:02:21 +01:00
hda_beep.h ALSA: hda - Fix registration of beep input device 2014-02-28 14:02:21 +01:00
hda_codec.c ALSA: hda - Fix registration of beep input device 2014-02-28 14:02:21 +01:00
hda_codec.h ALSA: hda - Enable sysfs attributes without CONFIG_SND_HDA_RECONFIG 2014-02-25 12:12:55 +01:00
hda_controller.c ALSA: hda - Suppress CORBRP clear on Nvidia controller chips 2014-04-29 18:41:22 +02:00
hda_controller.h ALSA: hda - Make full_reset boolean 2014-04-09 14:48:07 +02:00
hda_eld.c ALSA: hda - Replace with standard printk 2014-02-25 12:27:32 +01:00
hda_generic.c ALSA: hda - Fix registration of beep input device 2014-02-28 14:02:21 +01:00
hda_generic.h Merge branch 'for-linus' into for-next 2014-02-12 10:34:27 +01:00
hda_hwdep.c ALSA: hda - Add sysfs to codec object, too 2014-02-25 12:12:54 +01:00
hda_i915.c ALSA: hda - Replace with standard printk 2014-02-25 12:27:32 +01: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 - Suppress CORBRP clear on Nvidia controller chips 2014-04-29 18:41:22 +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 - Kill EXPORT_SYMBOL_HDA() 2013-12-19 14:36:19 +01:00
hda_jack.h ALSA: hda - Add a block_report flag to jacks 2013-11-07 14:03:17 +01:00
hda_local.h ALSA: hda - Replace with standard printk 2014-02-25 12:27:32 +01:00
hda_priv.h ALSA: hda - Suppress CORBRP clear on Nvidia controller chips 2014-04-29 18:41:22 +02:00
hda_proc.c ALSA: hda - Add parameter for dumping processing coefficients 2014-01-29 16:39:13 +01:00
hda_sysfs.c ALSA: hda - Replace with standard printk 2014-02-25 12:27:32 +01:00
hda_trace.h ALSA: hda - Clean up CONFIG_SND_HDA_POWER_SAVE 2012-08-30 07:50:13 -07:00
patch_analog.c ASoC: Updates for v3.15 2014-03-13 09:53:25 +01:00
patch_ca0110.c ALSA: hda - Remove superfluous inclusion of linux/pci.h 2014-02-15 10:12:12 +01:00
patch_ca0132.c ALSA: hda - Replace with standard printk 2014-02-25 12:27:32 +01:00
patch_cirrus.c ALSA: hda - Remove superfluous inclusion of linux/pci.h 2014-02-15 10:12:12 +01:00
patch_cmedia.c ALSA: hda - Replace with standard printk 2014-02-25 12:27:32 +01:00
patch_conexant.c ALSA: hda - Fix registration of beep input device 2014-02-28 14:02:21 +01:00
patch_hdmi.c ALSA: hda - hdmi: Set converter channel count even without sink 2014-05-05 16:28:10 +02:00
patch_realtek.c ALSA: hda - add headset mic detect quirk for a Dell laptop 2014-04-30 12:36:48 +02:00
patch_si3054.c ALSA: hda - Replace with standard printk 2014-02-25 12:27:32 +01:00
patch_sigmatel.c ALSA: hda/sigmatel - Allow auto-switching for dock line-in of HP laptops 2014-02-27 16:24:53 +01:00
patch_via.c ALSA: hda - Make snd_hda_gen_spec_free() static 2014-02-10 18:23:57 +01:00
thinkpad_helper.c ALSA: hda - Replace with standard printk 2014-02-25 12:27:32 +01:00