From 49553e9c6dd0ef9dac304adc69c676b0b000d31f Mon Sep 17 00:00:00 2001 From: Sumit Bhattacharya Date: Mon, 27 Aug 2012 16:07:39 +0800 Subject: ASoC: Tegra: Add ALSA ctl to set DMA address Add support for setting of DMA address through alsa control for AVP rendering. This is required to directly do DMA from IRAM to I2S. Bug 1024403 Change-Id: I6b79ae6e9a562160a19d238b817e1a8b407ac208 Signed-off-by: Sumit Bhattacharya Reviewed-on: http://git-master/r/127436 (cherry picked from commit f270f46bef98a56f44432e608041adb617c22559) Signed-off-by: Chandrakanth Gorantla Change-Id: I195aae9043f967273283579f44d5367fe73d542f Reviewed-on: http://git-master/r/129159 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Scott Peterson --- sound/soc/tegra/tegra_pcm.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'sound/soc/tegra/tegra_pcm.c') diff --git a/sound/soc/tegra/tegra_pcm.c b/sound/soc/tegra/tegra_pcm.c index f471fafff2ac..a7c9c0a110f9 100644 --- a/sound/soc/tegra/tegra_pcm.c +++ b/sound/soc/tegra/tegra_pcm.c @@ -70,7 +70,11 @@ static void tegra_pcm_queue_dma(struct tegra_runtime_data *prtd) if (++prtd->dma_req_idx >= prtd->dma_req_count) prtd->dma_req_idx -= prtd->dma_req_count; - addr = buf->addr + prtd->dma_pos; + if (prtd->avp_dma_addr) + addr = prtd->avp_dma_addr + prtd->dma_pos; + else + addr = buf->addr + prtd->dma_pos; + prtd->dma_pos += dma_req->size; if (prtd->dma_pos >= prtd->dma_pos_end) prtd->dma_pos = 0; -- cgit v1.2.3