@@ -51,8 +51,8 @@ static struct snd_pcm_hardware davinci_pcm_hardware = {
struct davinci_runtime_data {
spinlock_t lock;
int period; /* current DMA period */
- int master_lch; /* Master DMA channel */
- int slave_lch; /* linked parameter RAM reload slot */
+ int asp_master_lch; /* Master DMA channel */
+ int asp_link_lch[2]; /* asp parameter link channel, ping/pong */
struct davinci_pcm_dma_params *params; /* DMA params */
};
@@ -60,7 +60,7 @@ static void davinci_pcm_enqueue_dma(struct snd_pcm_substream *substream)
{
struct davinci_runtime_data *prtd = substream->runtime->private_data;
struct snd_pcm_runtime *runtime = substream->runtime;
- int lch = prtd->slave_lch;
+ int lch = prtd->asp_link_lch[0];
unsigned int period_size;
unsigned int dma_offset;
dma_addr_t dma_pos;
@@ -140,15 +140,15 @@ static int davinci_pcm_dma_request(struct snd_pcm_substream *substream)
EVENTQ_0);
if (ret < 0)
return ret;
- prtd->master_lch = ret;
+ prtd->asp_master_lch = ret;
/* Request parameter RAM reload slot */
- ret = edma_alloc_slot(EDMA_CTLR(prtd->master_lch), EDMA_SLOT_ANY);
+ ret = edma_alloc_slot(EDMA_CTLR(prtd->asp_master_lch), EDMA_SLOT_ANY);
if (ret < 0) {
- edma_free_channel(prtd->master_lch);
+ edma_free_channel(prtd->asp_master_lch);
return ret;
}
- prtd->slave_lch = ret;
+ prtd->asp_link_lch[0] = ret;
/* Issue transfer completion IRQ when the channel completes a
* transfer, then always reload from the same slot (by a kind
@@ -159,10 +159,10 @@ static int davinci_pcm_dma_request(struct snd_pcm_substream *substream)
* the buffer and its length (ccnt) ... use it as a template
* so davinci_pcm_enqueue_dma() takes less time in IRQ.
*/
- edma_read_slot(prtd->slave_lch, &p_ram);
- p_ram.opt |= TCINTEN | EDMA_TCC(EDMA_CHAN_SLOT(prtd->master_lch));
- p_ram.link_bcntrld = EDMA_CHAN_SLOT(prtd->slave_lch) << 5;
- edma_write_slot(prtd->slave_lch, &p_ram);
+ edma_read_slot(prtd->asp_link_lch[0], &p_ram);
+ p_ram.opt |= TCINTEN | EDMA_TCC(EDMA_CHAN_SLOT(prtd->asp_master_lch));
+ p_ram.link_bcntrld = EDMA_CHAN_SLOT(prtd->asp_link_lch[0]) << 5;
+ edma_write_slot(prtd->asp_link_lch[0], &p_ram);
return 0;
}
@@ -178,12 +178,12 @@ static int davinci_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
case SNDRV_PCM_TRIGGER_START:
case SNDRV_PCM_TRIGGER_RESUME:
case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
- edma_start(prtd->master_lch);
+ edma_start(prtd->asp_master_lch);
break;
case SNDRV_PCM_TRIGGER_STOP:
case SNDRV_PCM_TRIGGER_SUSPEND:
case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
- edma_stop(prtd->master_lch);
+ edma_stop(prtd->asp_master_lch);
break;
default:
ret = -EINVAL;
@@ -204,8 +204,8 @@ static int davinci_pcm_prepare(struct snd_pcm_substream *substream)
davinci_pcm_enqueue_dma(substream);
/* Copy self-linked parameter RAM entry into master channel */
- edma_read_slot(prtd->slave_lch, &temp);
- edma_write_slot(prtd->master_lch, &temp);
+ edma_read_slot(prtd->asp_link_lch[0], &temp);
+ edma_write_slot(prtd->asp_master_lch, &temp);
davinci_pcm_enqueue_dma(substream);
return 0;
@@ -222,7 +222,7 @@ davinci_pcm_pointer(struct snd_pcm_substream *substream)
spin_lock(&prtd->lock);
- edma_get_position(prtd->master_lch, &src, &dst);
+ edma_get_position(prtd->asp_master_lch, &src, &dst);
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
count = src - runtime->dma_addr;
else
@@ -272,10 +272,10 @@ static int davinci_pcm_close(struct snd_pcm_substream *substream)
struct snd_pcm_runtime *runtime = substream->runtime;
struct davinci_runtime_data *prtd = runtime->private_data;
- edma_unlink(prtd->slave_lch);
+ edma_unlink(prtd->asp_link_lch[0]);
- edma_free_slot(prtd->slave_lch);
- edma_free_channel(prtd->master_lch);
+ edma_free_slot(prtd->asp_link_lch[0]);
+ edma_free_channel(prtd->asp_master_lch);
kfree(prtd);
Rename variable master_lch to asp_master_lch Rename variable slave_lch to asp_link_lch[0] Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> --- sound/soc/davinci/davinci-pcm.c | 38 +++++++++++++++++++------------------- 1 files changed, 19 insertions(+), 19 deletions(-)