staging: comedi: me_daq: fix me_ao_insn_read()
authorH Hartley Sweeten <hartleys@visionengravers.com>
Thu, 25 Oct 2012 22:09:33 +0000 (15:09 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 26 Oct 2012 16:20:02 +0000 (09:20 -0700)
commit91b0da570722faf2e6a06f999e789405161943b5
treefcc0eb6ee83e80ef04eb68482d30adc4c12f7d44
parente43937926265ad417942c8ffb7be8bd185788335
staging: comedi: me_daq: fix me_ao_insn_read()

This function is supposed to return the analog output value for
a specified channel. The channel number is packed in insn->chanspec,
which is an unsigned int, and unpacked using the CR_CHAN() macro.

Currently this function is trying to use the chanspec as an array.
This works only if a single data value is read.

Fix the function so that the desired channel is determined and all
the data returned is from that channel.

Also, fix the return. The comedi core expects insn_read functions to
return the number of data values (insn->n).

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/me_daq.c