OSDN Git Service

staging: comedi: usbduxsigma: tidy up usbduxsub_pwm_irq()
authorH Hartley Sweeten <hsweeten@visionengravers.com>
Thu, 23 May 2013 19:47:48 +0000 (12:47 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 30 May 2013 11:40:48 +0000 (20:40 +0900)
Rename the local variables to follow the "norm" for comedi drivers.
The comedi_subdevice is not used in this function. Remove that local
variable.

Use dev->class_dev for any dev_{level} messages.

Remove the extra check of 'pwm_cmd_running' before submitting the urb.
This flag was previously checked.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/usbduxsigma.c

index d705b07..f3dce88 100644 (file)
@@ -1481,19 +1481,9 @@ static int usbdux_pwm_cancel(struct comedi_device *dev,
 
 static void usbduxsub_pwm_irq(struct urb *urb)
 {
+       struct comedi_device *dev = urb->context;
+       struct usbduxsub *devpriv = dev->private;
        int ret;
-       struct usbduxsub *this_usbduxsub;
-       struct comedi_device *this_comedidev;
-       struct comedi_subdevice *s;
-
-       /* printk(KERN_DEBUG "PWM: IRQ\n"); */
-
-       /* the context variable points to the subdevice */
-       this_comedidev = urb->context;
-       /* the private structure of the subdevice is struct usbduxsub */
-       this_usbduxsub = this_comedidev->private;
-
-       s = &this_comedidev->subdevices[SUBDEV_DA];
 
        switch (urb->status) {
        case 0:
@@ -1504,47 +1494,36 @@ static void usbduxsub_pwm_irq(struct urb *urb)
        case -ENOENT:
        case -ESHUTDOWN:
        case -ECONNABORTED:
-               /*
-                * after an unlink command, unplug, ... etc
-                * no unlink needed here. Already shutting down.
-                */
-               if (this_usbduxsub->pwm_cmd_running)
-                       usbdux_pwm_stop(this_usbduxsub, 0);
-
+               /* happens after an unlink command */
+               if (devpriv->pwm_cmd_running)
+                       usbdux_pwm_stop(devpriv, 0);    /* w/o unlink */
                return;
 
        default:
                /* a real error */
-               if (this_usbduxsub->pwm_cmd_running) {
-                       dev_err(&this_usbduxsub->interface->dev,
-                               "comedi_: Non-zero urb status received in "
-                               "pwm intr context: %d\n", urb->status);
-                       usbdux_pwm_stop(this_usbduxsub, 0);
+               if (devpriv->pwm_cmd_running) {
+                       dev_err(dev->class_dev,
+                               "%s: non-zero urb status (%d)\n",
+                               __func__, urb->status);
+                       usbdux_pwm_stop(devpriv, 0);    /* w/o unlink */
                }
                return;
        }
 
-       /* are we actually running? */
-       if (!(this_usbduxsub->pwm_cmd_running))
+       if (!devpriv->pwm_cmd_running)
                return;
 
-       urb->transfer_buffer_length = this_usbduxsub->sizePwmBuf;
-       urb->dev = this_usbduxsub->usbdev;
+       urb->transfer_buffer_length = devpriv->sizePwmBuf;
+       urb->dev = devpriv->usbdev;
        urb->status = 0;
-       if (this_usbduxsub->pwm_cmd_running) {
-               ret = usb_submit_urb(urb, GFP_ATOMIC);
-               if (ret < 0) {
-                       dev_err(&this_usbduxsub->interface->dev,
-                               "comedi_: pwm urb resubm failed in int-cont. "
-                               "ret=%d", ret);
-                       if (ret == EL2NSYNC)
-                               dev_err(&this_usbduxsub->interface->dev,
-                                       "buggy USB host controller or bug in "
-                                       "IRQ handling!\n");
-
-                       /* don't do an unlink here */
-                       usbdux_pwm_stop(this_usbduxsub, 0);
-               }
+       ret = usb_submit_urb(urb, GFP_ATOMIC);
+       if (ret < 0) {
+               dev_err(dev->class_dev, "%s: urb resubmit failed (%d)\n",
+                       __func__, ret);
+               if (ret == EL2NSYNC)
+                       dev_err(dev->class_dev,
+                               "buggy USB host controller or bug in IRQ handler\n");
+               usbdux_pwm_stop(devpriv, 0);    /* w/o unlink */
        }
 }