All of lore.kernel.org
 help / color / mirror / Atom feed
From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
To: Patrick Lai <plai@codeaurora.org>, alsa-devel@alsa-project.org
Cc: Banajit Goswami <bgoswami@codeaurora.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>, Jaroslav Kysela <perex@perex.cz>,
	Takashi Iwai <tiwai@suse.com>,
	linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Subject: [PATCH RFC 01/15] ASoC: qcom: use snd_dma_alloc/free* apis
Date: Mon,  1 Feb 2016 17:27:59 +0000	[thread overview]
Message-ID: <1454347680-10307-1-git-send-email-srinivas.kandagatla@linaro.org> (raw)
In-Reply-To: <1454347622-9970-1-git-send-email-srinivas.kandagatla@linaro.org>

There is no point in having local allocation functions when the driver
can use snd_dma_alloc/free() apis. This patch replaces the local versions
of the dma allocation apis with the snd_dma_alloc/free() apis.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 sound/soc/qcom/lpass-platform.c | 41 +++++------------------------------------
 1 file changed, 5 insertions(+), 36 deletions(-)

diff --git a/sound/soc/qcom/lpass-platform.c b/sound/soc/qcom/lpass-platform.c
index 4aeb8e1..a6dce1b 100644
--- a/sound/soc/qcom/lpass-platform.c
+++ b/sound/soc/qcom/lpass-platform.c
@@ -439,39 +439,6 @@ static irqreturn_t lpass_platform_lpaif_irq(int irq, void *data)
 	return IRQ_HANDLED;
 }
 
-static int lpass_platform_alloc_buffer(struct snd_pcm_substream *substream,
-		struct snd_soc_pcm_runtime *rt)
-{
-	struct snd_dma_buffer *buf = &substream->dma_buffer;
-	size_t size = lpass_platform_pcm_hardware.buffer_bytes_max;
-
-	buf->dev.type = SNDRV_DMA_TYPE_DEV;
-	buf->dev.dev = rt->platform->dev;
-	buf->private_data = NULL;
-	buf->area = dma_alloc_coherent(rt->platform->dev, size, &buf->addr,
-			GFP_KERNEL);
-	if (!buf->area) {
-		dev_err(rt->platform->dev, "%s: Could not allocate DMA buffer\n",
-				__func__);
-		return -ENOMEM;
-	}
-	buf->bytes = size;
-
-	return 0;
-}
-
-static void lpass_platform_free_buffer(struct snd_pcm_substream *substream,
-		struct snd_soc_pcm_runtime *rt)
-{
-	struct snd_dma_buffer *buf = &substream->dma_buffer;
-
-	if (buf->area) {
-		dma_free_coherent(rt->dev, buf->bytes, buf->area,
-				buf->addr);
-	}
-	buf->area = NULL;
-}
-
 static int lpass_platform_pcm_new(struct snd_soc_pcm_runtime *soc_runtime)
 {
 	struct snd_pcm *pcm = soc_runtime->pcm;
@@ -483,6 +450,7 @@ static int lpass_platform_pcm_new(struct snd_soc_pcm_runtime *soc_runtime)
 	struct lpass_variant *v = drvdata->variant;
 	int ret;
 	struct lpass_pcm_data *data;
+	size_t size = lpass_platform_pcm_hardware.buffer_bytes_max;
 
 	data = devm_kzalloc(soc_runtime->dev, sizeof(*data), GFP_KERNEL);
 	if (!data)
@@ -499,7 +467,8 @@ static int lpass_platform_pcm_new(struct snd_soc_pcm_runtime *soc_runtime)
 
 	snd_soc_pcm_set_drvdata(soc_runtime, data);
 
-	ret = lpass_platform_alloc_buffer(substream, soc_runtime);
+	ret = snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, pcm->card->dev,
+				size, &substream->dma_buffer);
 	if (ret)
 		return ret;
 
@@ -514,7 +483,7 @@ static int lpass_platform_pcm_new(struct snd_soc_pcm_runtime *soc_runtime)
 	return 0;
 
 err_buf:
-	lpass_platform_free_buffer(substream, soc_runtime);
+	snd_dma_free_pages(&substream->dma_buffer);
 	return ret;
 }
 
@@ -533,7 +502,7 @@ static void lpass_platform_pcm_free(struct snd_pcm *pcm)
 	if (v->free_dma_channel)
 		v->free_dma_channel(drvdata, data->rdma_ch);
 
