aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/blackfin/kernel/bfin_dma_5xx.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/arch/blackfin/kernel/bfin_dma_5xx.c b/arch/blackfin/kernel/bfin_dma_5xx.c
index 639dcee5611c..924c00286bab 100644
--- a/arch/blackfin/kernel/bfin_dma_5xx.c
+++ b/arch/blackfin/kernel/bfin_dma_5xx.c
@@ -138,21 +138,20 @@ EXPORT_SYMBOL(request_dma);
138 138
139int set_dma_callback(unsigned int channel, irq_handler_t callback, void *data) 139int set_dma_callback(unsigned int channel, irq_handler_t callback, void *data)
140{ 140{
141 BUG_ON(channel >= MAX_DMA_CHANNELS || 141 int ret;
142 unsigned int irq;
143
144 BUG_ON(channel >= MAX_DMA_CHANNELS || !callback ||
142 !atomic_read(&dma_ch[channel].chan_status)); 145 !atomic_read(&dma_ch[channel].chan_status));
143 146
144 if (callback != NULL) { 147 irq = channel2irq(channel);
145 int ret; 148 ret = request_irq(irq, callback, 0, dma_ch[channel].device_id, data);
146 unsigned int irq = channel2irq(channel); 149 if (ret)
150 return ret;
147 151
148 ret = request_irq(irq, callback, IRQF_DISABLED, 152 dma_ch[channel].irq = irq;
149 dma_ch[channel].device_id, data); 153 dma_ch[channel].data = data;
150 if (ret)
151 return ret;
152 154
153 dma_ch[channel].irq = irq;
154 dma_ch[channel].data = data;
155 }
156 return 0; 155 return 0;
157} 156}
158EXPORT_SYMBOL(set_dma_callback); 157EXPORT_SYMBOL(set_dma_callback);