linux/drivers/staging/comedi
Ian Abbott a437367531 staging: comedi: cb_pcidas64: fix incorrect AI range code handling
commit be8e89087e upstream.

The hardware range code values and list of valid ranges for the AI
subdevice is incorrect for several supported boards.  The hardware range
code values for all boards except PCI-DAS4020/12 is determined by
calling `ai_range_bits_6xxx()` based on the maximum voltage of the range
and whether it is bipolar or unipolar, however it only returns the
correct hardware range code for the PCI-DAS60xx boards.  For
PCI-DAS6402/16 (and /12) it returns the wrong code for the unipolar
ranges.  For PCI-DAS64/Mx/16 it returns the wrong code for all the
ranges and the comedi range table is incorrect.

Change `ai_range_bits_6xxx()` to use a look-up table pointed to by new
member `ai_range_codes` of `struct pcidas64_board` to map the comedi
range table indices to the hardware range codes.  Use a new comedi range
table for the PCI-DAS64/Mx/16 boards (and the commented out variants).

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2015-03-23 21:02:48 -04:00
..
drivers staging: comedi: cb_pcidas64: fix incorrect AI range code handling 2015-03-23 21:02:48 -04:00
kcomedilib Staging: comedi: kcomedilib: replace deprecated simple_strtoul() with kstrtouint() 2014-02-15 12:42:41 -08:00
comedi.h staging: comedi: add CMDF_ROUND_... as synonyms for TRIG_ROUND_... 2014-09-08 13:50:14 -07:00
comedi_buf.c staging: comedi: migrate copyrights from "comedi_fc.c" 2014-09-19 15:55:32 -07:00
comedi_compat32.c staging: comedi: comedi_compat32.c: fix COMEDI_CMD copy back 2015-03-23 21:02:47 -04:00
comedi_compat32.h staging: comedi: comedi_compat32.h: checkpatch.pl --strict cleanup 2014-07-18 16:10:40 -07:00
comedi_fops.c staging: comedi: fix memory leak / bad pointer freeing for chanlist 2014-10-29 16:18:31 +08:00
comedi_internal.h staging: comedi: comedi_internal.h: checkpatch.pl --strict cleanup 2014-07-18 16:10:39 -07:00
comedi_pci.c staging: comedi: comedi_pci: introduce comedi_pci_detach() 2014-08-30 13:24:54 -07:00
comedi_pcmcia.c staging: comedi: remove FSF address from boilerplate text 2013-05-13 17:34:22 -04:00
comedi_usb.c staging: comedi: introduce comedi_to_usb_dev() 2013-05-21 10:59:10 -07:00
comedidev.h staging: comedi: add comedi_read_array_from_buffer() 2014-09-19 15:55:32 -07:00
comedilib.h staging: comedi: comedi_bond: handle base channel for insn_bits 2013-08-26 06:41:56 -07:00
drivers.c staging: comedi: migrate copyrights from "comedi_fc.c" 2014-09-19 15:55:32 -07:00
Kconfig staging: comedi: Kconfig: fix config COMEDI_ADDI_APCI_3120 dependants 2014-10-29 16:18:31 +08:00
Makefile staging: comedi: remove comedi_debug module parameter 2013-11-25 11:50:53 -08:00
proc.c Staging: comedi: proc: title block update 2014-03-19 04:41:04 +00:00
range.c Staging: comedi: range: remove unnecessary sanity check 2014-03-08 18:59:48 -08:00
TODO staging: comedi: TODO: remove item "reserve major number" 2014-05-28 14:18:11 -07:00