ALSA: caiaq: Use managed buffer allocation
authorTakashi Iwai <tiwai@suse.de>
Mon, 9 Dec 2019 09:49:37 +0000 (10:49 +0100)
committerTakashi Iwai <tiwai@suse.de>
Wed, 11 Dec 2019 06:25:22 +0000 (07:25 +0100)
Clean up the driver with the new managed buffer allocation API.
The hw_params callback became superfluous and dropped.
The hw_free callback still remains because of the substream
deactivation sync call.

Link: https://lore.kernel.org/r/20191209094943.14984-66-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/caiaq/audio.c

index 970eb0865ba3d290de4c4d4d88fe6b491c5cd1a3..8513b120e57e0095c5c3c539ff595b1a0bf10d5d 100644 (file)
@@ -167,17 +167,11 @@ static int snd_usb_caiaq_substream_close(struct snd_pcm_substream *substream)
        return 0;
 }
 
-static int snd_usb_caiaq_pcm_hw_params(struct snd_pcm_substream *sub,
-                                      struct snd_pcm_hw_params *hw_params)
-{
-       return snd_pcm_lib_malloc_pages(sub, params_buffer_bytes(hw_params));
-}
-
 static int snd_usb_caiaq_pcm_hw_free(struct snd_pcm_substream *sub)
 {
        struct snd_usb_caiaqdev *cdev = snd_pcm_substream_chip(sub);
        deactivate_substream(cdev, sub);
-       return snd_pcm_lib_free_pages(sub);
+       return 0;
 }
 
 /* this should probably go upstream */
@@ -328,7 +322,6 @@ static const struct snd_pcm_ops snd_usb_caiaq_ops = {
        .open =         snd_usb_caiaq_substream_open,
        .close =        snd_usb_caiaq_substream_close,
        .ioctl =        snd_pcm_lib_ioctl,
-       .hw_params =    snd_usb_caiaq_pcm_hw_params,
        .hw_free =      snd_usb_caiaq_pcm_hw_free,
        .prepare =      snd_usb_caiaq_pcm_prepare,
        .trigger =      snd_usb_caiaq_pcm_trigger,
@@ -841,8 +834,8 @@ int snd_usb_caiaq_audio_init(struct snd_usb_caiaqdev *cdev)
                                &snd_usb_caiaq_ops);
        snd_pcm_set_ops(cdev->pcm, SNDRV_PCM_STREAM_CAPTURE,
                                &snd_usb_caiaq_ops);
-       snd_pcm_lib_preallocate_pages_for_all(cdev->pcm, SNDRV_DMA_TYPE_VMALLOC,
-                                             NULL, 0, 0);
+       snd_pcm_set_managed_buffer_all(cdev->pcm, SNDRV_DMA_TYPE_VMALLOC,
+                                      NULL, 0, 0);
 
        cdev->data_cb_info =
                kmalloc_array(N_URBS, sizeof(struct snd_usb_caiaq_cb_info),