-	lpass_platform_free_buffer(substream, soc_runtime);
+	snd_dma_free_pages(&substream->dma_buffer);
 }
 
 static struct snd_soc_platform_driver lpass_platform_driver = {
-- 
1.9.1

  reply	other threads:[~2016-02-01 17:27 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-01 17:27 [PATCH RFC 00/15] ASoC: qcom: Add capture support Srinivas Kandagatla
2016-02-01 17:27 ` Srinivas Kandagatla [this message]
2016-02-03  0:35   ` [alsa-devel] [PATCH RFC 01/15] ASoC: qcom: use snd_dma_alloc/free* apis Kenneth Westfield
2016-02-03  8:48     ` Srinivas Kandagatla
2016-02-03  8:48       ` [alsa-devel] " Srinivas Kandagatla
2016-02-01 17:28 ` [PATCH RFC 02/15] ASoC: qcom: add wrdma register details to lpass_variant Srinivas Kandagatla
2016-02-03  0:35   ` [alsa-devel] " Kenneth Westfield
2016-02-01 17:28 ` [PATCH RFC 03/15] ASoC: qcom: rename rdmactl_audif_start to dmactrl_audif_start Srinivas Kandagatla
2016-02-03  0:35   ` [alsa-devel] " Kenneth Westfield
2016-02-03  8:48     ` Srinivas Kandagatla
2016-02-03  8:48       ` [alsa-devel] " Srinivas Kandagatla
2016-02-01 17:28 ` [PATCH RFC 04/15] ASoC: qcom: pass direction to dma allocation Srinivas Kandagatla
2016-02-03  0:36   ` [alsa-devel] " Kenneth Westfield
2016-02-01 17:28 ` [PATCH RFC 05/15] ASoC: qcom: ipq806x: add error in " Srinivas Kandagatla
2016-02-03  0:36   ` [alsa-devel] " Kenneth Westfield
2016-02-03  8:48     ` Srinivas Kandagatla
2016-02-01 17:28 ` [PATCH RFC 06/15] ASoC: qcom: ipq806x: add wrdma related register offsets Srinivas Kandagatla
2016-02-03  0:36   ` [alsa-devel] " Kenneth Westfield
2016-02-20 17:14   ` Applied "ASoC: qcom: ipq806x: add wrdma related register offsets" to the asoc tree Mark Brown
2016-02-01 17:28 ` [PATCH RFC 07/15] ASoC: qcom: add mic related i2s control register defines Srinivas Kandagatla
2016-02-03  0:36   ` [alsa-devel] " Kenneth Westfield
2016-02-03  8:48     ` Srinivas Kandagatla
2016-02-01 17:29 ` [PATCH RFC 08/15] ASoC: qcom: add wrdma dma channel start Srinivas Kandagatla
2016-02-03  0:36   ` [alsa-devel] " Kenneth Westfield
2016-02-03  8:48     ` Srinivas Kandagatla
2016-02-01 17:29 ` [PATCH RFC 09/15] ASoC: qcom: rename rdma_ch_bit_map to dma_ch_bit_map Srinivas Kandagatla
2016-02-03  0:37   ` [alsa-devel] " Kenneth Westfield
2016-02-03  8:48     ` Srinivas Kandagatla
2016-02-20 17:14   ` Applied "ASoC: qcom: rename rdma_ch_bit_map to dma_ch_bit_map" to the asoc tree Mark Brown
2016-02-01 17:29 ` [PATCH RFC 10/15] ASoC: qcom: apq8016: add wrdma support Srinivas Kandagatla
2016-02-03  0:37   ` [alsa-devel] " Kenneth Westfield
2016-02-03  8:48     ` Srinivas Kandagatla
2016-02-01 17:29 ` [PATCH RFC 11/15] ASoC: qcom: add wrdma register definations Srinivas Kandagatla
2016-02-03  0:37   ` [alsa-devel] " Kenneth Westfield
2016-02-20 17:14   ` Applied "ASoC: qcom: add wrdma register definitions" to the asoc tree Mark Brown
2016-02-01 17:29 ` [PATCH RFC 12/15] ASoC: qcom: add generic bit masks for RDMA and WRDMA Srinivas Kandagatla
2016-02-03  0:37   ` [alsa-devel] " Kenneth Westfield
2016-02-03  8:49     ` Srinivas Kandagatla
2016-02-01 17:29 ` [PATCH RFC 13/15] ASoC: qcom: apq8016: set the correct max register for regmap Srinivas Kandagatla
2016-02-03  0:37   ` [alsa-devel] " Kenneth Westfield
2016-02-20 17:14   ` Applied "ASoC: qcom: apq8016: set the correct max register for regmap" to the asoc tree Mark Brown
2016-02-01 17:29 ` [PATCH RFC 14/15] ASoC: qcom: apq8016-sbc: add mic support Srinivas Kandagatla
2016-02-03  0:38   ` [alsa-devel] " Kenneth Westfield
2016-02-20 17:14   ` Applied "ASoC: qcom: apq8016-sbc: add mic support" to the asoc tree Mark Brown
2016-02-01 17:29 ` [PATCH RFC 15/15] ASoC: qcom: add mic support Srinivas Kandagatla
2016-02-03  0:38   ` [alsa-devel] " Kenneth Westfield
2016-02-03  0:33 ` [alsa-devel] [PATCH RFC 00/15] ASoC: qcom: Add capture support Kenneth Westfield
2016-02-03  8:48   ` Srinivas Kandagatla

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=1454347680-10307-1-git-send-email-srinivas.kandagatla@linaro.org \
    --to=srinivas.kandagatla@linaro.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=bgoswami@codeaurora.org \
    --cc=broonie@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=perex@perex.cz \
    --cc=plai@codeaurora.org \
    --cc=tiwai@suse.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.