linux/sound/pci/hda
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
..
hda_beep.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
hda_beep.h ALSA: hda - Fix beep_mode option value 2009-11-16 15:33:49 +01:00
hda_codec.c ALSA: hda - Make common input-jack helper functions 2011-03-03 14:40:14 +01:00
hda_codec.h ALSA: hda - Make common input-jack helper functions 2011-03-03 14:40:14 +01:00
hda_eld.c ALSA: HDA: Fix dmesg output of HDMI supported bits 2011-01-25 20:06:16 +01:00
hda_generic.c ALSA: hda - consitify string arrays 2011-01-18 07:43:17 +01:00
hda_hwdep.c ALSA: hda - Ensure codec patch files are checked for the correct codec ID 2010-07-26 10:28:01 +02:00
hda_intel.c ALSA: hda: Prevent writing ICH6_PCIREG_TCSEL on AMD systems 2011-03-10 17:44:34 +01:00
hda_local.h ALSA: hda - Make common input-jack helper functions 2011-03-03 14:40:14 +01:00
hda_proc.c ALSA: hda - consitify string arrays 2011-01-18 07:43:17 +01:00
Kconfig ALSA: hda - Merge all HDMI modules into the unified module 2010-09-20 10:02:29 +02:00
Makefile ALSA: hda - Merge all HDMI modules into the unified module 2010-09-20 10:02:29 +02:00
patch_analog.c ALSA: HDA: New AD1984A model for Dell Precision R5500 2011-03-25 11:31:54 +01:00
patch_ca0110.c ALSA: hda - Fix wrong SPDIF NID assignment for CA0110 2010-10-21 08:55:13 +02:00
patch_cirrus.c ALSA: hda - Don't set to D3 in Cirrus errata init verbs 2011-03-03 15:16:33 +01:00
patch_cmedia.c ALSA: hda - consitify string arrays 2011-01-18 07:43:17 +01:00
patch_conexant.c ALSA: HDA: Fix dock mic for Lenovo X220-tablet 2011-04-05 09:17:10 +02:00
patch_hdmi.c ALSA: hda - HDMI: Fix MCP7x audio infoframe checksums 2011-04-07 12:04:00 +02:00
patch_realtek.c ALSA: hda - Fix pin-config of Gigabyte mobo 2011-03-28 12:38:30 +02:00
patch_si3054.c ALSA: hda - add more NID->Control mapping 2009-12-15 09:33:04 +01:00
patch_sigmatel.c ALSA: hda - pin-adc-mux-dmic auto-configuration of 92HD8X codecs 2011-03-14 15:38:57 +01:00
patch_via.c ALSA: hda - VIA: Fix VT1708 can't build up Headphone control issue 2011-03-22 12:56:06 +01:00