]> rtime.felk.cvut.cz Git - linux-imx.git/commitdiff
staging: comedi: usbduxsigma: tidy up usbdux_dio_insn_bits()
authorH Hartley Sweeten <hsweeten@visionengravers.com>
Thu, 23 May 2013 20:00:36 +0000 (13:00 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 30 May 2013 11:41:03 +0000 (20:41 +0900)
Rename the function so it has namespace associated with the driver.
Rename the local variable used for the private data pointer.
Remove the unnecessary casts.

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 44043c5127b17aea71752179ab70548c4fa107a8..1ead4ede8ec50fce7b670def3f3854aca0939488 100644 (file)
@@ -1144,49 +1144,46 @@ static int usbdux_dio_insn_config(struct comedi_device *dev,
        return insn->n;
 }
 
-static int usbdux_dio_insn_bits(struct comedi_device *dev,
-                               struct comedi_subdevice *s,
-                               struct comedi_insn *insn,
-                               unsigned int *data)
+static int usbduxsigma_dio_insn_bits(struct comedi_device *dev,
+                                    struct comedi_subdevice *s,
+                                    struct comedi_insn *insn,
+                                    unsigned int *data)
 {
-       struct usbduxsigma_private *this_usbduxsub = dev->private;
-       int err;
+       struct usbduxsigma_private *devpriv = dev->private;
+       unsigned int mask = data[0];
+       unsigned int bits = data[1];
+       int ret;
 
-       down(&this_usbduxsub->sem);
+       down(&devpriv->sem);
 
-       /* The insn data is a mask in data[0] and the new data
-        * in data[1], each channel cooresponding to a bit. */
-       s->state &= ~data[0];
-       s->state |= data[0] & data[1];
-       /* The commands are 8 bits wide */
-       this_usbduxsub->dux_commands[1] = (s->io_bits) & 0x000000FF;
-       this_usbduxsub->dux_commands[4] = (s->state) & 0x000000FF;
-       this_usbduxsub->dux_commands[2] = ((s->io_bits) & 0x0000FF00) >> 8;
-       this_usbduxsub->dux_commands[5] = ((s->state) & 0x0000FF00) >> 8;
-       this_usbduxsub->dux_commands[3] = ((s->io_bits) & 0x00FF0000) >> 16;
-       this_usbduxsub->dux_commands[6] = ((s->state) & 0x00FF0000) >> 16;
-
-       /* This command also tells the firmware to return */
-       /* the digital input lines */
-       err = send_dux_commands(dev, SENDDIOBITSCOMMAND);
-       if (err < 0) {
-               up(&this_usbduxsub->sem);
-               return err;
-       }
-       err = receive_dux_commands(dev, SENDDIOBITSCOMMAND);
-       if (err < 0) {
-               up(&this_usbduxsub->sem);
-               return err;
-       }
+       s->state &= ~mask;
+       s->state |= (bits & mask);
 
-       data[1] = (((unsigned int)(this_usbduxsub->insnBuffer[1]))&0xff) |
-               ((((unsigned int)(this_usbduxsub->insnBuffer[2]))&0xff) << 8) |
-               ((((unsigned int)(this_usbduxsub->insnBuffer[3]))&0xff) << 16);
+       devpriv->dux_commands[1] = s->io_bits & 0xff;
+       devpriv->dux_commands[4] = s->state & 0xff;
+       devpriv->dux_commands[2] = (s->io_bits >> 8) & 0xff;
+       devpriv->dux_commands[5] = (s->state >> 8) & 0xff;
+       devpriv->dux_commands[3] = (s->io_bits >> 16) & 0xff;
+       devpriv->dux_commands[6] = (s->state >> 16) & 0xff;
 
-       s->state = data[1];
+       ret = send_dux_commands(dev, SENDDIOBITSCOMMAND);
+       if (ret < 0)
+               goto done;
+       ret = receive_dux_commands(dev, SENDDIOBITSCOMMAND);
+       if (ret < 0)
+               goto done;
 
-       up(&this_usbduxsub->sem);
-       return insn->n;
+       s->state = devpriv->insnBuffer[1] |
+                  (devpriv->insnBuffer[2] << 8) |
+                  (devpriv->insnBuffer[3] << 16);
+
+       data[1] = s->state;
+       ret = insn->n;
+
+done:
+       up(&devpriv->sem);
+
+       return ret;
 }
 
 static void usbdux_pwm_stop(struct usbduxsigma_private *devpriv, int do_unlink)
@@ -1518,7 +1515,7 @@ static int usbduxsigma_attach_common(struct comedi_device *dev)
        s->n_chan       = 24;
        s->maxdata      = 1;
        s->range_table  = &range_digital;
-       s->insn_bits    = usbdux_dio_insn_bits;
+       s->insn_bits    = usbduxsigma_dio_insn_bits;
        s->insn_config  = usbdux_dio_insn_config;
 
        if (devpriv->high_speed) {