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

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Dan Williams <dan.j.williams@...>
Cc: David Brownell <david-b@...>, <linux-kernel@...>, Shannon Nelson <shannon.nelson@...>, <kernel@...>, Francis Moreau <francis.moro@...>, Paul Mundt <lethal@...>, Vladimir A. Barinov <vbarinov@...>, Pierre Ossman <drzeus-list@...>
Date: Monday, February 4, 2008 - 11:32 am

On Wed, 30 Jan 2008 10:39:47 -0700
"Dan Williams" <dan.j.williams@intel.com> wrote:


I have to say I'm not crazy about the idea of adding more callbacks to
the descriptor...

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.

How about adding more variants of the "ack" function -- one for each
kind of transfer? For example, after an async_memcpy() transaction is
complete, the client must call async_memcpy_ack(), which could be an
inline function containing something along the lines of

static inline void async_memcpy_ack(struct dma_async_tx_descriptor *tx)
{
	struct dma_device *dma = tx->chan->device;

	dma_unmap_page(dma->dev, tx->src_phys, tx->len, DMA_TO_DEVICE);
	dma_unmap_page(dma->dev, tx->dst_phys, tx->len, DMA_FROM_DEVICE);
	async_tx_ack(tx);
}

which would evaluate to just async_tx_ack(tx) in most cases, since
dma_unmap_page() usually doesn't actually do anything.

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.

Haavard
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[RFC v2 0/5] dmaengine: Slave DMA interface and example users, Haavard Skinnemoen, (Tue Jan 29, 2:10 pm)
Re: [RFC v2 0/5] dmaengine: Slave DMA interface and example ..., Haavard Skinnemoen, (Tue Jan 29, 4:54 pm)
Re: [RFC v2 0/5] dmaengine: Slave DMA interface and example ..., Haavard Skinnemoen, (Wed Jan 30, 4:56 am)
Re: [RFC v2 0/5] dmaengine: Slave DMA interface and example ..., Haavard Skinnemoen, (Mon Feb 4, 11:32 am)
Re: [RFC v2 0/5] dmaengine: Slave DMA interface and example ..., Haavard Skinnemoen, (Thu Feb 7, 1:52 pm)
[RFC v2 1/5] dmaengine: Add dma_client parameter to device_a..., Haavard Skinnemoen, (Tue Jan 29, 2:10 pm)
[RFC v2 2/5] dmaengine: Add slave DMA interface, Haavard Skinnemoen, (Tue Jan 29, 2:10 pm)
SDIO driver not receiving responses, Farbod Nejati, (Thu Jan 31, 2:35 am)
Re: SDIO driver not receiving responses, Pierre Ossman, (Thu Feb 7, 3:51 pm)
Re: [RFC v2 2/5] dmaengine: Add slave DMA interface, David Brownell, (Wed Jan 30, 3:30 am)
Re: [RFC v2 2/5] dmaengine: Add slave DMA interface, Haavard Skinnemoen, (Wed Jan 30, 5:27 am)
Re: [RFC v2 2/5] dmaengine: Add slave DMA interface, David Brownell, (Wed Jan 30, 6:52 am)
Re: [RFC v2 2/5] dmaengine: Add slave DMA interface, Dan Williams, (Wed Jan 30, 2:28 pm)
Re: [RFC v2 2/5] dmaengine: Add slave DMA interface, David Brownell, (Wed Jan 30, 4:45 pm)
Re: [RFC v2 2/5] dmaengine: Add slave DMA interface, Haavard Skinnemoen, (Wed Jan 30, 8:26 am)
Re: [RFC v2 2/5] dmaengine: Add slave DMA interface, Dan Williams, (Wed Feb 6, 5:08 pm)
Re: [RFC v2 2/5] dmaengine: Add slave DMA interface, Haavard Skinnemoen, (Thu Feb 7, 1:56 pm)
Re: [RFC v2 2/5] dmaengine: Add slave DMA interface, David Brownell, (Thu Jan 31, 4:27 am)
Re: [RFC v2 2/5] dmaengine: Add slave DMA interface, Haavard Skinnemoen, (Thu Jan 31, 9:52 am)
Re: [RFC v2 2/5] dmaengine: Add slave DMA interface, Paul Mundt, (Thu Jan 31, 4:44 am)
Re: [RFC v2 2/5] dmaengine: Add slave DMA interface, David Brownell, (Thu Jan 31, 8:51 am)
Re: [RFC v2 2/5] dmaengine: Add slave DMA interface, Haavard Skinnemoen, (Thu Jan 31, 10:12 am)
[RFC v2 3/5] dmaengine: Make DMA Engine menu visible for AVR..., Haavard Skinnemoen, (Tue Jan 29, 2:10 pm)
[RFC v2 4/5] dmaengine: Driver for the Synopsys DesignWare D..., Haavard Skinnemoen, (Tue Jan 29, 2:10 pm)
[RFC v2 5/5] Atmel MCI: Driver for Atmel on-chip MMC control..., Haavard Skinnemoen, (Tue Jan 29, 2:10 pm)
Re: [RFC v2 5/5] Atmel MCI: Driver for Atmel on-chip MMC con..., Haavard Skinnemoen, (Wed Feb 13, 5:06 pm)
Re: [RFC v2 5/5] Atmel MCI: Driver for Atmel on-chip MMC con..., Haavard Skinnemoen, (Thu Feb 14, 4:36 am)
Re: [RFC v2 5/5] Atmel MCI: Driver for Atmel on-chip MMC con..., Haavard Skinnemoen, (Thu Feb 14, 3:21 pm)
MMC core debugfs support (was Re: [RFC v2 5/5] Atmel MCI: Dr..., Haavard Skinnemoen, (Thu Feb 14, 10:00 am)
Re: [RFC v2 5/5] Atmel MCI: Driver for Atmel on-chip MMC con..., Haavard Skinnemoen, (Wed Feb 13, 2:47 pm)