10 Jun
2013
10 Jun
'13
7:29 p.m.
On 05/30/2013 08:46 PM, Lars-Peter Clausen wrote:
+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.
The size of the descriptor is not fixed, so they can not be pre-allocated. And this is nothing new either, most of the more recently added dmaengine drivers allocate their descriptors on demand.
Vinod, are you ok with this explanation?
- Lars