diff options
author | Sandeep Paulraj <s-paulraj@ti.com> | 2009-07-27 15:10:36 -0400 |
---|---|---|
committer | Kevin Hilman <khilman@deeprootsystems.com> | 2009-08-26 11:55:59 +0300 |
commit | 213765d7b40a455ced8596edfa3cc51b5f69d515 (patch) | |
tree | 08f5ecd864b8c50263e2c35578165f0d895122c1 /arch/arm/mach-davinci/include/mach/edma.h | |
parent | 0c30e0d31b57375b1decad4cc0e139e2f7758986 (diff) | |
download | op-kernel-dev-213765d7b40a455ced8596edfa3cc51b5f69d515.zip op-kernel-dev-213765d7b40a455ced8596edfa3cc51b5f69d515.tar.gz |
DaVinci: EDMA: Adding 2 new APIs for allocating/freeing PARAMs
For best performance, codecs often setup linked triggered
transfers with a contiguous block of params, and that is when
this API is used. Setup/configuration of these parameter RAMs
is most efficient if they are contiguous.
There is an API to allocate a set of contiguous parameter RAMs and
a corresponding API to free a set of contiguous parameter RAMs
Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Diffstat (limited to 'arch/arm/mach-davinci/include/mach/edma.h')
-rw-r--r-- | arch/arm/mach-davinci/include/mach/edma.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/arm/mach-davinci/include/mach/edma.h b/arch/arm/mach-davinci/include/mach/edma.h index 3c7dc2d..eb8bfd7 100644 --- a/arch/arm/mach-davinci/include/mach/edma.h +++ b/arch/arm/mach-davinci/include/mach/edma.h @@ -226,6 +226,9 @@ enum sync_dimension { #define EDMA_CHANNEL_ANY -1 /* for edma_alloc_channel() */ #define EDMA_SLOT_ANY -1 /* for edma_alloc_slot() */ +#define EDMA_CONT_PARAMS_ANY 1001 +#define EDMA_CONT_PARAMS_FIXED_EXACT 1002 +#define EDMA_CONT_PARAMS_FIXED_NOT_EXACT 1003 /* alloc/free DMA channels and their dedicated parameter RAM slots */ int edma_alloc_channel(int channel, @@ -237,6 +240,10 @@ void edma_free_channel(unsigned channel); int edma_alloc_slot(unsigned ctlr, int slot); void edma_free_slot(unsigned slot); +/* alloc/free a set of contiguous parameter RAM slots */ +int edma_alloc_cont_slots(unsigned ctlr, unsigned int id, int slot, int count); +int edma_free_cont_slots(unsigned slot, int count); + /* calls that operate on part of a parameter RAM slot */ void edma_set_src(unsigned slot, dma_addr_t src_port, enum address_mode mode, enum fifo_width); |