staging: comedi: ssv_dnp: use comedi_dio_update_state()

commit f6b316bcd8c421acd6fa5a6e18b4c846ecb9d965 upstream.

Use comedi_dio_update_state() to handle the boilerplate code to update
the subdevice s->state.

Also, fix a bug where the state of the channels is returned in data[0].
The comedi core expects it to be returned in data[1].

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
H Hartley Sweeten 2013-08-30 11:08:50 -07:00 committed by Greg Kroah-Hartman
parent 442ae1bbb7
commit 4d72984a58
1 changed files with 3 additions and 3 deletions

View File

@ -87,11 +87,11 @@ static int dnp_dio_insn_bits(struct comedi_device *dev,
/* on return, data[1] contains the value of the digital input lines. */
outb(PADR, CSCIR);
data[0] = inb(CSCDR);
data[1] = inb(CSCDR);
outb(PBDR, CSCIR);
data[0] += inb(CSCDR) << 8;
data[1] += inb(CSCDR) << 8;
outb(PCDR, CSCIR);
data[0] += ((inb(CSCDR) & 0xF0) << 12);
data[1] += ((inb(CSCDR) & 0xF0) << 12);
return insn->n;