aboutsummaryrefslogtreecommitdiffstats
path: root/sound/drivers/aloop.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/drivers/aloop.c')
-rw-r--r--sound/drivers/aloop.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/sound/drivers/aloop.c b/sound/drivers/aloop.c
index a0da7755fcea..4067f1548949 100644
--- a/sound/drivers/aloop.c
+++ b/sound/drivers/aloop.c
@@ -575,7 +575,8 @@ static void loopback_runtime_free(struct snd_pcm_runtime *runtime)
575static int loopback_hw_params(struct snd_pcm_substream *substream, 575static int loopback_hw_params(struct snd_pcm_substream *substream,
576 struct snd_pcm_hw_params *params) 576 struct snd_pcm_hw_params *params)
577{ 577{
578 return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(params)); 578 return snd_pcm_lib_alloc_vmalloc_buffer(substream,
579 params_buffer_bytes(params));
579} 580}
580 581
581static int loopback_hw_free(struct snd_pcm_substream *substream) 582static int loopback_hw_free(struct snd_pcm_substream *substream)
@@ -587,7 +588,7 @@ static int loopback_hw_free(struct snd_pcm_substream *substream)
587 mutex_lock(&dpcm->loopback->cable_lock); 588 mutex_lock(&dpcm->loopback->cable_lock);
588 cable->valid &= ~(1 << substream->stream); 589 cable->valid &= ~(1 << substream->stream);
589 mutex_unlock(&dpcm->loopback->cable_lock); 590 mutex_unlock(&dpcm->loopback->cable_lock);
590 return snd_pcm_lib_free_pages(substream); 591 return snd_pcm_lib_free_vmalloc_buffer(substream);
591} 592}
592 593
593static unsigned int get_cable_index(struct snd_pcm_substream *substream) 594static unsigned int get_cable_index(struct snd_pcm_substream *substream)
@@ -740,6 +741,8 @@ static struct snd_pcm_ops loopback_playback_ops = {
740 .prepare = loopback_prepare, 741 .prepare = loopback_prepare,
741 .trigger = loopback_trigger, 742 .trigger = loopback_trigger,
742 .pointer = loopback_pointer, 743 .pointer = loopback_pointer,
744 .page = snd_pcm_lib_get_vmalloc_page,
745 .mmap = snd_pcm_lib_mmap_vmalloc,
743}; 746};
744 747
745static struct snd_pcm_ops loopback_capture_ops = { 748static struct snd_pcm_ops loopback_capture_ops = {
@@ -751,6 +754,8 @@ static struct snd_pcm_ops loopback_capture_ops = {
751 .prepare = loopback_prepare, 754 .prepare = loopback_prepare,
752 .trigger = loopback_trigger, 755 .trigger = loopback_trigger,
753 .pointer = loopback_pointer, 756 .pointer = loopback_pointer,
757 .page = snd_pcm_lib_get_vmalloc_page,
758 .mmap = snd_pcm_lib_mmap_vmalloc,
754}; 759};
755 760
756static int __devinit loopback_pcm_new(struct loopback *loopback, 761static int __devinit loopback_pcm_new(struct loopback *loopback,
@@ -771,10 +776,6 @@ static int __devinit loopback_pcm_new(struct loopback *loopback,
771 strcpy(pcm->name, "Loopback PCM"); 776 strcpy(pcm->name, "Loopback PCM");
772 777
773 loopback->pcm[device] = pcm; 778 loopback->pcm[device] = pcm;
774
775 snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_CONTINUOUS,
776 snd_dma_continuous_data(GFP_KERNEL),
777 0, 2 * 1024 * 1024);
778 return 0; 779 return 0;
779} 780}
780 781