]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/staging/comedi/drivers/quatech_daqp_cs.c
Merge remote-tracking branch 'staging/staging-next'
[karo-tx-linux.git] / drivers / staging / comedi / drivers / quatech_daqp_cs.c
index 9775d3622a6266a51da709d951dbb6ae60e415d1..96a46954b3c09819184474a82615962a9120146d 100644 (file)
@@ -208,8 +208,7 @@ static enum irqreturn daqp_interrupt(int irq, void *dev_id)
        case buffer:
                while (!((status = inb(dev->iobase + DAQP_STATUS))
                         & DAQP_STATUS_FIFO_EMPTY)) {
-
-                       short data;
+                       unsigned short data;
 
                        if (status & DAQP_STATUS_DATA_LOST) {
                                s->async->events |=
@@ -690,18 +689,12 @@ static int daqp_do_insn_bits(struct comedi_device *dev,
                             unsigned int *data)
 {
        struct daqp_private *devpriv = dev->private;
-       unsigned int mask = data[0];
-       unsigned int bits = data[1];
 
        if (devpriv->stop)
                return -EIO;
 
-       if (mask) {
-               s->state &= ~mask;
-               s->state |= (bits & mask);
-
+       if (comedi_dio_update_state(s, data))
                outb(s->state, dev->iobase + DAQP_DIGITAL_IO);
-       }
 
        data[1] = s->state;