summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-davinci/dma.c
diff options
context:
space:
mode:
authorSandeep Paulraj <s-paulraj@ti.com>2009-09-16 18:17:43 -0400
committerKevin Hilman <khilman@deeprootsystems.com>2009-11-25 10:21:24 -0800
commit6b0cf4e93c3212810f775967bdb2206be65eccec (patch)
treec739b7ca937bf0b855e402dd73ad49dff90b8360 /arch/arm/mach-davinci/dma.c
parent51c99e0498c637bf43fb3be786d121d8dceef337 (diff)
downloadlinux-6b0cf4e93c3212810f775967bdb2206be65eccec.tar.bz2
DaVinci: EDMA: Fix Bug in edma_alloc_cont_slots API
The edma_alloc_cont_slots API is used for obtaining a set of contiguous slots. When we use the "_ANY" option with this API, by definition of this option it is suppossed to start looking for a set of contiguous slots starting from slot 64 for DaVinci SOC's and 32 for DA8xx SOC's. This has been explained in the API description in the driver itself. So when we use the "_ANY" option with this API, the slot number passed as an argument should be a "don't care". This patch takes care of this condition mentioned above. When checking to see if the starting slot is a valid number, it checks to make sure that the "_ANY" option is not used. Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Diffstat (limited to 'arch/arm/mach-davinci/dma.c')
-rw-r--r--arch/arm/mach-davinci/dma.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/arm/mach-davinci/dma.c b/arch/arm/mach-davinci/dma.c
index 89ce3e1a7ab1..8eda4c3be940 100644
--- a/arch/arm/mach-davinci/dma.c
+++ b/arch/arm/mach-davinci/dma.c
@@ -771,8 +771,9 @@ int edma_alloc_cont_slots(unsigned ctlr, unsigned int id, int slot, int count)
* the number of channels and lesser than the total number
* of slots
*/
- if (slot < edma_info[ctlr]->num_channels ||
- slot >= edma_info[ctlr]->num_slots)
+ if ((id != EDMA_CONT_PARAMS_ANY) &&
+ (slot < edma_info[ctlr]->num_channels ||
+ slot >= edma_info[ctlr]->num_slots))
return -EINVAL;
/*