This driver supports cmd->start_src values of TRIG_NOW, TRIG_EXT, and
TRIG_INT. Currently the cmd->start_arg is only validated for TRIG_NOW.

For TRIG_EXT sources, the cmd->start_src is driver specific. For a
TRIG_INT source, the cmd->start_arg is actually the valid trig_num
that is used by the async (*inttrig) callback.

The cmd->start_arg is currently not use in the driver. Just trivially
validate it to be 0 for all cmd->start_src values.

Refactor the (*inttrig) function so that the cmd->start_arg is used
to check the trig_num instead of the open coded value.

For aesthetics, remove some unnecessary comments in the (*do_cmd)
function.

Signed-off-by: H Hartley Sweeten <hswee...@visionengravers.com>
Cc: Ian Abbott <abbo...@mev.co.uk>
Cc: Greg Kroah-Hartman <gre...@linuxfoundation.org>
---
 drivers/staging/comedi/drivers/usbduxfast.c | 21 +++++++--------------
 1 file changed, 7 insertions(+), 14 deletions(-)

diff --git a/drivers/staging/comedi/drivers/usbduxfast.c 
b/drivers/staging/comedi/drivers/usbduxfast.c
index d6fae11..a4d7bfb 100644
--- a/drivers/staging/comedi/drivers/usbduxfast.c
+++ b/drivers/staging/comedi/drivers/usbduxfast.c
@@ -398,8 +398,7 @@ static int usbduxfast_ai_cmdtest(struct comedi_device *dev,
 
        /* Step 3: check if arguments are trivially valid */
 
-       if (cmd->start_src == TRIG_NOW)
-               err |= cfc_check_trigger_arg_is(&cmd->start_arg, 0);
+       err |= cfc_check_trigger_arg_is(&cmd->start_arg, 0);
 
        if (!cmd->chanlist_len)
                err |= -EINVAL;
@@ -451,21 +450,20 @@ static int usbduxfast_ai_cmdtest(struct comedi_device 
*dev,
 
 static int usbduxfast_ai_inttrig(struct comedi_device *dev,
                                 struct comedi_subdevice *s,
-                                unsigned int trignum)
+                                unsigned int trig_num)
 {
        struct usbduxfast_private *devpriv = dev->private;
+       struct comedi_cmd *cmd = &s->async->cmd;
        int ret;
 
        if (!devpriv)
                return -EFAULT;
 
+       if (trig_num != cmd->start_arg)
+               return -EINVAL;
+
        down(&devpriv->sem);
 
-       if (trignum != 0) {
-               dev_err(dev->class_dev, "invalid trignum\n");
-               up(&devpriv->sem);
-               return -EINVAL;
-       }
        if (!devpriv->ai_cmd_running) {
                devpriv->ai_cmd_running = 1;
                ret = usbduxfast_submit_urb(dev);
@@ -837,12 +835,7 @@ static int usbduxfast_ai_cmd(struct comedi_device *dev,
                        return ret;
                }
                s->async->inttrig = NULL;
-       } else {
-               /*
-                * TRIG_INT
-                * don't enable the acquision operation
-                * wait for an internal signal
-                */
+       } else {        /* TRIG_INT */
                s->async->inttrig = usbduxfast_ai_inttrig;
        }
        up(&devpriv->sem);
-- 
1.8.5.2

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to