staging: comedi: adv_pci1710: absorb pci171x_ai_docmd_and_mode()
authorH Hartley Sweeten <hsweeten@visionengravers.com>
Wed, 23 Apr 2014 23:06:59 +0000 (16:06 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 25 Apr 2014 22:07:40 +0000 (15:07 -0700)
This helper function is called by the ai (*do_cmd) to setup and
start the async command based on the "mode" of operation. This
"mode" is determined by the cmd convert_src and start_src.

Move this "mode" determination and combine the functions.

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>
drivers/staging/comedi/drivers/adv_pci1710.c

index 60b926e5062accf468ee75bd37abc4a5320a7300..6ab78bb629bee8d3b311f491b6d509f3649fe1d2 100644 (file)
@@ -947,16 +947,22 @@ static irqreturn_t interrupt_service_pci1710(int irq, void *d)
        return IRQ_HANDLED;
 }
 
-/*
-==============================================================================
-*/
-static int pci171x_ai_docmd_and_mode(int mode, struct comedi_device *dev,
-                                    struct comedi_subdevice *s)
+static int pci171x_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
 {
        struct pci1710_private *devpriv = dev->private;
        struct comedi_cmd *cmd = &s->async->cmd;
        unsigned int divisor1 = 0, divisor2 = 0;
        unsigned int seglen;
+       int mode;
+
+       if (cmd->convert_src == TRIG_TIMER) {
+               if (cmd->start_src == TRIG_EXT)
+                       mode = 2;
+               else
+                       mode = 1;
+       } else {        /* TRIG_EXT */
+               mode = 3;
+       }
 
        start_pacer(dev, -1, 0, 0);     /*  stop pacer */
 
@@ -1108,25 +1114,6 @@ static int pci171x_ai_cmdtest(struct comedi_device *dev,
        return 0;
 }
 
-/*
-==============================================================================
-*/
-static int pci171x_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
-{
-       struct comedi_cmd *cmd = &s->async->cmd;
-
-       if (cmd->convert_src == TRIG_TIMER) {   /*  mode 1 and 2 */
-               return pci171x_ai_docmd_and_mode(cmd->start_src ==
-                                                TRIG_EXT ? 2 : 1, dev,
-                                                s);
-       }
-       if (cmd->convert_src == TRIG_EXT) {     /*  mode 3 */
-               return pci171x_ai_docmd_and_mode(3, dev, s);
-       }
-
-       return -1;
-}
-
 /*
 ==============================================================================
 */