diff options
author | 2011-07-27 20:43:21 +0530 | |
---|---|---|
committer | 2011-07-27 20:43:21 +0530 | |
commit | 1ae105aa7416087f2920c35c3cd16831d0d09c9c (patch) | |
tree | 935b2d7c2b902f77b37e38ec9108f905fb09f690 /drivers/dma/mxs-dma.c | |
parent | Linux 3.0 (diff) | |
parent | Improve slave/cyclic DMA engine documentation (diff) | |
download | linux-dev-1ae105aa7416087f2920c35c3cd16831d0d09c9c.tar.xz linux-dev-1ae105aa7416087f2920c35c3cd16831d0d09c9c.zip |
Merge branch 'next' into for-linus-3.0
Diffstat (limited to 'drivers/dma/mxs-dma.c')
-rw-r--r-- | drivers/dma/mxs-dma.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/dma/mxs-dma.c b/drivers/dma/mxs-dma.c index 88aad4f54002..be641cbd36fc 100644 --- a/drivers/dma/mxs-dma.c +++ b/drivers/dma/mxs-dma.c @@ -327,10 +327,12 @@ static int mxs_dma_alloc_chan_resources(struct dma_chan *chan) memset(mxs_chan->ccw, 0, PAGE_SIZE); - ret = request_irq(mxs_chan->chan_irq, mxs_dma_int_handler, - 0, "mxs-dma", mxs_dma); - if (ret) - goto err_irq; + if (mxs_chan->chan_irq != NO_IRQ) { + ret = request_irq(mxs_chan->chan_irq, mxs_dma_int_handler, + 0, "mxs-dma", mxs_dma); + if (ret) + goto err_irq; + } ret = clk_enable(mxs_dma->clk); if (ret) @@ -535,6 +537,7 @@ static int mxs_dma_control(struct dma_chan *chan, enum dma_ctrl_cmd cmd, switch (cmd) { case DMA_TERMINATE_ALL: mxs_dma_disable_chan(mxs_chan); + mxs_dma_reset_chan(mxs_chan); break; case DMA_PAUSE: mxs_dma_pause_chan(mxs_chan); @@ -707,6 +710,8 @@ static struct platform_device_id mxs_dma_type[] = { }, { .name = "mxs-dma-apbx", .driver_data = MXS_DMA_APBX, + }, { + /* end of list */ } }; |