mirror of https://gitee.com/openkylin/linux.git
staging: comedi: pcmmio: sample types are unsigned
Sample values in comedi are generally represented as unsigned values. Change `interrupt_pcmmio()` and `ai_rinsn()` in the "pcmmio" module to use unsigned sample values for consistency. Also, make the order in which `interrupt_pcmmio()` writes the two sample values (each actually containing up to 16 1-bit sample values) independent of the host byte ordering. Note that this module is a mess, so please excuse the checkpatch warnings. Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
4bf59ce248
commit
f23b65a588
|
@ -553,12 +553,11 @@ static irqreturn_t interrupt_pcmmio(int irq, void *d)
|
||||||
val |= (1U << n);
|
val |= (1U << n);
|
||||||
}
|
}
|
||||||
/* Write the scan to the buffer. */
|
/* Write the scan to the buffer. */
|
||||||
if (comedi_buf_put(s->async, ((short *)&val)[0])
|
if (comedi_buf_put(s->async, val)
|
||||||
&&
|
&&
|
||||||
comedi_buf_put
|
comedi_buf_put
|
||||||
(s->async,
|
(s->async,
|
||||||
((short *)
|
val >> 16)) {
|
||||||
&val)[1])) {
|
|
||||||
s->async->events |= (COMEDI_CB_BLOCK | COMEDI_CB_EOS);
|
s->async->events |= (COMEDI_CB_BLOCK | COMEDI_CB_EOS);
|
||||||
} else {
|
} else {
|
||||||
/* Overflow! Stop acquisition!! */
|
/* Overflow! Stop acquisition!! */
|
||||||
|
@ -846,7 +845,7 @@ static int ai_rinsn(struct comedi_device *dev, struct comedi_subdevice *s,
|
||||||
CR_RANGE(insn->chanspec), aref = CR_AREF(insn->chanspec);
|
CR_RANGE(insn->chanspec), aref = CR_AREF(insn->chanspec);
|
||||||
unsigned char command_byte = 0;
|
unsigned char command_byte = 0;
|
||||||
unsigned iooffset = 0;
|
unsigned iooffset = 0;
|
||||||
short sample, adc_adjust = 0;
|
unsigned short sample, adc_adjust = 0;
|
||||||
|
|
||||||
if (chan > 7)
|
if (chan > 7)
|
||||||
chan -= 8, iooffset = 4; /*
|
chan -= 8, iooffset = 4; /*
|
||||||
|
|
Loading…
Reference in New Issue