return ret;
}
-/*
- * Stops the data acquision.
- * It should be safe to call this function from any context.
- */
-static int usbduxfast_unlink_urbs(struct comedi_device *dev)
+static int usbduxfast_ai_stop(struct comedi_device *dev, int do_unlink)
{
struct usbduxfast_private *devpriv = dev->private;
- if (devpriv && devpriv->urb) {
- devpriv->ai_cmd_running = 0;
- /* waits until a running transfer is over */
- usb_kill_urb(devpriv->urb);
- }
- return 0;
-}
-
-/*
- * This will stop a running acquisition operation.
- * Is called from within this driver from both the
- * interrupt context and from comedi.
- */
-static int usbduxfast_ai_stop(struct comedi_device *dev,
- int do_unlink)
-{
- struct usbduxfast_private *devpriv = dev->private;
- int ret = 0;
-
- if (!devpriv) {
- pr_err("%s: devpriv=NULL!\n", __func__);
- return -EFAULT;
- }
-
+ /* stop aquistion */
devpriv->ai_cmd_running = 0;
- if (do_unlink)
- /* stop aquistion */
- ret = usbduxfast_unlink_urbs(dev);
+ if (do_unlink && devpriv->urb) {
+ /* kill the running transfer */
+ usb_kill_urb(devpriv->urb);
+ }
- return ret;
+ return 0;
}
/*