The (mask & val) operation when reading the high 4-bits of the analog
data looks strange. Change it to (val & mask).

Signed-off-by: H Hartley Sweeten <[email protected]>
Cc: Ian Abbott <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
---
 drivers/staging/comedi/drivers/rti800.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/comedi/drivers/rti800.c 
b/drivers/staging/comedi/drivers/rti800.c
index d788c19..0084038 100644
--- a/drivers/staging/comedi/drivers/rti800.c
+++ b/drivers/staging/comedi/drivers/rti800.c
@@ -217,7 +217,7 @@ static int rti800_ai_insn_read(struct comedi_device *dev,
                        return ret;
 
                data[i] = inb(dev->iobase + RTI800_ADCLO);
-               data[i] |= (0xf & inb(dev->iobase + RTI800_ADCHI)) << 8;
+               data[i] |= (inb(dev->iobase + RTI800_ADCHI) & 0xf) << 8;
 
                if (devpriv->adc_2comp)
                        data[i] ^= 0x800;
-- 
1.8.1.4

_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to