diff options
author | Vinod Koul <vinod.koul@intel.com> | 2014-10-15 21:39:09 +0530 |
---|---|---|
committer | Vinod Koul <vinod.koul@intel.com> | 2014-10-15 21:39:09 +0530 |
commit | cf6c0ab54daeb614ae79bdd0168e8b7ec2650134 (patch) | |
tree | a5dbdf23ae9184edce0cab7944df9798da309a1d /drivers/dma | |
parent | 2856fcdc1f7b6dc237afc2dbec6fbd21fe88dd4e (diff) | |
parent | b80719b6bd083130c112cb4d3e5329a164eef4c3 (diff) | |
download | linux-cf6c0ab54daeb614ae79bdd0168e8b7ec2650134.tar.bz2 |
Merge branch 'topic/dma_control_fsl_acks' into for-linus
Diffstat (limited to 'drivers/dma')
-rw-r--r-- | drivers/dma/fsldma.c | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c index d5d6885ab341..994bcb2c6b92 100644 --- a/drivers/dma/fsldma.c +++ b/drivers/dma/fsldma.c @@ -36,7 +36,7 @@ #include <linux/of_address.h> #include <linux/of_irq.h> #include <linux/of_platform.h> - +#include <linux/fsldma.h> #include "dmaengine.h" #include "fsldma.h" @@ -367,6 +367,20 @@ static void fsl_chan_toggle_ext_start(struct fsldma_chan *chan, int enable) chan->feature &= ~FSL_DMA_CHAN_START_EXT; } +int fsl_dma_external_start(struct dma_chan *dchan, int enable) +{ + struct fsldma_chan *chan; + + if (!dchan) + return -EINVAL; + + chan = to_fsl_chan(dchan); + + fsl_chan_toggle_ext_start(chan, enable); + return 0; +} +EXPORT_SYMBOL_GPL(fsl_dma_external_start); + static void append_ld_queue(struct fsldma_chan *chan, struct fsl_desc_sw *desc) { struct fsl_desc_sw *tail = to_fsl_desc(chan->ld_pending.prev); @@ -998,15 +1012,6 @@ static int fsl_dma_device_control(struct dma_chan *dchan, chan->set_request_count(chan, size); return 0; - case FSLDMA_EXTERNAL_START: - - /* make sure the channel supports external start */ - if (!chan->toggle_ext_start) - return -ENXIO; - - chan->toggle_ext_start(chan, arg); - return 0; - default: return -ENXIO; } |