summaryrefslogtreecommitdiff
path: root/drivers/staging/comedi/drivers/ni_labpc_isadma.c
diff options
context:
space:
mode:
authorH Hartley Sweeten <hsweeten@visionengravers.com>2015-01-12 10:55:53 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-01-17 14:25:20 -0800
commit9ff24fd577fdc6744ca328bdee59133b1094aede (patch)
treeb4d533629cb66829f797b4b3f7bd7018f4003702 /drivers/staging/comedi/drivers/ni_labpc_isadma.c
parent4d1c15c08f6620ac912d56a800a0322e64a7e3e5 (diff)
staging: comedi: ni_labpc_isadma: tidy up labpc_init_dma_chan()
DMA support is optional for the labpc driver. The return value from labpc_init_dma_chan() is not even checked by the caller. Change the return type to void and tidy up the function a bit. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/comedi/drivers/ni_labpc_isadma.c')
-rw-r--r--drivers/staging/comedi/drivers/ni_labpc_isadma.c22
1 files changed, 8 insertions, 14 deletions
diff --git a/drivers/staging/comedi/drivers/ni_labpc_isadma.c b/drivers/staging/comedi/drivers/ni_labpc_isadma.c
index b7217a76df67..829c4e447912 100644
--- a/drivers/staging/comedi/drivers/ni_labpc_isadma.c
+++ b/drivers/staging/comedi/drivers/ni_labpc_isadma.c
@@ -163,28 +163,24 @@ void labpc_handle_dma_status(struct comedi_device *dev)
}
EXPORT_SYMBOL_GPL(labpc_handle_dma_status);
-int labpc_init_dma_chan(struct comedi_device *dev, unsigned int dma_chan)
+void labpc_init_dma_chan(struct comedi_device *dev, unsigned int dma_chan)
{
struct labpc_private *devpriv = dev->private;
struct labpc_dma_desc *dma = &devpriv->dma_desc;
- void *dma_buffer;
unsigned long dma_flags;
- int ret;
if (dma_chan != 1 && dma_chan != 3)
- return -EINVAL;
+ return;
- dma_buffer = kmalloc(dma_buffer_size, GFP_KERNEL | GFP_DMA);
- if (!dma_buffer)
- return -ENOMEM;
+ if (request_dma(dma_chan, dev->board_name))
+ return;
- ret = request_dma(dma_chan, dev->board_name);
- if (ret) {
- kfree(dma_buffer);
- return ret;
+ dma->virt_addr = kmalloc(dma_buffer_size, GFP_KERNEL | GFP_DMA);
+ if (!dma->virt_addr) {
+ free_dma(dma_chan);
+ return;
}
- dma->virt_addr = dma_buffer;
dma->chan = dma_chan;
dma->hw_addr = virt_to_bus(dma->virt_addr);
@@ -192,8 +188,6 @@ int labpc_init_dma_chan(struct comedi_device *dev, unsigned int dma_chan)
disable_dma(dma->chan);
set_dma_mode(dma->chan, DMA_MODE_READ);
release_dma_lock(dma_flags);
-
- return 0;
}
EXPORT_SYMBOL_GPL(labpc_init_dma_chan);