linux/sound/pci
Takashi Iwai f708eb1d71 ALSA: intel8x0 - Fix PCM position craziness
The PCM pointer callback sometimes returns invalid positions and this
screws up the hw_ptr updater in PCM core.  Especially since now the
jiffies check is optional with xrun_debug, the invalid position is
handled as is, and causes serious sound skips, etc.

This patch simplifies the position-fix strategy in intel8x0 to be more
robust:
- just falls back to the last position if bogus position is detected
- another sanity check for the backward move of the position due to
  a race of register update and the base-index update

This patch is applicable also for 2.6.30.

Tested-by: David Miller <davem@davemloft.net>
Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-06-15 12:36:06 +02:00
..
ac97 Merge branch 'fix/misc' into for-linus 2009-05-22 19:29:08 +02:00
ali5451 dma-mapping: replace all DMA_31BIT_MASK macro with DMA_BIT_MASK(31) 2009-04-07 08:31:11 -07:00
au88x0 dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
aw2 dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
ca0106 ALSA: Kill truncate warning by shortening Sigmatel-specific AC97 control name 2009-05-22 19:27:13 +02:00
cs46xx Merge branch 'topic/misc' into for-linus 2009-03-24 00:35:50 +01:00
cs5535audio dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
echoaudio ALSA: indigo-express: add missing 64KHz flags 2009-04-28 11:19:39 +02:00
emu10k1 Merge branch 'fix/misc' into for-linus 2009-04-19 11:40:02 +02:00
hda ALSA: hda - Compaq Presario CQ60 patching for Conexant 2009-05-28 07:36:20 +02:00
ice1712 dma-mapping: replace all DMA_28BIT_MASK macro with DMA_BIT_MASK(28) 2009-04-07 08:31:12 -07:00
korg1212 ALSA: Add missing SNDRV_PCM_INFO_BATCH flag to some drivers 2009-04-28 15:06:44 +02:00
mixart dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
nm256 ALSA: Convert to snd_card_create() in sound/pci/* 2009-01-12 15:20:55 +01:00
oxygen Merge branch 'topic/snd_card_new-err' into for-linus 2009-03-24 00:35:35 +01:00
pcxhr dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
riptide ALSA: riptide: postfix increment and off by one 2009-05-14 08:41:40 +02:00
rme9652 Merge branch 'topic/hwdep-cleanup' into for-linus 2009-03-24 00:35:41 +01:00
trident dma-mapping: replace all DMA_30BIT_MASK macro with DMA_BIT_MASK(30) 2009-04-07 08:31:11 -07:00
vx222 Merge branch 'topic/misc' into for-linus 2009-03-24 00:35:50 +01:00
ymfpci Merge branch 'topic/misc' into for-linus 2009-03-24 00:35:50 +01:00
ad1889.c dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32) 2009-04-07 08:31:11 -07:00
ad1889.h
ak4531_codec.c ALSA: Fix missing KERN_* prefix to printk in sound/pci 2009-02-05 16:11:31 +01:00
als300.c dma-mapping: replace all DMA_28BIT_MASK macro with DMA_BIT_MASK(28) 2009-04-07 08:31:12 -07:00
als4000.c dma-mapping: replace all DMA_24BIT_MASK macro with DMA_BIT_MASK(24) 2009-04-07 08:31:12 -07:00
atiixp_modem.c ALSA: Convert to snd_card_create() in sound/pci/* 2009-01-12 15:20:55 +01:00
atiixp.c ALSA: Atiixp: Add SSID for mute_led quirk (unknown HP model) 2009-04-20 13:42:07 +02:00
azt3328.c dma-mapping: replace all DMA_24BIT_MASK macro with DMA_BIT_MASK(24) 2009-04-07 08:31:12 -07:00
azt3328.h ALSA: sound/pci/azt3328.h: no variables for enums 2008-07-27 10:22:25 +02:00
bt87x.c ALSA: Add missing SNDRV_PCM_INFO_BATCH flag to some drivers 2009-04-28 15:06:44 +02:00
cmipci.c ALSA: Fix Trivial Warnining in sound/pci/cmipci.c 2009-04-27 13:53:13 +02:00
cs4281.c Merge branch 'topic/misc' into for-linus 2009-03-24 00:35:50 +01:00
cs5530.c ALSA: Convert to snd_card_create() in sound/pci/* 2009-01-12 15:20:55 +01:00
ens1370.c Merge branch 'topic/misc' into for-linus 2009-03-24 00:35:50 +01:00
ens1371.c
es1938.c dma-mapping: replace all DMA_24BIT_MASK macro with DMA_BIT_MASK(24) 2009-04-07 08:31:12 -07:00
es1968.c dma-mapping: replace all DMA_28BIT_MASK macro with DMA_BIT_MASK(28) 2009-04-07 08:31:12 -07:00
fm801.c ALSA: Convert to snd_card_create() in sound/pci/* 2009-01-12 15:20:55 +01:00
intel8x0.c ALSA: intel8x0 - Fix PCM position craziness 2009-06-15 12:36:06 +02:00
intel8x0m.c Merge branch 'topic/intel8x0' into for-linus 2009-03-24 00:36:13 +01:00
Kconfig V4L/DVB (10771): tea575x-tuner: convert it to V4L2 API 2009-03-30 12:43:02 -03:00
maestro3.c dma-mapping: replace all DMA_28BIT_MASK macro with DMA_BIT_MASK(28) 2009-04-07 08:31:12 -07:00
Makefile [ALSA] Make ak4531 local to ens1370 driver 2008-05-30 09:26:09 +02:00
rme32.c ALSA: Convert to snd_card_create() in sound/pci/* 2009-01-12 15:20:55 +01:00
rme96.c ALSA: Convert to snd_card_create() in sound/pci/* 2009-01-12 15:20:55 +01:00
sis7019.c dma-mapping: replace all DMA_30BIT_MASK macro with DMA_BIT_MASK(30) 2009-04-07 08:31:11 -07:00
sis7019.h
sonicvibes.c dma-mapping: replace all DMA_24BIT_MASK macro with DMA_BIT_MASK(24) 2009-04-07 08:31:12 -07:00
via82xx_modem.c Merge branch 'topic/misc' into for-linus 2009-03-24 00:35:50 +01:00
via82xx.c sound: via82xx: fix DXS volume range 2009-05-05 16:01:32 +02:00