android_kernel_motorola_sm6225/sound
Aaron Plattner 1f34852284 ALSA: hda - HDMI: Fix MCP7x audio infoframe checksums
The MCP7x hardware computes the audio infoframe channel count
automatically, but requires the audio driver to set the audio
infoframe checksum manually via the Nv_VERB_SET_Info_Frame_Checksum
control verb.

When audio starts playing, nvhdmi_8ch_7x_pcm_prepare sets the checksum
to (0x71 - chan - chanmask).  For example, for 2ch audio, chan == 1
and chanmask == 0 so the checksum is set to 0x70.  When audio playback
finishes and the device is closed, nvhdmi_8ch_7x_pcm_close resets the
channel formats, causing the channel count to revert to 8ch.  Since
the checksum is not reset, the hardware starts generating audio
infoframes with invalid checksums.  This causes some displays to blank
the video.

Fix this by updating the checksum and channel mask when the device is
closed and also when it is first initialized.  In addition, make sure
that the channel mask is appropriate for an 8ch infoframe by setting
it to 0x13 (FL FR LFE FC RL RR RLC RRC).

Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Acked-by: Stephen Warren <swarren@nvidia.com>
Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-04-07 12:04:00 +02:00
..
aoa Merge branch 'topic/workq-update' into topic/misc 2010-12-13 09:29:52 +01:00
arm Merge branches 'aaci', 'mmci-dma', 'pl' and 'pl011' into drivers 2011-03-17 11:04:51 +00:00
atmel ALSA: fix invalid hardware.h include in ac97c for AVR32 architecture 2011-01-25 18:07:10 +01:00
core ALSA: pcm: fix infinite loop in snd_pcm_update_hw_ptr0() 2011-04-01 18:01:23 +02:00
drivers ALSA: aloop - Fix possible IRQ lock inversion 2011-03-18 07:31:53 +01:00
firewire ALSA: firewire-speakers: fix hang when unplugging a running device 2011-03-30 08:56:57 +02:00
i2c sound: don't use flush_scheduled_work() 2010-12-13 09:22:44 +01:00
isa tree-wide: fix comment/printk typos 2010-11-01 15:38:34 -04:00
mips sound: Add missing spin_unlock 2010-05-27 09:47:02 +02:00
oss sound/oss/opl3: validate voice and channel indexes 2011-03-23 22:48:13 +01:00
parisc ALSA: sound/parisc: Move dereference after NULL test 2009-10-30 12:01:38 +01:00
pci ALSA: hda - HDMI: Fix MCP7x audio infoframe checksums 2011-04-07 12:04:00 +02:00
pcmcia ALSA: use linux/io.h to fix compile warnings 2011-02-02 17:49:53 +01:00
ppc ALSA: powermac - Allow input from microphone on Tumbler 2011-02-28 11:19:17 +01:00
sh sound: sh: ctrl_in/outX to __raw_read/writeX conversion. 2010-10-27 15:53:50 +09:00
soc Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 2011-03-24 09:50:13 -07:00
sparc dt/sound: Eliminate users of of_platform_{,un}register_driver 2011-02-28 13:22:44 -07:00
spi ALSA: AT73C213: Rectify misleading comment. 2010-11-11 02:03:29 +01:00
synth ALSA: emux: Add trivial compat ioctl handler 2010-09-14 16:18:11 +02:00
usb ALSA: usb-audio: define another USB ID for a buggy USB MIDI cable 2011-04-06 08:05:30 +02:00
ac97_bus.c sound: Fixed line limit issue in sound/ac97_bus.c 2010-12-06 16:09:49 +01:00
Kconfig ALSA: add LaCie FireWire Speakers/Griffin FireWave Surround driver 2011-03-15 08:42:22 +01:00
last.c
Makefile ALSA: add LaCie FireWire Speakers/Griffin FireWave Surround driver 2011-03-15 08:42:22 +01:00
sound_core.c sound: Use sound_register_*() for additional OSS minor devices 2011-03-09 20:10:37 +01:00
sound_firmware.c sound: read i_size with i_size_read() 2011-03-18 15:14:57 +01:00