Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1331040

[PATCH v1 08/14] ASoC: qcom: apq8016: add wrdma support

From Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Newsgroups linux.kernel
Subject [PATCH v1 08/14] ASoC: qcom: apq8016: add wrdma support
Date 2016-02-10 11:30 +0100
Message-ID <r0Ac3-VA-31@gated-at.bofh.it> (permalink)
References <r0A2m-Sb-7@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


This patch adds wrdma support in lpass-apq8016 by providing the register
offsets and adding support in dma channel allocation callback.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
---
 sound/soc/qcom/lpass-apq8016.c | 22 +++++++++++++++++++---
 1 file changed, 19 insertions(+), 3 deletions(-)

diff --git a/sound/soc/qcom/lpass-apq8016.c b/sound/soc/qcom/lpass-apq8016.c
index ca3bbd5..3eef0c3 100644
--- a/sound/soc/qcom/lpass-apq8016.c
+++ b/sound/soc/qcom/lpass-apq8016.c
@@ -137,11 +137,23 @@ static int apq8016_lpass_alloc_dma_channel(struct lpass_data *drvdata,
 					   int direction)
 {
 	struct lpass_variant *v = drvdata->variant;
-	int chan = find_first_zero_bit(&drvdata->dma_ch_bit_map,
+	int chan = 0;
+
+	if (direction == SNDRV_PCM_STREAM_PLAYBACK) {
+		chan = find_first_zero_bit(&drvdata->dma_ch_bit_map,
 					v->rdma_channels);
 
-	if (chan >= v->rdma_channels)
-		return -EBUSY;
+		if (chan >= v->rdma_channels)
+			return -EBUSY;
+	} else {
+		chan = find_next_zero_bit(&drvdata->dma_ch_bit_map,
+					v->wrdma_channel_start +
+					v->wrdma_channels,
+					v->wrdma_channel_start);
+
+		if (chan >=  v->wrdma_channel_start + v->wrdma_channels)
+			return -EBUSY;
+	}
 
 	set_bit(chan, &drvdata->dma_ch_bit_map);
 
@@ -214,6 +226,10 @@ static struct lpass_variant apq8016_data = {
 	.rdma_reg_stride	= 0x1000,
 	.rdma_channels		= 2,
 	.dmactl_audif_start	= 1,
+	.wrdma_reg_base		= 0xB000,
+	.wrdma_reg_stride	= 0x1000,
+	.wrdma_channel_start	= 5,
+	.wrdma_channels		= 2,
 	.dai_driver		= apq8016_lpass_cpu_dai_driver,
 	.num_dai		= ARRAY_SIZE(apq8016_lpass_cpu_dai_driver),
 	.init			= apq8016_lpass_init,
-- 
1.9.1

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v1 00/14] ASoC: qcom: Add capture support. Srinivas Kandagatla <srinivas.kandagatla@linaro.org> - 2016-02-10 11:20 +0100
  [PATCH v1 05/14] ASoC: qcom: ipq806x: add error in dma allocation. Srinivas Kandagatla <srinivas.kandagatla@linaro.org> - 2016-02-10 11:20 +0100
  [PATCH v1 03/14] ASoC: qcom: rename rdmactl_audif_start to dmactrl_audif_start Srinivas Kandagatla <srinivas.kandagatla@linaro.org> - 2016-02-10 11:20 +0100
  [PATCH v1 04/14] ASoC: qcom: pass direction to dma allocation Srinivas Kandagatla <srinivas.kandagatla@linaro.org> - 2016-02-10 11:20 +0100
  [PATCH v1 11/14] ASoC: qcom: add generic bit masks for RDMA and WRDMA Srinivas Kandagatla <srinivas.kandagatla@linaro.org> - 2016-02-10 11:20 +0100
  [PATCH v1 13/14] ASoC: qcom: add mic support Srinivas Kandagatla <srinivas.kandagatla@linaro.org> - 2016-02-10 11:30 +0100
    Re: [PATCH v1 13/14] ASoC: qcom: add mic support Kenneth Westfield <kwestfie@codeaurora.org> - 2016-02-10 21:20 +0100
      Re: [PATCH v1 13/14] ASoC: qcom: add mic support Srinivas Kandagatla <srinivas.kandagatla@linaro.org> - 2016-02-11 12:40 +0100
  [PATCH v1 12/14] ASoC: qcom: apq8016: set the correct max register for regmap Srinivas Kandagatla <srinivas.kandagatla@linaro.org> - 2016-02-10 11:30 +0100
  [PATCH v1 14/14] ASoC: qcom: apq8016-sbc: add mic support Srinivas Kandagatla <srinivas.kandagatla@linaro.org> - 2016-02-10 11:30 +0100
  [PATCH v1 10/14] ASoC: qcom: add wrdma register definitions Srinivas Kandagatla <srinivas.kandagatla@linaro.org> - 2016-02-10 11:30 +0100
  [PATCH v1 08/14] ASoC: qcom: apq8016: add wrdma support Srinivas Kandagatla <srinivas.kandagatla@linaro.org> - 2016-02-10 11:30 +0100
  Re: [PATCH v1 00/14] ASoC: qcom: Add capture support. Mark Brown <broonie@kernel.org> - 2016-02-10 11:30 +0100
    Re: [PATCH v1 00/14] ASoC: qcom: Add capture support. Srinivas Kandagatla <srinivas.kandagatla@linaro.org> - 2016-02-10 11:40 +0100
      Re: [PATCH v1 00/14] ASoC: qcom: Add capture support. Mark Brown <broonie@kernel.org> - 2016-02-10 13:00 +0100
  Re: [PATCH v1 00/14] ASoC: qcom: Add capture support. Kenneth Westfield <kwestfie@codeaurora.org> - 2016-02-10 21:20 +0100

csiph-web