On Friday 25 September 2015 15:56:40 Jon Hunter wrote: > + case DMA_MEM_TO_DEV: > + burst_size = fls(tdc->config.dst_maxburst); > + ch_regs->config = ADMA_CH_CONFIG_SRC_BUF(num_bufs - 1); > + ch_regs->ctrl = ADMA_CH_CTRL_XFER_DIR(ADMA_MEM_TO_AHUB) | > + ADMA_CH_CTRL_TX_REQ(tdc->config.slave_id); > + ch_regs->src_addr = buf_addr; > + break; > + > + case DMA_DEV_TO_MEM: > + burst_size = fls(tdc->config.src_maxburst); > + ch_regs->config = ADMA_CH_CONFIG_TRG_BUF(num_bufs - 1); > + ch_regs->ctrl = ADMA_CH_CTRL_XFER_DIR(ADMA_AHUB_TO_MEM) | > + ADMA_CH_CTRL_RX_REQ(tdc->config.slave_id); > + ch_regs->trg_addr = buf_addr; > + break; Do not use the 'slave_id' field here to identify the slave device, that concept is broken. Instead, put the slave identification into the dma specifier in DT and read it out in your xlate function. Arnd -- To unsubscribe from this list: send the line "unsubscribe dmaengine" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html