int hw_chanid;
int priority;
int is_rxchan;
+ int is_remote;
struct dma_pool *tcd_pool;
u32 chn_real_count;
char txirq_name[32];
else
val |= EDMA_CH_SBR_WR;
}
+
+ if (fsl_chan->is_remote)
+ val &= ~(EDMA_CH_SBR_RD | EDMA_CH_SBR_WR);
+
writel(val, addr + EDMA_CH_SBR);
val = readl(addr + EDMA_CH_CSR);
struct dma_chan *chan, *_chan;
struct fsl_edma3_chan *fsl_chan;
- if (dma_spec->args_count != 3)
+ if (dma_spec->args_count != 4)
return NULL;
mutex_lock(&fsl_edma3->fsl_edma3_mutex);
chan->device->privatecnt++;
fsl_chan->priority = dma_spec->args[1];
fsl_chan->is_rxchan = dma_spec->args[2];
+ fsl_chan->is_remote = dma_spec->args[3];
mutex_unlock(&fsl_edma3->fsl_edma3_mutex);
return chan;
}