diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 7046ebdee01de..dbb8593a8db84 100644 --- a/drivers/staging/comedi/drivers/quatech_daqp_cs.c +++ b/drivers/staging/comedi/drivers/quatech_daqp_cs.c @@ -671,11 +671,10 @@ static int daqp_ao_insn_write(struct comedi_device *dev, return 1; } -/* Digital input routine */ - -static int daqp_di_insn_read(struct comedi_device *dev, +static int daqp_di_insn_bits(struct comedi_device *dev, struct comedi_subdevice *s, - struct comedi_insn *insn, unsigned int *data) + struct comedi_insn *insn, + unsigned int *data) { struct daqp_private *devpriv = dev->private; @@ -684,7 +683,7 @@ static int daqp_di_insn_read(struct comedi_device *dev, data[0] = inb(dev->iobase + DAQP_DIGITAL_IO); - return 1; + return insn->n; } /* Digital output routine */ @@ -758,7 +757,8 @@ static int daqp_auto_attach(struct comedi_device *dev, s->type = COMEDI_SUBD_DI; s->subdev_flags = SDF_READABLE; s->n_chan = 1; - s->insn_read = daqp_di_insn_read; + s->maxdata = 1; + s->insn_bits = daqp_di_insn_bits; s = &dev->subdevices[3]; s->type = COMEDI_SUBD_DO;