|
@@ -711,16 +711,11 @@ static int apci3xxx_dio_insn_bits(struct comedi_device *dev,
|
|
|
struct comedi_insn *insn,
|
|
|
unsigned int *data)
|
|
|
{
|
|
|
- unsigned int mask = data[0];
|
|
|
- unsigned int bits = data[1];
|
|
|
+ unsigned int mask;
|
|
|
unsigned int val;
|
|
|
|
|
|
- /* only update output channels */
|
|
|
- mask &= s->io_bits;
|
|
|
+ mask = comedi_dio_update_state(s, data);
|
|
|
if (mask) {
|
|
|
- s->state &= ~mask;
|
|
|
- s->state |= (bits & mask);
|
|
|
-
|
|
|
if (mask & 0xff)
|
|
|
outl(s->state & 0xff, dev->iobase + 80);
|
|
|
if (mask & 0xff0000)
|