aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/comedi/drivers/usbduxsigma.c
diff options
context:
space:
mode:
authorH Hartley Sweeten <hsweeten@visionengravers.com>2015-08-14 11:39:42 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-09-12 18:24:14 -0700
commitd3f1e38830f7201d901aa456050d00be1931b248 (patch)
tree49de30b5b63d3bbb83fdb752b1eed6c90b7bbddb /drivers/staging/comedi/drivers/usbduxsigma.c
parentstaging: comedi: usbduxsigma: tidy up block comments (diff)
downloadlinux-dev-d3f1e38830f7201d901aa456050d00be1931b248.tar.xz
linux-dev-d3f1e38830f7201d901aa456050d00be1931b248.zip
staging: comedi: usbduxsigma: use comedi_offset_munge()
Use the comedi_offset_munge() helper to convert the hardware two's complement values to the offset binary format expected by comedi. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Reviewed-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/comedi/drivers/usbduxsigma.c')
-rw-r--r--drivers/staging/comedi/drivers/usbduxsigma.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/drivers/staging/comedi/drivers/usbduxsigma.c b/drivers/staging/comedi/drivers/usbduxsigma.c
index 8b4cafe53d9b..d49147bc2786 100644
--- a/drivers/staging/comedi/drivers/usbduxsigma.c
+++ b/drivers/staging/comedi/drivers/usbduxsigma.c
@@ -230,8 +230,7 @@ static void usbduxsigma_ai_handle_urb(struct comedi_device *dev,
for (i = 0; i < cmd->chanlist_len; i++) {
val = be32_to_cpu(devpriv->in_buf[i + 1]);
val &= 0x00ffffff; /* strip status byte */
- val ^= 0x00800000; /* convert to unsigned */
-
+ val = comedi_offset_munge(s, val);
if (!comedi_buf_write_samples(s, &val, 1))
return;
}
@@ -749,9 +748,7 @@ static int usbduxsigma_ai_insn_read(struct comedi_device *dev,
val = be32_to_cpu(get_unaligned((__be32
*)(devpriv->insn_buf + 1)));
val &= 0x00ffffff; /* strip status byte */
- val ^= 0x00800000; /* convert to unsigned */
-
- data[i] = val;
+ data[i] = comedi_offset_munge(s, val);
}
up(&devpriv->sem);
@@ -1219,6 +1216,7 @@ static int usbduxsigma_pwm_config(struct comedi_device *dev,
static int usbduxsigma_getstatusinfo(struct comedi_device *dev, int chan)
{
+ struct comedi_subdevice *s = dev->read_subdev;
struct usbduxsigma_private *devpriv = dev->private;
u8 sysred;
u32 val;
@@ -1263,9 +1261,8 @@ static int usbduxsigma_getstatusinfo(struct comedi_device *dev, int chan)
/* 32 bits big endian from the A/D converter */
val = be32_to_cpu(get_unaligned((__be32 *)(devpriv->insn_buf + 1)));
val &= 0x00ffffff; /* strip status byte */
- val ^= 0x00800000; /* convert to unsigned */
- return (int)val;
+ return (int)comedi_offset_munge(s, val);
}
static int usbduxsigma_firmware_upload(struct comedi_device *dev,