staging: comedi: usbdux: fix the cmd->start_arg use

For all cmd->start_src values this driver trivially validates that the
cmd->start_arg is 0.

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

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

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>
This commit is contained in:
H Hartley Sweeten 2014-04-17 10:08:10 -07:00 committed by Greg Kroah-Hartman
parent 95194590a7
commit 7d8b7b4d92

View File

@ -692,16 +692,17 @@ static int receive_dux_commands(struct comedi_device *dev, unsigned int command)
static int usbdux_ai_inttrig(struct comedi_device *dev,
struct comedi_subdevice *s,
unsigned int trignum)
unsigned int trig_num)
{
struct usbdux_private *devpriv = dev->private;
int ret = -EINVAL;
struct comedi_cmd *cmd = &s->async->cmd;
int ret;
if (trig_num != cmd->start_arg)
return -EINVAL;
down(&devpriv->sem);
if (trignum != 0)
goto ai_trig_exit;
if (!devpriv->ai_cmd_running) {
devpriv->ai_cmd_running = 1;
ret = usbdux_submit_urbs(dev, devpriv->ai_urbs,
@ -913,16 +914,17 @@ ao_write_exit:
static int usbdux_ao_inttrig(struct comedi_device *dev,
struct comedi_subdevice *s,
unsigned int trignum)
unsigned int trig_num)
{
struct usbdux_private *devpriv = dev->private;
int ret = -EINVAL;
struct comedi_cmd *cmd = &s->async->cmd;
int ret;
if (trig_num != cmd->start_arg)
return -EINVAL;
down(&devpriv->sem);
if (trignum != 0)
goto ao_trig_exit;
if (!devpriv->ao_cmd_running) {
devpriv->ao_cmd_running = 1;
ret = usbdux_submit_urbs(dev, devpriv->ao_urbs,