diff options
author | Jaroslav Kysela <perex@suse.cz> | 2004-05-17 19:31:16 +0200 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2004-05-17 19:31:16 +0200 |
commit | 952f2fb223c3a1a7fbc699e48139402b7bdde857 (patch) | |
tree | d1e44cb9384b7f729f14966b77edc60228e5243b /sound | |
parent | 3f06603e6988ab30b80514a10333ec95caf52a51 (diff) | |
download | history-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.c | 6 |
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; + } } /** |