aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorJaroslav Kysela <perex@suse.cz>2004-05-17 19:31:16 +0200
committerJaroslav Kysela <perex@suse.cz>2004-05-17 19:31:16 +0200
commit952f2fb223c3a1a7fbc699e48139402b7bdde857 (patch)
treed1e44cb9384b7f729f14966b77edc60228e5243b /sound
parent3f06603e6988ab30b80514a10333ec95caf52a51 (diff)
downloadhistory-952f2fb223c3a1a7fbc699e48139402b7bdde857.tar.gz
ALSA CVS update - Takashi Iwai <tiwai@suse.de>
PCM Midlevel fixed the buffer id confliction in the case of CONTINUOUS or ISA buffers.
Diffstat (limited to 'sound')
-rw-r--r--sound/core/pcm_memory.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sound/core/pcm_memory.c b/sound/core/pcm_memory.c
index 0acc3c06980a69..ab70ba7b6e35c0 100644
--- a/sound/core/pcm_memory.c
+++ b/sound/core/pcm_memory.c
@@ -224,9 +224,13 @@ static int snd_pcm_lib_preallocate_pages1(snd_pcm_substream_t *substream,
*/
static inline void setup_pcm_id(snd_pcm_substream_t *subs)
{
- if (! subs->dma_device.id)
+ if (! subs->dma_device.id) {
subs->dma_device.id = subs->pcm->device << 16 |
subs->stream << 8 | (subs->number + 1);
+ if (subs->dma_device.type == SNDRV_DMA_TYPE_CONTINUOUS ||
+ subs->dma_device.dev == NULL)
+ subs->dma_device.id |= (subs->pcm->card->number + 1) << 24;
+ }
}
/**