On 12-04-22, 00:22, Martin Povišer wrote: > +struct admac_chan { > + int no; Unsigned int perhaps? > +static int admac_desc_free(struct dma_async_tx_descriptor *tx) > +{ > + struct admac_tx *adtx = to_admac_tx(tx); > + > + devm_kfree(to_admac_chan(tx->chan)->host->dev, adtx); Why use devm for descriptor memory? > +static int admac_device_config(struct dma_chan *chan, > + struct dma_slave_config *config) > +{ > + struct admac_chan *adchan = to_admac_chan(chan); > + struct admac_data *ad = adchan->host; > + bool is_tx = admac_chan_direction(adchan->no) == DMA_MEM_TO_DEV; so are the channel directions hard wired in hardware? -- ~Vinod