On Thu, May 30, 2013 at 06:25:02PM +0200, Lars-Peter Clausen wrote: > This patch adds dmaengine support for the JZ4740 DMA controller. For now the > driver will be a wrapper around the custom JZ4740 DMA API. Once all users of the > custom JZ4740 DMA API have been converted to the dmaengine API the custom API > will be removed and direct hardware access will be added to the dmaengine > driver. > > + > +#include <asm/mach-jz4740/dma.h> Am bit worried about having header in arch. Why cant we have this drivers header in linux/. That way same IP block cna be reused across archs. I was hoping that you would have move it in 6th patch, but that isnt the case > +static int jz4740_dma_alloc_chan_resources(struct dma_chan *c) > +{ > + struct jz4740_dmaengine_chan *chan = to_jz4740_dma_chan(c); > + > + chan->jz_chan = jz4740_dma_request(chan, NULL); > + if (!chan->jz_chan) > + return -EBUSY; > + > + jz4740_dma_set_complete_cb(chan->jz_chan, jz4740_dma_complete_cb); > + > + return 0; Sorry, I didnt reply on this one. The API expects you to allocate a pool of descriptors. These descriptors are to be used in .device_prep_xxx calls later. -- ~Vinod