diff options
-rw-r--r-- | drivers/staging/comedi/drivers/usbdux.c | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/drivers/staging/comedi/drivers/usbdux.c b/drivers/staging/comedi/drivers/usbdux.c index edee14851d7..1f6750950a5 100644 --- a/drivers/staging/comedi/drivers/usbdux.c +++ b/drivers/staging/comedi/drivers/usbdux.c @@ -436,20 +436,15 @@ static int usbduxsub_unlink_outurbs(struct usbdux_private *usbduxsub_tmp) return err; } -/* This will cancel a running acquisition operation - * in any context. - */ -static int usbdux_ao_stop(struct usbdux_private *this_usbduxsub, int do_unlink) +static int usbdux_ao_stop(struct comedi_device *dev, int do_unlink) { + struct usbdux_private *devpriv = dev->private; int ret = 0; - if (!this_usbduxsub) - return -EFAULT; - if (do_unlink) - ret = usbduxsub_unlink_outurbs(this_usbduxsub); + ret = usbduxsub_unlink_outurbs(devpriv); - this_usbduxsub->ao_cmd_running = 0; + devpriv->ao_cmd_running = 0; return ret; } @@ -467,7 +462,7 @@ static int usbdux_ao_cancel(struct comedi_device *dev, /* prevent other CPUs from submitting a command just now */ down(&this_usbduxsub->sem); /* unlink only if it is really running */ - res = usbdux_ao_stop(this_usbduxsub, this_usbduxsub->ao_cmd_running); + res = usbdux_ao_stop(dev, this_usbduxsub->ao_cmd_running); up(&this_usbduxsub->sem); return res; } @@ -494,7 +489,7 @@ static void usbduxsub_ao_isoc_irq(struct urb *urb) if (devpriv->ao_cmd_running) { s->async->events |= COMEDI_CB_EOA; comedi_event(dev, s); - usbdux_ao_stop(devpriv, 0); + usbdux_ao_stop(dev, 0); } return; @@ -508,7 +503,7 @@ static void usbduxsub_ao_isoc_irq(struct urb *urb) s->async->events |= COMEDI_CB_EOA; comedi_event(dev, s); /* we do an unlink if we are in the high speed mode */ - usbdux_ao_stop(devpriv, 0); + usbdux_ao_stop(dev, 0); } return; } @@ -529,7 +524,7 @@ static void usbduxsub_ao_isoc_irq(struct urb *urb) devpriv->ao_sample_count--; if (devpriv->ao_sample_count < 0) { /* all samples transmitted */ - usbdux_ao_stop(devpriv, 0); + usbdux_ao_stop(dev, 0); s->async->events |= COMEDI_CB_EOA; comedi_event(dev, s); /* no resubmit of the urb */ @@ -588,7 +583,7 @@ static void usbduxsub_ao_isoc_irq(struct urb *urb) s->async->events |= COMEDI_CB_ERROR; comedi_event(dev, s); /* don't do an unlink here */ - usbdux_ao_stop(devpriv, 0); + usbdux_ao_stop(dev, 0); } } } |