|
@@ -1059,15 +1059,13 @@ static int usbduxsigma_dio_insn_bits(struct comedi_device *dev,
|
|
|
unsigned int *data)
|
|
|
{
|
|
|
struct usbduxsigma_private *devpriv = dev->private;
|
|
|
- unsigned int mask = data[0];
|
|
|
- unsigned int bits = data[1];
|
|
|
int ret;
|
|
|
|
|
|
down(&devpriv->sem);
|
|
|
|
|
|
- s->state &= ~mask;
|
|
|
- s->state |= (bits & mask);
|
|
|
+ comedi_dio_update_state(s, data);
|
|
|
|
|
|
+ /* Always update the hardware. See the (*insn_config). */
|
|
|
devpriv->dux_commands[1] = s->io_bits & 0xff;
|
|
|
devpriv->dux_commands[4] = s->state & 0xff;
|
|
|
devpriv->dux_commands[2] = (s->io_bits >> 8) & 0xff;
|