Re: [RFC v2 0/5] dmaengine: Slave DMA interface and example users

From: Haavard Skinnemoen
Date: Thu Feb 07 2008 - 12:53:17 EST


On Wed, 6 Feb 2008 11:46:43 -0700
"Dan Williams" <dan.j.williams@xxxxxxxxx> wrote:

> > The client must somehow know when the transfer is complete -- after
> > all, it has to call async_tx_ack() at some point. So additional
> > callbacks shouldn't be needed.
> >
>
> The 'ack' only signifies that the client is done with this descriptor,
> it tells the api "this descriptor can be freed/reused, no dependent
> operations will be submitted against it". This can and does happen
> before the operation actually completes.

Hmm...ok. But at some point, the client must know that the buffer is
completely filled with valid data so that it can call some kind of
operation_foo_finish() function to do the necessary unmapping...

> > This requires three additional fields in the dma_async_tx_descriptor
> > structure, but in many cases the driver needs these fields in its own
> > private descriptor wrapper anyway.
> >
>
> I agree this should be moved up to the common descriptor. The unmap
> routines are fairly symmetric, so it may not be that bad to also have
> an "unmap type" that the cleanup routines could key off of, one of the
> options being "do not unmap" for clients that know what they are
> doing.

I'd prefer that all clients know what they are doing ;-)

Haavard
--
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/