Messages in this thread | | | Date | Tue, 11 Nov 2008 19:13:48 +0100 (CET) | From | Guennadi Liakhovetski <> | Subject | Re: [PATCH 2/4 v1] i.MX31: Image Processing Unit DMA and IRQ drivers |
| |
Hi Dan,
On Tue, 11 Nov 2008, Dan Williams wrote:
> On Tue, Nov 11, 2008 at 2:36 AM, Guennadi Liakhovetski > <g.liakhovetski@gmx.de> wrote: > > I still have no solution to this ->client_count problem. Is this a bug and > > there should be a way to release a channel (including decrementint the > > client_count) without unregistering the client, or am I missing something? > > > > Hi Guennadi, > > I am currently working on improving this situation: > > http://marc.info/?l=linux-kernel&m=122463374500746&w=2 > > Please have a look.
Thanks for the pointer, I looked at it.
1. ASYNC_TX_ACK: one either sets this flag immediately on a descriptor in flags for ->device_prep_dma_memcpy() (like in dma_async_memcpy_buf_to_buf()), which would mean "may be recycled automatically" or you don't set it, then the descriptor is kept, until you call async_tx_ack() on it. Are you going to preserve the async_tx_ack() implementation? In this case dma-device drivers have to scan their descriptors to do garbage-collection?... Wouldn't it be better to introduce an explicit call to free a descriptor, like in this my patch: http://marc.info/?l=linux-arm-kernel&m=122607472721145&w=2 (see the last hank for include/linux/dmaengine.h)?
2. channel client-count: am I right, that with the current implementation one cannot free a channel in a way, that its client_count got decremented, and the ->device_free_chan_resources() method be called for it? Is this going to be addressed too or I am missing something and channel freeing has to be done differently?
3. you write
> 3b/ Remove the client registration infrastructure
which means, there should be an interface to free a channel explicitly? because until now unregistering the client was the only way (that I found) to free channels...
Thanks Guennadi --- Guennadi Liakhovetski, Ph.D. Freelance Open-Source Software Developer
| |