davinci: EDMA: multiple CCs, channel mapping and API changes
[firefly-linux-kernel-4.4.55.git] / sound / soc / davinci / davinci-pcm.c
index a059965884896d78b7a0a1c15889c777675db867..3ee38b62766d92b59ae8a9b17fff769c66fca27a 100644 (file)
@@ -143,7 +143,7 @@ static int davinci_pcm_dma_request(struct snd_pcm_substream *substream)
        prtd->master_lch = ret;
 
        /* Request parameter RAM reload slot */
-       ret = edma_alloc_slot(EDMA_SLOT_ANY);
+       ret = edma_alloc_slot(EDMA_CTLR(prtd->master_lch), EDMA_SLOT_ANY);
        if (ret < 0) {
                edma_free_channel(prtd->master_lch);
                return ret;
@@ -160,8 +160,8 @@ static int davinci_pcm_dma_request(struct snd_pcm_substream *substream)
         * so davinci_pcm_enqueue_dma() takes less time in IRQ.
         */
        edma_read_slot(prtd->slave_lch, &p_ram);
-       p_ram.opt |= TCINTEN | EDMA_TCC(prtd->master_lch);
-       p_ram.link_bcntrld = prtd->slave_lch << 5;
+       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);
 
        return 0;