ALSA: firewire: Convert to the common vmalloc memalloc
[sfrench/cifs-2.6.git] / sound / firewire / oxfw / oxfw-pcm.c
index 74bd1811cec2943f7c9a39b2180d2b0b9cba7ae1..9124603edabe58690d90562f0aa00d9413909d84 100644 (file)
@@ -239,8 +239,7 @@ static int pcm_capture_hw_params(struct snd_pcm_substream *substream,
        struct snd_oxfw *oxfw = substream->private_data;
        int err;
 
-       err = snd_pcm_lib_alloc_vmalloc_buffer(substream,
-                                              params_buffer_bytes(hw_params));
+       err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params));
        if (err < 0)
                return err;
 
@@ -267,8 +266,7 @@ static int pcm_playback_hw_params(struct snd_pcm_substream *substream,
        struct snd_oxfw *oxfw = substream->private_data;
        int err;
 
-       err = snd_pcm_lib_alloc_vmalloc_buffer(substream,
-                                              params_buffer_bytes(hw_params));
+       err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params));
        if (err < 0)
                return err;
 
@@ -303,7 +301,7 @@ static int pcm_capture_hw_free(struct snd_pcm_substream *substream)
 
        mutex_unlock(&oxfw->mutex);
 
-       return snd_pcm_lib_free_vmalloc_buffer(substream);
+       return snd_pcm_lib_free_pages(substream);
 }
 static int pcm_playback_hw_free(struct snd_pcm_substream *substream)
 {
@@ -318,7 +316,7 @@ static int pcm_playback_hw_free(struct snd_pcm_substream *substream)
 
        mutex_unlock(&oxfw->mutex);
 
-       return snd_pcm_lib_free_vmalloc_buffer(substream);
+       return snd_pcm_lib_free_pages(substream);
 }
 
 static int pcm_capture_prepare(struct snd_pcm_substream *substream)
@@ -428,7 +426,6 @@ int snd_oxfw_create_pcm(struct snd_oxfw *oxfw)
                .trigger   = pcm_capture_trigger,
                .pointer   = pcm_capture_pointer,
                .ack       = pcm_capture_ack,
-               .page      = snd_pcm_lib_get_vmalloc_page,
        };
        static const struct snd_pcm_ops playback_ops = {
                .open      = pcm_open,
@@ -440,7 +437,6 @@ int snd_oxfw_create_pcm(struct snd_oxfw *oxfw)
                .trigger   = pcm_playback_trigger,
                .pointer   = pcm_playback_pointer,
                .ack       = pcm_playback_ack,
-               .page      = snd_pcm_lib_get_vmalloc_page,
        };
        struct snd_pcm *pcm;
        unsigned int cap = 0;
@@ -458,6 +454,8 @@ int snd_oxfw_create_pcm(struct snd_oxfw *oxfw)
        snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &playback_ops);
        if (cap > 0)
                snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &capture_ops);
+       snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_VMALLOC,
+                                             NULL, 0, 0);
 
        return 0;
 }