On Mon, 2008-06-23 at 16:07 -0700, Subrahmanyam Bolla wrote:
> Hi,
> I'm working on a new DMA driver for our hardware that supports various
> modes of operations like memory to memory, memory to custom format, and
> visa-versa.
> The current Linux async_tx DMA interface only supports memory to memory
> transfer. We would like to extend this interface to support our
> hardware's new capabilities.
> Other than async_memcpy and async_memset operations supported by linux
> async_tx interface, we would like to add something like
> async_mem_buff_cpy,
> async_pkt_mem_cpy and a few more. These new operations use a new format
> for specifying the source and/or destination for doing the transfer.
> To support this we will have new structures as the API parameters.
> Could you pls let me know if this is the right approach or if there are
> any other suggestions.

It is difficult to know if this is the right approach without knowing
more about the intended usage. For example async_tx is meant for code
paths where it does not matter if an offload engine is available.
Compare that to Haavard's dma-slave implementation where the driver is
explicitly using a specific dma channel[1]. Which approach better fits
what you are trying to accomplish?


[1] http://marc.info/?l=linux-kernel&m=121448921821512&w=2

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/