Commit eafb3d2e authored by Ian Abbott's avatar Ian Abbott Committed by Ben Hutchings

staging: comedi: ssv_dnp: correct insn_bits result

[Part of commit f6b316bc upstream.
Split from original patch subject: "staging: comedi: ssv_dnp: use
comedi_dio_update_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: default avatarIan Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
parent b10349ad
...@@ -251,11 +251,11 @@ static int dnp_dio_insn_bits(struct comedi_device *dev, ...@@ -251,11 +251,11 @@ static int dnp_dio_insn_bits(struct comedi_device *dev,
/* on return, data[1] contains the value of the digital input lines. */ /* on return, data[1] contains the value of the digital input lines. */
outb(PADR, CSCIR); outb(PADR, CSCIR);
data[0] = inb(CSCDR); data[1] = inb(CSCDR);
outb(PBDR, CSCIR); outb(PBDR, CSCIR);
data[0] += inb(CSCDR) << 8; data[1] += inb(CSCDR) << 8;
outb(PCDR, CSCIR); outb(PCDR, CSCIR);
data[0] += ((inb(CSCDR) & 0xF0) << 12); data[1] += ((inb(CSCDR) & 0xF0) << 12);
return 2; return 2;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment