Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ff495d3a authored by Lars-Peter Clausen's avatar Lars-Peter Clausen Committed by Mark Brown
Browse files

ASoC: txx9: Don't opencode DMAengine API calls



Use the proper wrapper functions instead of directly calling the DMAengine
callback functions.

Also add the missing include to linux/dmaengine.h.

Signed-off-by: default avatarLars-Peter Clausen <lars@metafoo.de>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent 7d1311b9
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
#include <linux/platform_device.h>
#include <linux/scatterlist.h>
#include <linux/slab.h>
#include <linux/dmaengine.h>
#include <sound/core.h>
#include <sound/pcm.h>
#include <sound/pcm_params.h>
@@ -137,7 +138,7 @@ txx9aclc_dma_submit(struct txx9aclc_dmadata *dmadata, dma_addr_t buf_dma_addr)
	}
	desc->callback = txx9aclc_dma_complete;
	desc->callback_param = dmadata;
	desc->tx_submit(desc);
	dmaengine_submit(desc);
	return desc;
}

@@ -160,7 +161,7 @@ static void txx9aclc_dma_tasklet(unsigned long data)
		void __iomem *base = drvdata->base;

		spin_unlock_irqrestore(&dmadata->dma_lock, flags);
		chan->device->device_control(chan, DMA_TERMINATE_ALL, 0);
		dmaengine_terminate_all(chan);
		/* first time */
		for (i = 0; i < NR_DMA_CHAIN; i++) {
			desc = txx9aclc_dma_submit(dmadata,
@@ -169,7 +170,7 @@ static void txx9aclc_dma_tasklet(unsigned long data)
				return;
		}
		dmadata->dmacount = NR_DMA_CHAIN;
		chan->device->device_issue_pending(chan);
		dma_async_issue_pending(chan);
		spin_lock_irqsave(&dmadata->dma_lock, flags);
		__raw_writel(ctlbit, base + ACCTLEN);
		dmadata->frag_count = NR_DMA_CHAIN % dmadata->frags;
@@ -188,7 +189,7 @@ static void txx9aclc_dma_tasklet(unsigned long data)
			dmadata->frag_count * dmadata->frag_bytes);
		if (!desc)
			return;
		chan->device->device_issue_pending(chan);
		dma_async_issue_pending(chan);

		spin_lock_irqsave(&dmadata->dma_lock, flags);
		dmadata->frag_count++;
@@ -266,7 +267,7 @@ static int txx9aclc_pcm_close(struct snd_pcm_substream *substream)
	struct dma_chan *chan = dmadata->dma_chan;

	dmadata->frag_count = -1;
	chan->device->device_control(chan, DMA_TERMINATE_ALL, 0);
	dmaengine_terminate_all(chan);
	return 0;
}

@@ -398,8 +399,7 @@ static int txx9aclc_pcm_remove(struct snd_soc_platform *platform)
		struct dma_chan *chan = dmadata->dma_chan;
		if (chan) {
			dmadata->frag_count = -1;
			chan->device->device_control(chan,
						     DMA_TERMINATE_ALL, 0);
			dmaengine_terminate_all(chan);
			dma_release_channel(chan);
		}
		dev->dmadata[i].dma_chan = NULL;