From: Takashi Iwai <tiwai@suse.de>
To: Mark Brown <broonie@kernel.org>
Cc: Takashi Iwai <tiwai@suse.de>, alsa-devel@alsa-project.org
Subject: [alsa-devel] [PATCH for-5.6 01/23] ASoC: amd: Use managed buffer allocation
Date: Tue, 10 Dec 2019 15:25:52 +0100 [thread overview]
Message-ID: <20191210142614.19405-2-tiwai@suse.de> (raw)
In-Reply-To: <20191210142614.19405-1-tiwai@suse.de>
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.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
sound/soc/amd/acp-pcm-dma.c | 58 +++++++++++++------------------------
sound/soc/amd/raven/acp3x-pcm-dma.c | 30 ++++---------------
2 files changed, 26 insertions(+), 62 deletions(-)
diff --git a/sound/soc/amd/acp-pcm-dma.c b/sound/soc/amd/acp-pcm-dma.c
index 4b9a27e25206..98400aaf0305 100644
--- a/sound/soc/amd/acp-pcm-dma.c
+++ b/sound/soc/amd/acp-pcm-dma.c
@@ -836,7 +836,6 @@ static int acp_dma_hw_params(struct snd_soc_component *component,
struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params)
{
- int status;
uint64_t size;
u32 val = 0;
struct snd_pcm_runtime *runtime;
@@ -967,35 +966,19 @@ static int acp_dma_hw_params(struct snd_soc_component *component,
}
size = params_buffer_bytes(params);
- status = snd_pcm_lib_malloc_pages(substream, size);
- if (status < 0)
- return status;
-
- memset(substream->runtime->dma_area, 0, params_buffer_bytes(params));
- if (substream->dma_buffer.area) {
- acp_set_sram_bank_state(rtd->acp_mmio, 0, true);
- /* Save for runtime private data */
- rtd->dma_addr = substream->dma_buffer.addr;
- rtd->order = get_order(size);
+ acp_set_sram_bank_state(rtd->acp_mmio, 0, true);
+ /* Save for runtime private data */
+ rtd->dma_addr = substream->dma_buffer.addr;
+ rtd->order = get_order(size);
- /* Fill the page table entries in ACP SRAM */
- rtd->size = size;
- rtd->num_of_pages = PAGE_ALIGN(size) >> PAGE_SHIFT;
- rtd->direction = substream->stream;
+ /* Fill the page table entries in ACP SRAM */
+ rtd->size = size;
+ rtd->num_of_pages = PAGE_ALIGN(size) >> PAGE_SHIFT;
+ rtd->direction = substream->stream;
- config_acp_dma(rtd->acp_mmio, rtd, adata->asic_type);
- status = 0;
- } else {
- status = -ENOMEM;
- }
- return status;
-}
-
-static int acp_dma_hw_free(struct snd_soc_component *component,
- struct snd_pcm_substream *substream)
-{
- return snd_pcm_lib_free_pages(substream);
+ config_acp_dma(rtd->acp_mmio, rtd, adata->asic_type);
+ return 0;
}
static u64 acp_get_byte_count(struct audio_substream_data *rtd)
@@ -1142,18 +1125,18 @@ static int acp_dma_new(struct snd_soc_component *component,
switch (adata->asic_type) {
case CHIP_STONEY:
- snd_pcm_lib_preallocate_pages_for_all(rtd->pcm,
- SNDRV_DMA_TYPE_DEV,
- parent,
- ST_MIN_BUFFER,
- ST_MAX_BUFFER);
+ snd_pcm_set_managed_buffer_all(rtd->pcm,
+ SNDRV_DMA_TYPE_DEV,
+ parent,
+ ST_MIN_BUFFER,
+ ST_MAX_BUFFER);
break;
default:
- snd_pcm_lib_preallocate_pages_for_all(rtd->pcm,
- SNDRV_DMA_TYPE_DEV,
- parent,
- MIN_BUFFER,
- MAX_BUFFER);
+ snd_pcm_set_managed_buffer_all(rtd->pcm,
+ SNDRV_DMA_TYPE_DEV,
+ parent,
+ MIN_BUFFER,
+ MAX_BUFFER);
break;
}
return 0;
@@ -1221,7 +1204,6 @@ static const struct snd_soc_component_driver acp_asoc_platform = {
.close = acp_dma_close,
.ioctl = snd_soc_pcm_lib_ioctl,
.hw_params = acp_dma_hw_params,
- .hw_free = acp_dma_hw_free,
.trigger = acp_dma_trigger,
.pointer = acp_dma_pointer,
.mmap = acp_dma_mmap,
diff --git a/sound/soc/amd/raven/acp3x-pcm-dma.c b/sound/soc/amd/raven/acp3x-pcm-dma.c
index 60709e3ba99d..98b76c38dae0 100644
--- a/sound/soc/amd/raven/acp3x-pcm-dma.c
+++ b/sound/soc/amd/raven/acp3x-pcm-dma.c
@@ -334,7 +334,6 @@ static int acp3x_dma_hw_params(struct snd_soc_component *component,
struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params)
{
- int status;
u64 size;
struct snd_pcm_runtime *runtime = substream->runtime;
struct i2s_stream_instance *rtd = runtime->private_data;
@@ -343,20 +342,10 @@ static int acp3x_dma_hw_params(struct snd_soc_component *component,
return -EINVAL;
size = params_buffer_bytes(params);
- status = snd_pcm_lib_malloc_pages(substream, size);
- if (status < 0)
- return status;
-
- memset(substream->runtime->dma_area, 0, params_buffer_bytes(params));
- if (substream->dma_buffer.area) {
- rtd->dma_addr = substream->dma_buffer.addr;
- rtd->num_pages = (PAGE_ALIGN(size) >> PAGE_SHIFT);
- config_acp3x_dma(rtd, substream->stream);
- status = 0;
- } else {
- status = -ENOMEM;
- }
- return status;
+ rtd->dma_addr = substream->dma_buffer.addr;
+ rtd->num_pages = (PAGE_ALIGN(size) >> PAGE_SHIFT);
+ config_acp3x_dma(rtd, substream->stream);
+ return 0;
}
static snd_pcm_uframes_t acp3x_dma_pointer(struct snd_soc_component *component,
@@ -381,17 +370,11 @@ static int acp3x_dma_new(struct snd_soc_component *component,
struct snd_soc_pcm_runtime *rtd)
{
struct device *parent = component->dev->parent;
- snd_pcm_lib_preallocate_pages_for_all(rtd->pcm, SNDRV_DMA_TYPE_DEV,
- parent, MIN_BUFFER, MAX_BUFFER);
+ snd_pcm_set_managed_buffer_all(rtd->pcm, SNDRV_DMA_TYPE_DEV,
+ parent, MIN_BUFFER, MAX_BUFFER);
return 0;
}
-static int acp3x_dma_hw_free(struct snd_soc_component *component,
- struct snd_pcm_substream *substream)
-{
- return snd_pcm_lib_free_pages(substream);
-}
-
static int acp3x_dma_mmap(struct snd_soc_component *component,
struct snd_pcm_substream *substream,
struct vm_area_struct *vma)
@@ -601,7 +584,6 @@ static const struct snd_soc_component_driver acp3x_i2s_component = {
.close = acp3x_dma_close,
.ioctl = snd_soc_pcm_lib_ioctl,
.hw_params = acp3x_dma_hw_params,
- .hw_free = acp3x_dma_hw_free,
.pointer = acp3x_dma_pointer,
.mmap = acp3x_dma_mmap,
.pcm_construct = acp3x_dma_new,
--
2.16.4
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
next prev parent reply other threads:[~2019-12-10 14:27 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-10 14:25 [alsa-devel] [PATCH for-5.6 00/23] ASoC: PCM API updates (part I) Takashi Iwai
2019-12-10 14:25 ` Takashi Iwai [this message]
2019-12-11 16:54 ` [alsa-devel] Applied "ASoC: amd: Use managed buffer allocation" to the asoc tree Mark Brown
2019-12-10 14:25 ` [alsa-devel] [PATCH for-5.6 02/23] ASoC: au1x: Use managed buffer allocation Takashi Iwai
2019-12-11 16:53 ` [alsa-devel] Applied "ASoC: au1x: Use managed buffer allocation" to the asoc tree Mark Brown
2019-12-10 14:25 ` [alsa-devel] [PATCH for-5.6 03/23] ASoC: dwc: Use managed buffer allocation Takashi Iwai
2019-12-11 16:53 ` [alsa-devel] Applied "ASoC: dwc: Use managed buffer allocation" to the asoc tree Mark Brown
2019-12-10 14:25 ` [alsa-devel] [PATCH for-5.6 04/23] ASoC: mediatek: Use managed buffer allocation Takashi Iwai
2019-12-11 16:47 ` Mark Brown
2019-12-10 14:25 ` [alsa-devel] [PATCH for-5.6 05/23] ASoC: meson: " Takashi Iwai
2019-12-11 9:49 ` Jerome Brunet
2019-12-11 16:53 ` [alsa-devel] Applied "ASoC: meson: Use managed buffer allocation" to the asoc tree Mark Brown
2019-12-10 14:25 ` [alsa-devel] [PATCH for-5.6 06/23] ASoC: dma-sh7760: Use managed buffer allocation Takashi Iwai
2019-12-11 16:53 ` [alsa-devel] Applied "ASoC: dma-sh7760: Use managed buffer allocation" to the asoc tree Mark Brown
2019-12-10 14:25 ` [alsa-devel] [PATCH for-5.6 07/23] ASoC: fsi: Use managed buffer allocation Takashi Iwai
2019-12-11 16:53 ` [alsa-devel] Applied "ASoC: fsi: Use managed buffer allocation" to the asoc tree Mark Brown
2019-12-10 14:25 ` [alsa-devel] [PATCH for-5.6 08/23] ASoC: rcar: Use managed buffer allocation Takashi Iwai
2019-12-11 16:53 ` [alsa-devel] Applied "ASoC: rcar: Use managed buffer allocation" to the asoc tree Mark Brown
2019-12-10 14:26 ` [alsa-devel] [PATCH for-5.6 09/23] ASoC: siu_pcm: Use managed buffer allocation Takashi Iwai
2019-12-11 16:53 ` [alsa-devel] Applied "ASoC: siu_pcm: Use managed buffer allocation" to the asoc tree Mark Brown
2019-12-10 14:26 ` [alsa-devel] [PATCH for-5.6 10/23] ASoC: generic-dmaengine-pcm: Use managed buffer allocation Takashi Iwai
2019-12-11 16:53 ` [alsa-devel] Applied "ASoC: generic-dmaengine-pcm: Use managed buffer allocation" to the asoc tree Mark Brown
2019-12-10 14:26 ` [alsa-devel] [PATCH for-5.6 11/23] ASoC: SOF: Use managed buffer allocation Takashi Iwai
2019-12-11 16:47 ` Mark Brown
2019-12-10 14:26 ` [alsa-devel] [PATCH for-5.6 12/23] ASoC: stm32: " Takashi Iwai
2019-12-11 16:53 ` [alsa-devel] Applied "ASoC: stm32: Use managed buffer allocation" to the asoc tree Mark Brown
2019-12-10 14:26 ` [alsa-devel] [PATCH for-5.6 13/23] ASoC: txx9: Use managed buffer allocation Takashi Iwai
2019-12-11 16:53 ` [alsa-devel] Applied "ASoC: txx9: Use managed buffer allocation" to the asoc tree Mark Brown
2019-12-10 14:26 ` [alsa-devel] [PATCH for-5.6 14/23] ASoC: uniphier: Use managed buffer allocation Takashi Iwai
2019-12-11 16:53 ` [alsa-devel] Applied "ASoC: uniphier: Use managed buffer allocation" to the asoc tree Mark Brown
2019-12-10 14:26 ` [alsa-devel] [PATCH for-5.6 15/23] ASoC: xilinx: Use managed buffer allocation Takashi Iwai
2019-12-11 16:53 ` [alsa-devel] Applied "ASoC: xilinx: Use managed buffer allocation" to the asoc tree Mark Brown
2019-12-10 14:26 ` [alsa-devel] [PATCH for-5.6 16/23] ASoC: xtensa: Use managed buffer allocation Takashi Iwai
2019-12-11 16:53 ` [alsa-devel] Applied "ASoC: xtensa: Use managed buffer allocation" to the asoc tree Mark Brown
2019-12-10 14:26 ` [alsa-devel] [PATCH for-5.6 17/23] ASoC: cros_ec_codec: Use managed buffer allocation Takashi Iwai
2019-12-11 16:53 ` [alsa-devel] Applied "ASoC: cros_ec_codec: Use managed buffer allocation" to the asoc tree Mark Brown
2019-12-10 14:26 ` [alsa-devel] [PATCH for-5.6 18/23] ASoC: rt5514-spi: Use managed buffer allocation Takashi Iwai
2019-12-11 16:53 ` [alsa-devel] Applied "ASoC: rt5514-spi: Use managed buffer allocation" to the asoc tree Mark Brown
2019-12-10 14:26 ` [alsa-devel] [PATCH for-5.6 19/23] ASoC: rt5677-spi: Use managed buffer allocation Takashi Iwai
2019-12-11 16:53 ` [alsa-devel] Applied "ASoC: rt5677-spi: Use managed buffer allocation" to the asoc tree Mark Brown
2019-12-10 14:26 ` [alsa-devel] [PATCH for-5.6 20/23] ASoC: intel: atom: Use managed buffer allocation Takashi Iwai
2019-12-11 16:53 ` [alsa-devel] Applied "ASoC: intel: atom: Use managed buffer allocation" to the asoc tree Mark Brown
2019-12-10 14:26 ` [alsa-devel] [PATCH for-5.6 21/23] ASoC: intel: baytrail: Use managed buffer allocation Takashi Iwai
2019-12-11 16:53 ` [alsa-devel] Applied "ASoC: intel: baytrail: Use managed buffer allocation" to the asoc tree Mark Brown
2019-12-10 14:26 ` [alsa-devel] [PATCH for-5.6 22/23] ASoC: intel: haswell: Use managed buffer allocation Takashi Iwai
2019-12-11 16:53 ` [alsa-devel] Applied "ASoC: intel: haswell: Use managed buffer allocation" to the asoc tree Mark Brown
2019-12-10 14:26 ` [alsa-devel] [PATCH for-5.6 23/23] ASoC: intel: skylake: Use managed buffer allocation Takashi Iwai
2019-12-11 16:53 ` [alsa-devel] Applied "ASoC: intel: skylake: Use managed buffer allocation" to the asoc tree Mark Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191210142614.19405-2-tiwai@suse.de \
--to=tiwai@suse.de \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).