mirror of
https://github.com/torvalds/linux.git
synced 2024-11-25 13:41:51 +00:00
ASoC: fsi: use dmaengine helper functions
This patch used dmaengine helper functions instead of using hand setting. And reduced local variables Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
parent
01a0c1139c
commit
5514efdfe0
@ -1089,13 +1089,10 @@ static void fsi_dma_do_tasklet(unsigned long data)
|
||||
{
|
||||
struct fsi_stream *io = (struct fsi_stream *)data;
|
||||
struct fsi_priv *fsi = fsi_stream_to_priv(io);
|
||||
struct dma_chan *chan;
|
||||
struct snd_soc_dai *dai;
|
||||
struct dma_async_tx_descriptor *desc;
|
||||
struct scatterlist sg;
|
||||
struct snd_pcm_runtime *runtime;
|
||||
enum dma_data_direction dir;
|
||||
dma_cookie_t cookie;
|
||||
int is_play = fsi_stream_is_play(fsi, io);
|
||||
int len;
|
||||
dma_addr_t buf;
|
||||
@ -1104,7 +1101,6 @@ static void fsi_dma_do_tasklet(unsigned long data)
|
||||
return;
|
||||
|
||||
dai = fsi_get_dai(io->substream);
|
||||
chan = io->chan;
|
||||
runtime = io->substream->runtime;
|
||||
dir = is_play ? DMA_TO_DEVICE : DMA_FROM_DEVICE;
|
||||
len = samples_to_bytes(runtime, io->period_samples);
|
||||
@ -1112,14 +1108,8 @@ static void fsi_dma_do_tasklet(unsigned long data)
|
||||
|
||||
dma_sync_single_for_device(dai->dev, buf, len, dir);
|
||||
|
||||
sg_init_table(&sg, 1);
|
||||
sg_set_page(&sg, pfn_to_page(PFN_DOWN(buf)),
|
||||
len , offset_in_page(buf));
|
||||
sg_dma_address(&sg) = buf;
|
||||
sg_dma_len(&sg) = len;
|
||||
|
||||
desc = dmaengine_prep_slave_sg(chan, &sg, 1, dir,
|
||||
DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
|
||||
desc = dmaengine_prep_slave_single(io->chan, buf, len, dir,
|
||||
DMA_PREP_INTERRUPT | DMA_CTRL_ACK);
|
||||
if (!desc) {
|
||||
dev_err(dai->dev, "dmaengine_prep_slave_sg() fail\n");
|
||||
return;
|
||||
@ -1128,13 +1118,12 @@ static void fsi_dma_do_tasklet(unsigned long data)
|
||||
desc->callback = fsi_dma_complete;
|
||||
desc->callback_param = io;
|
||||
|
||||
cookie = desc->tx_submit(desc);
|
||||
if (cookie < 0) {
|
||||
if (dmaengine_submit(desc) < 0) {
|
||||
dev_err(dai->dev, "tx_submit() fail\n");
|
||||
return;
|
||||
}
|
||||
|
||||
dma_async_issue_pending(chan);
|
||||
dma_async_issue_pending(io->chan);
|
||||
|
||||
/*
|
||||
* FIXME
|
||||
|
Loading…
Reference in New Issue
Block a user