提交 10ab3bfd 编写于 作者: B Ben Gardiner 提交者: Mark Brown

ASoC: davinci-pcm: extract period elapsed functions

Extract functions that modify the prtd->period member in preparation for
conversion to BATCH mode playback.
Signed-off-by: NBen Gardiner <bengardiner@nanometrics.ca>
Reviewed-by: NSteven Faludi <stevenfaludi@nanometrics.ca>
Acked-by: NLiam Girdwood <lrg@ti.com>
Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
上级 ef39eb6f
......@@ -155,6 +155,22 @@ struct davinci_runtime_data {
struct edmacc_param ram_params;
};
static void davinci_pcm_period_elapsed(struct snd_pcm_substream *substream)
{
struct davinci_runtime_data *prtd = substream->runtime->private_data;
struct snd_pcm_runtime *runtime = substream->runtime;
prtd->period++;
if (unlikely(prtd->period >= runtime->periods))
prtd->period = 0;
}
static void davinci_pcm_period_reset(struct snd_pcm_substream *substream)
{
struct davinci_runtime_data *prtd = substream->runtime->private_data;
prtd->period = 0;
}
/*
* Not used with ping/pong
*/
......@@ -216,9 +232,7 @@ static void davinci_pcm_enqueue_dma(struct snd_pcm_substream *substream)
edma_set_transfer_params(link, acnt, fifo_level, count,
fifo_level, ABSYNC);
prtd->period++;
if (unlikely(prtd->period >= runtime->periods))
prtd->period = 0;
davinci_pcm_period_elapsed(substream);
}
static void davinci_pcm_dma_irq(unsigned link, u16 ch_status, void *data)
......@@ -591,7 +605,7 @@ static int davinci_pcm_prepare(struct snd_pcm_substream *substream)
return 0;
}
prtd->period = 0;
davinci_pcm_period_reset(substream);
davinci_pcm_enqueue_dma(substream);
/* Copy self-linked parameter RAM entry into master channel */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册