ASoC: intel: skylake: Use managed buffer allocation
authorTakashi Iwai <tiwai@suse.de>
Tue, 10 Dec 2019 14:26:14 +0000 (15:26 +0100)
committerMark Brown <broonie@kernel.org>
Wed, 11 Dec 2019 16:43:35 +0000 (16:43 +0000)
Clean up the drivers with the new managed buffer allocation API.
The superfluous snd_pcm_lib_malloc_pages() and
snd_pcm_lib_free_pages() calls are dropped.
The pcm_construct ops contains only the superfluous call of
snd_pcm_lib_preallocate_free_for_all(), so dropped, too.

Cc: Cezary Rojewski <cezary.rojewski@intel.com>
Cc: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Cc: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Cc: Jie Yang <yang.jie@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20191210142614.19405-24-tiwai@suse.de
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/skylake/skl-pcm.c

index bec5cee..355165f 100644 (file)
@@ -77,13 +77,7 @@ static int skl_substream_alloc_pages(struct hdac_bus *bus,
        hdac_stream(stream)->period_bytes = 0;
        hdac_stream(stream)->format_val = 0;
 
-       return snd_pcm_lib_malloc_pages(substream, size);
-}
-
-static int skl_substream_free_pages(struct hdac_bus *bus,
-                               struct snd_pcm_substream *substream)
-{
-       return snd_pcm_lib_free_pages(substream);
+       return 0;
 }
 
 static void skl_set_pcm_constrains(struct hdac_bus *bus,
@@ -385,7 +379,6 @@ static void skl_pcm_close(struct snd_pcm_substream *substream,
 static int skl_pcm_hw_free(struct snd_pcm_substream *substream,
                struct snd_soc_dai *dai)
 {
-       struct hdac_bus *bus = dev_get_drvdata(dai->dev);
        struct hdac_ext_stream *stream = get_hdac_ext_stream(substream);
        struct skl_dev *skl = get_skl_ctx(dai->dev);
        struct skl_module_cfg *mconfig;
@@ -405,7 +398,7 @@ static int skl_pcm_hw_free(struct snd_pcm_substream *substream,
        snd_hdac_stream_cleanup(hdac_stream(stream));
        hdac_stream(stream)->prepared = 0;
 
-       return skl_substream_free_pages(bus, substream);
+       return 0;
 }
 
 static int skl_be_hw_params(struct snd_pcm_substream *substream,
@@ -1289,12 +1282,6 @@ static int skl_platform_soc_get_time_info(
        return 0;
 }
 
-static void skl_platform_soc_free(struct snd_soc_component *component,
-                                 struct snd_pcm *pcm)
-{
-       snd_pcm_lib_preallocate_free_for_all(pcm);
-}
-
 #define MAX_PREALLOC_SIZE      (32 * 1024 * 1024)
 
 static int skl_platform_soc_new(struct snd_soc_component *component,
@@ -1312,10 +1299,10 @@ static int skl_platform_soc_new(struct snd_soc_component *component,
                size = CONFIG_SND_HDA_PREALLOC_SIZE * 1024;
                if (size > MAX_PREALLOC_SIZE)
                        size = MAX_PREALLOC_SIZE;
-               snd_pcm_lib_preallocate_pages_for_all(pcm,
-                                               SNDRV_DMA_TYPE_DEV_SG,
-                                               &skl->pci->dev,
-                                               size, MAX_PREALLOC_SIZE);
+               snd_pcm_set_managed_buffer_all(pcm,
+                                              SNDRV_DMA_TYPE_DEV_SG,
+                                              &skl->pci->dev,
+                                              size, MAX_PREALLOC_SIZE);
        }
 
        return 0;
@@ -1482,7 +1469,6 @@ static const struct snd_soc_component_driver skl_component  = {
        .get_time_info  = skl_platform_soc_get_time_info,
        .mmap           = skl_platform_soc_mmap,
        .pcm_construct  = skl_platform_soc_new,
-       .pcm_destruct   = skl_platform_soc_free,
        .module_get_upon_open = 1, /* increment refcount when a pcm is opened */
 };