Re: [PATCH 2/4 v1] i.MX31: Image Processing Unit DMA and IRQ drivers

From: Guennadi Liakhovetski
Date: Tue Nov 11 2008 - 13:13:46 EST


Hi Dan,

On Tue, 11 Nov 2008, Dan Williams wrote:

> On Tue, Nov 11, 2008 at 2:36 AM, Guennadi Liakhovetski
> <g.liakhovetski@xxxxxx> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/