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 04:55:59 -0400 |
commit | 213765d7b40a455ced8596edfa3cc51b5f69d515 (patch) | |
tree | 08f5ecd864b8c50263e2c35578165f0d895122c1 /arch/arm/mach-davinci/include/mach/edma.h | |
parent | 0c30e0d31b57375b1decad4cc0e139e2f7758986 (diff) |
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 3c7dc2db70e..eb8bfd7925e 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 { | |||
226 | 226 | ||
227 | #define EDMA_CHANNEL_ANY -1 /* for edma_alloc_channel() */ | 227 | #define EDMA_CHANNEL_ANY -1 /* for edma_alloc_channel() */ |
228 | #define EDMA_SLOT_ANY -1 /* for edma_alloc_slot() */ | 228 | #define EDMA_SLOT_ANY -1 /* for edma_alloc_slot() */ |
229 | #define EDMA_CONT_PARAMS_ANY 1001 | ||
230 | #define EDMA_CONT_PARAMS_FIXED_EXACT 1002 | ||
231 | #define EDMA_CONT_PARAMS_FIXED_NOT_EXACT 1003 | ||
229 | 232 | ||
230 | /* alloc/free DMA channels and their dedicated parameter RAM slots */ | 233 | /* alloc/free DMA channels and their dedicated parameter RAM slots */ |
231 | int edma_alloc_channel(int channel, | 234 | int edma_alloc_channel(int channel, |
@@ -237,6 +240,10 @@ void edma_free_channel(unsigned channel); | |||
237 | int edma_alloc_slot(unsigned ctlr, int slot); | 240 | int edma_alloc_slot(unsigned ctlr, int slot); |
238 | void edma_free_slot(unsigned slot); | 241 | void edma_free_slot(unsigned slot); |
239 | 242 | ||
243 | /* alloc/free a set of contiguous parameter RAM slots */ | ||
244 | int edma_alloc_cont_slots(unsigned ctlr, unsigned int id, int slot, int count); | ||
245 | int edma_free_cont_slots(unsigned slot, int count); | ||
246 | |||
240 | /* calls that operate on part of a parameter RAM slot */ | 247 | /* calls that operate on part of a parameter RAM slot */ |
241 | void edma_set_src(unsigned slot, dma_addr_t src_port, | 248 | void edma_set_src(unsigned slot, dma_addr_t src_port, |
242 | enum address_mode mode, enum fifo_width); | 249 | enum address_mode mode, enum fifo_width); |