aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma
diff options
context:
space:
mode:
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>2013-01-10 03:52:58 -0500
committerVinod Koul <vinod.koul@intel.com>2013-01-12 08:07:21 -0500
commitf44b92f4dd2f6caf326b149e0b9636a1d4e50184 (patch)
tree500c283c06fdcb6194f5ec8c4347875a0cdff441 /drivers/dma
parent0e7264cc79a2d5c0ffa32c08d8f1cf84b2ec4fef (diff)
dma: dw_dmac: check direction properly in dw_dma_cyclic_prep
dma_transfer_direction is a normal enum. It means we can't usually use the values as bit fields. Let's adjust this check and move it above the usage of the direction parameter, due to the nature of the following usage of it. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Acked-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Diffstat (limited to 'drivers/dma')
-rw-r--r--drivers/dma/dw_dmac.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c
index 6c9e20a7ff51..ca996bc5ccaf 100644
--- a/drivers/dma/dw_dmac.c
+++ b/drivers/dma/dw_dmac.c
@@ -1355,6 +1355,9 @@ struct dw_cyclic_desc *dw_dma_cyclic_prep(struct dma_chan *chan,
1355 1355
1356 retval = ERR_PTR(-EINVAL); 1356 retval = ERR_PTR(-EINVAL);
1357 1357
1358 if (unlikely(!is_slave_direction(direction)))
1359 goto out_err;
1360
1358 if (direction == DMA_MEM_TO_DEV) 1361 if (direction == DMA_MEM_TO_DEV)
1359 reg_width = __ffs(sconfig->dst_addr_width); 1362 reg_width = __ffs(sconfig->dst_addr_width);
1360 else 1363 else
@@ -1369,8 +1372,6 @@ struct dw_cyclic_desc *dw_dma_cyclic_prep(struct dma_chan *chan,
1369 goto out_err; 1372 goto out_err;
1370 if (unlikely(buf_addr & ((1 << reg_width) - 1))) 1373 if (unlikely(buf_addr & ((1 << reg_width) - 1)))
1371 goto out_err; 1374 goto out_err;
1372 if (unlikely(!(direction & (DMA_MEM_TO_DEV | DMA_DEV_TO_MEM))))
1373 goto out_err;
1374 1375
1375 retval = ERR_PTR(-ENOMEM); 1376 retval = ERR_PTR(-ENOMEM);
1376 1377