staging: comedi: ni_labpc: use labpc_have_dma_chan()
authorIan Abbott <abbotti@mev.co.uk>
Fri, 28 Jun 2013 16:09:22 +0000 (17:09 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 23 Jul 2013 21:27:51 +0000 (14:27 -0700)
Call the new static inline function `labpc_have_dma_chan()` from
`labpc_ai_cmd()` to check if the ISA DMA channel has been initialized,
tidying up the surrounding code and removing an `#ifdef`.  If the
"ni_labpc_isadma" module is not being built, `labpc_have_dma_chan()`
doesn't bother checking the DMA channel and just returns `false`,
allowing the compiler to optimize out a small amount of code.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/ni_labpc.c

index ab1773e1fbccb1e80955af3439a2e09b32ef6a66..1f0f7f5382151d091f035779d8f586e3b8015f6f 100644 (file)
@@ -871,25 +871,20 @@ static int labpc_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
                return ret;
        }
 
-#ifdef CONFIG_ISA_DMA_API
-       /*  figure out what method we will use to transfer data */
-       if (devpriv->dma_chan &&        /*  need a dma channel allocated */
-               /*
-                * dma unsafe at RT priority,
-                * and too much setup time for TRIG_WAKE_EOS for
-                */
-           (cmd->flags & (TRIG_WAKE_EOS | TRIG_RT)) == 0) {
+       /* figure out what method we will use to transfer data */
+       if (labpc_have_dma_chan(dev) &&
+           /* dma unsafe at RT priority,
+            * and too much setup time for TRIG_WAKE_EOS */
+           (cmd->flags & (TRIG_WAKE_EOS | TRIG_RT)) == 0)
                xfer = isa_dma_transfer;
-               /* pc-plus has no fifo-half full interrupt */
-       } else
-#endif
-       if (board->is_labpc1200 &&
-                  /*  wake-end-of-scan should interrupt on fifo not empty */
-                  (cmd->flags & TRIG_WAKE_EOS) == 0 &&
-                  /*  make sure we are taking more than just a few points */
-                  (cmd->stop_src != TRIG_COUNT || devpriv->count > 256)) {
+       else if (/* pc-plus has no fifo-half full interrupt */
+                board->is_labpc1200 &&
+                /* wake-end-of-scan should interrupt on fifo not empty */
+                (cmd->flags & TRIG_WAKE_EOS) == 0 &&
+                /* make sure we are taking more than just a few points */
+                (cmd->stop_src != TRIG_COUNT || devpriv->count > 256))
                xfer = fifo_half_full_transfer;
-       else
+       else
                xfer = fifo_not_empty_transfer;
        devpriv->current_transfer = xfer;