aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/staging/comedi/drivers/addi_apci_3120.c17
1 files changed, 5 insertions, 12 deletions
diff --git a/drivers/staging/comedi/drivers/addi_apci_3120.c b/drivers/staging/comedi/drivers/addi_apci_3120.c
index ea53694e0d32..ba96fe5910e1 100644
--- a/drivers/staging/comedi/drivers/addi_apci_3120.c
+++ b/drivers/staging/comedi/drivers/addi_apci_3120.c
@@ -456,17 +456,8 @@ static void apci3120_interrupt_dma(struct comedi_device *dev,
async->events |= COMEDI_CB_ERROR;
return;
}
- nsamples = comedi_bytes_to_samples(s, nbytes);
-
- if (devpriv->use_double_buffer) {
- struct apci3120_dmabuf *next_dmabuf;
-
- next_dmabuf = &devpriv->dmabuf[!devpriv->cur_dmabuf];
-
- /* start DMA on next buffer */
- apci3120_init_dma(dev, next_dmabuf);
- }
+ nsamples = comedi_bytes_to_samples(s, nbytes);
if (nsamples) {
comedi_buf_write_samples(s, dmabuf->virt, nsamples);
@@ -479,10 +470,12 @@ static void apci3120_interrupt_dma(struct comedi_device *dev,
return;
if (devpriv->use_double_buffer) {
- /* switch dma buffers for next interrupt */
+ /* switch DMA buffers for next interrupt */
devpriv->cur_dmabuf = !devpriv->cur_dmabuf;
+ dmabuf = &devpriv->dmabuf[devpriv->cur_dmabuf];
+ apci3120_init_dma(dev, dmabuf);
} else {
- /* restart DMA if is not using double buffering */
+ /* restart DMA if not using double buffering */
apci3120_init_dma(dev, dmabuf);
}
}