staging: comedi: cb_pcidas: fix dac08_write_insn()
PATCH 1/1 staging: comedi: cb_pcidas: fix dac08_write_insn()
As pointed out by Ian Abbott, the comedi INSN_WRITE instructions are meant to iterate over, and write, all the data[] passed from the comedi core. Modify dac08_write_insn() to work as intended.
Since doc08_write_insn() now returns the proper response to the core, make the dac08_write() helper return void.
Signed-off-by H Hartley Sweeten <[email protected]>
Reported-by Ian Abbott <[email protected]>
Cc Frank Mori Hess <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
---
This is an incremental patch based on the previous series to cleanup the cb_pcidas driver.
drivers/staging/comedi/drivers/cb_pcidas.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
drivers/staging/comedi/drivers/cb_pcidas.c +7 -3
@@ -659,7 +659,7 @@ static int caldac_read_insn(struct comedi_device *dev, }/* 1602/16 pregain offset */ -static int dac08_write (struct comedi_device *dev,unsigned int value) +static void dac08_write (struct comedi_device *dev,unsigned int value) {struct cb_pcidas_private *devpriv = dev->private;unsigned long cal_reg;
@@ -680,14 +680,18 @@ static int dac08_write(struct comedi_device *dev, unsigned int value)outw (value, cal_reg);udelay (1 ); } -return 1 ;/* insn->n */ }static int dac08_write_insn (struct comedi_device *dev,struct comedi_subdevice *s,struct comedi_insn *insn,unsigned int *data) { -return dac08_write (dev, data[0 ]); +int i; + +for (i =0 ; i < insn->n; i++) +dac08_write (dev, data[i]); + +return insn->n; } static int dac08_read_insn(struct comedi_device *dev,
Signature · 1 line
1.7.11