From: H Hartley Sweeten Date: Mon, 4 Feb 2013 23:43:56 +0000 (-0700) Subject: staging: comedi: quatech_daqp_cs: use (*insn_bits) for digital inputs X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=62100fefbc4f7f45149df1f537de17b4acf01391;p=openwrt%2Fstaging%2Fblogic.git staging: comedi: quatech_daqp_cs: use (*insn_bits) for digital inputs Change the subdevice operation used to read the digital inputs from a (*insn_read) to a (*insn_bits) function. The (*insn_read) functions are expected to read 'insn->n' number of samples. The (*insn_bits) functions just read a single sample (insn->n = 1). Change the return from '1' to 'insn->n' to clarify what the return is. Also, set the 'maxdata' for the subdevice. For digital io this value should be '1' (digital io can only be 1 or 0). Signed-off-by: H Hartley Sweeten Cc: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/comedi/drivers/quatech_daqp_cs.c b/drivers/staging/comedi/drivers/quatech_daqp_cs.c index 7046ebdee01d..dbb8593a8db8 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;