Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5c8a138e authored by Ian Abbott's avatar Ian Abbott Committed by Greg Kroah-Hartman
Browse files

staging: comedi: ni_labpc: use labpc_have_dma_chan()



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: default avatarIan Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c6208c2f
Loading
Loading
Loading
Loading
+12 −17
Original line number Original line Diff line number Diff line
@@ -871,25 +871,20 @@ static int labpc_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
		return ret;
		return ret;
	}
	}


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