Commit 6754698b authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman

staging: comedi: usbdux: tidy up usbduxsub_submit_outurbs()

Pass the comedi_device pointer (the urb context) to this function
instead of the private data pointer.

Use a local variable for the urb pointers that are setup and submitted.

Remove the sanity check of the private data. This function can only
get called if the allocation was successful during the attach.
Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 865d9eed
...@@ -723,22 +723,25 @@ static int usbduxsub_submit_inurbs(struct comedi_device *dev) ...@@ -723,22 +723,25 @@ static int usbduxsub_submit_inurbs(struct comedi_device *dev)
return 0; return 0;
} }
static int usbduxsub_submit_outurbs(struct usbdux_private *usbduxsub) static int usbduxsub_submit_outurbs(struct comedi_device *dev)
{ {
int i, err_flag; struct usbdux_private *devpriv = dev->private;
struct urb *urb;
int ret;
int i;
if (!usbduxsub) for (i = 0; i < devpriv->num_out_buffers; i++) {
return -EFAULT; urb = devpriv->urb_out[i];
for (i = 0; i < usbduxsub->num_out_buffers; i++) {
/* in case of a resubmission after an unlink... */ /* in case of a resubmission after an unlink... */
usbduxsub->urb_out[i]->context = usbduxsub->comedidev; urb->context = dev;
usbduxsub->urb_out[i]->dev = usbduxsub->usbdev; urb->dev = devpriv->usbdev;
usbduxsub->urb_out[i]->status = 0; urb->status = 0;
usbduxsub->urb_out[i]->transfer_flags = URB_ISO_ASAP; urb->transfer_flags = URB_ISO_ASAP;
err_flag = usb_submit_urb(usbduxsub->urb_out[i], GFP_ATOMIC);
if (err_flag) ret = usb_submit_urb(urb, GFP_ATOMIC);
return err_flag; if (ret)
return ret;
} }
return 0; return 0;
} }
...@@ -1131,7 +1134,7 @@ static int usbdux_ao_inttrig(struct comedi_device *dev, ...@@ -1131,7 +1134,7 @@ static int usbdux_ao_inttrig(struct comedi_device *dev,
} }
if (!(this_usbduxsub->ao_cmd_running)) { if (!(this_usbduxsub->ao_cmd_running)) {
this_usbduxsub->ao_cmd_running = 1; this_usbduxsub->ao_cmd_running = 1;
ret = usbduxsub_submit_outurbs(this_usbduxsub); ret = usbduxsub_submit_outurbs(dev);
if (ret < 0) { if (ret < 0) {
this_usbduxsub->ao_cmd_running = 0; this_usbduxsub->ao_cmd_running = 0;
up(&this_usbduxsub->sem); up(&this_usbduxsub->sem);
...@@ -1289,7 +1292,7 @@ static int usbdux_ao_cmd(struct comedi_device *dev, struct comedi_subdevice *s) ...@@ -1289,7 +1292,7 @@ static int usbdux_ao_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
if (cmd->start_src == TRIG_NOW) { if (cmd->start_src == TRIG_NOW) {
/* enable this acquisition operation */ /* enable this acquisition operation */
this_usbduxsub->ao_cmd_running = 1; this_usbduxsub->ao_cmd_running = 1;
ret = usbduxsub_submit_outurbs(this_usbduxsub); ret = usbduxsub_submit_outurbs(dev);
if (ret < 0) { if (ret < 0) {
this_usbduxsub->ao_cmd_running = 0; this_usbduxsub->ao_cmd_running = 0;
/* fixme: unlink here?? */ /* fixme: unlink here?? */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment