linux/sound/pci
Andres Salomon 222fa0b0d2 [ALSA] cs5535audio: fix PRD register save/restore power management race
In the suspend path, we currently save the PRD registers and then disable DMA.
This is racy; the sound hardware might update the PRD register as it finishes
processing some DMA pages between when we've saved the PRD registers and
when DMA actually gets disabled.  Furthermore, we actively check whether or
not DMA is enabled before saving PRD registers; there's no reason to do that,
as the PRD registers should not update when we twiddle the ACC_BM[x]_CMD
register(s).  Worst case, we save the PRD registers twice; even powering
down the ACC shouldn't mess with the PRD registers (according to the 5536
data sheet, section 5.3.7.4, power-down procedure).  This patch reworks
all that to first disable DMA, and then save PRD registers.

Signed-off-by: Andres Salomon <dilinger@debian.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
2007-10-16 15:59:52 +02:00
..
ac97 [ALSA] ac97 - Suppress the reset of audio-codec from modem-codec at resume 2007-10-16 15:59:34 +02:00
ali5451 [ALSA] Clean up with common snd_ctl_boolean_*_info callbacks 2007-10-16 15:57:45 +02:00
au88x0 [ALSA] au88x0: mem leak fix in snd_vortex_create() 2007-10-16 15:58:25 +02:00
ca0106 [ALSA] remove incorrect usage of SNDRV_PCM_INFO_SYNC_START and snd_pcm_set_sync() 2007-10-16 15:58:52 +02:00
cs46xx [ALSA] Clean up Makefile 2007-10-16 15:58:05 +02:00
cs5535audio [ALSA] cs5535audio: fix PRD register save/restore power management race 2007-10-16 15:59:52 +02:00
echoaudio [ALSA] Clean up with common snd_ctl_boolean_*_info callbacks 2007-10-16 15:57:45 +02:00
emu10k1 [ALSA] emu10k1: There's no need to cast vmalloc() return value in snd_emu10k1_create() 2007-10-16 15:59:31 +02:00
hda [ALSA] hda-codec - Fix support for sigmatel codecs that have 2 or more ADCs 2007-10-16 15:59:50 +02:00
ice1712 [ALSA] check for linked substreams of different cards 2007-10-16 15:58:13 +02:00
korg1212 [ALSA] remove incorrect usage of SNDRV_PCM_INFO_SYNC_START and snd_pcm_set_sync() 2007-10-16 15:58:52 +02:00
mixart [ALSA] remove incorrect usage of SNDRV_PCM_INFO_SYNC_START and snd_pcm_set_sync() 2007-10-16 15:58:52 +02:00
nm256 [ALSA] remove incorrect usage of SNDRV_PCM_INFO_SYNC_START and snd_pcm_set_sync() 2007-10-16 15:58:52 +02:00
pcxhr [ALSA] remove incorrect usage of SNDRV_PCM_INFO_SYNC_START and snd_pcm_set_sync() 2007-10-16 15:58:52 +02:00
riptide [ALSA] add MODULE_FIRMWARE entries 2007-05-11 16:56:14 +02:00
rme9652 [ALSA] hdsp - Add support for latset RME9632 revisions 2007-10-16 15:59:37 +02:00
trident [ALSA] Clean up with common snd_ctl_boolean_*_info callbacks 2007-10-16 15:57:45 +02:00
vx222 [ALSA] Add even more 'const' to everything related to TLV 2007-02-09 09:03:19 +01:00
ymfpci [ALSA] ymfpci: fix volume handling of the 44.1 kHz slot 2007-10-16 15:57:50 +02:00
Kconfig [ALSA] cmipci: fix handling of FM/MIDI port addresses 2007-10-16 15:59:22 +02:00
Makefile [ALSA] Add support for Cyrix/NatSemi Geode CS5530 (VSA1) 2007-07-20 11:11:19 +02:00
ad1889.c [ALSA] Remove IRQF_DISABLED for shared PCI irqs 2006-12-20 08:55:57 +01:00
ad1889.h
als300.c [ALSA] Disable debugging output for the ALS300 driver 2007-07-20 11:11:21 +02:00
als4000.c
atiixp.c PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
atiixp_modem.c PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
azt3328.c [ALSA] azt3328.c: small cleanup patch 2007-05-11 16:55:52 +02:00
azt3328.h [ALSA] azt3328.c: small cleanup patch 2007-05-11 16:55:52 +02:00
bt87x.c [ALSA] bt87x - Add known PCI ID entries 2007-10-16 15:59:23 +02:00
cmipci.c [ALSA] cmipci: show real chip name in card name 2007-10-16 15:59:46 +02:00
cs4281.c [ALSA] remove incorrect usage of SNDRV_PCM_INFO_SYNC_START and snd_pcm_set_sync() 2007-10-16 15:58:52 +02:00
cs5530.c [ALSA] Add support for Cyrix/NatSemi Geode CS5530 (VSA1) 2007-07-20 11:11:19 +02:00
ens1370.c [ALSA] Clean up with common snd_ctl_boolean_*_info callbacks 2007-10-16 15:57:45 +02:00
ens1371.c
es1938.c [ALSA] Clean up with common snd_ctl_boolean_*_info callbacks 2007-10-16 15:57:45 +02:00
es1968.c [ALSA] es1968 - Fix stuttering capture 2007-05-11 16:55:54 +02:00
fm801.c PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
intel8x0.c [ALSA] Include quirks from Ubuntu Dapper/Edgy/Feisty 2007-05-16 12:23:03 +02:00
intel8x0m.c [ALSA] ac97 - Suppress power-saving mode on non-supporting drivers 2007-02-09 09:01:09 +01:00
maestro3.c [ALSA] remove incorrect usage of SNDRV_PCM_INFO_SYNC_START and snd_pcm_set_sync() 2007-10-16 15:58:52 +02:00
rme32.c [ALSA] pcm: add snd_pcm_rate_to_rate_bit() helper 2007-10-16 15:58:54 +02:00
rme96.c [ALSA] pcm: add snd_pcm_rate_to_rate_bit() helper 2007-10-16 15:58:54 +02:00
sonicvibes.c [ALSA] Remove IRQF_DISABLED for shared PCI irqs 2006-12-20 08:55:57 +01:00
via82xx.c [ALSA] Clean up with common snd_ctl_boolean_*_info callbacks 2007-10-16 15:57:45 +02:00
via82xx_modem.c [ALSA] Fix invalid schedule_timeout_interruptible() 2007-07-20 11:11:36 +02:00