浏览代码

staging: comedi: ni_mio_common: fix M Series ni_ai_insn_read() data mask

For NI M Series cards, the Comedi `insn_read` handler for the AI
subdevice is broken due to ANDing the value read from the AI FIFO data
register with an incorrect mask.  The incorrect mask clears all but the
most significant bit of the sample data.  It should preserve all the
sample data bits.  Correct it.

Fixes: 817144ae7fda ("staging: comedi: ni_mio_common: remove unnecessary use of 'board->adbits'")
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Cc: <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Ian Abbott 8 年之前
父节点
当前提交
655c4d442d
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      drivers/staging/comedi/drivers/ni_mio_common.c

+ 1 - 1
drivers/staging/comedi/drivers/ni_mio_common.c

@@ -1832,7 +1832,7 @@ static int ni_ai_insn_read(struct comedi_device *dev,
 			   unsigned int *data)
 			   unsigned int *data)
 {
 {
 	struct ni_private *devpriv = dev->private;
 	struct ni_private *devpriv = dev->private;
-	unsigned int mask = (s->maxdata + 1) >> 1;
+	unsigned int mask = s->maxdata;
 	int i, n;
 	int i, n;
 	unsigned int signbits;
 	unsigned int signbits;
 	unsigned int d;
 	unsigned int d;