Staging: comedi: drivers: adl_pci9111: Fix AI commands in TRIG_FOLLOW case
authorIan Abbott <abbotti@mev.co.uk>
Fri, 18 Jun 2010 11:11:28 +0000 (12:11 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 30 Jun 2010 15:18:14 +0000 (08:18 -0700)
commit6c2fd308045ba902fbe9f4408daa7b949fa8f5a1
treef09e672e7f07666e217ae067c5ba043fbfdbe66e
parent44176d9f8265de799512f833ca4d9785aa016b3a
Staging: comedi: drivers: adl_pci9111: Fix AI commands in TRIG_FOLLOW case

I received a report that AI streaming acquisitions do not work properly
for the adl_pci9111 driver when convert_src is TRIG_TIMER and
scan_begin_src is TRIG_FOLLOW (and scan_begin_arg is therefore 0).  This
seems to be down to the incorrect setting of dev_private->scan_delay in
pci9111_ai_do_cmd().  Under the previously stated conditions,
dev_private->scan_delay ends up set to (unsigned int)-1, but it ought to
be set to 0.  The function sets it to 0 initially, and it only makes
sense to change it if both convert_src and scan_begin_src are set to
TRIG_TIMER.

Note: 'scan_delay' is the number of unwanted scans to discard after each
valid scan.  The hardware does not support 'scan' timing as such, just a
regularly paced conversion timer (with automatic channel switching
between conversions).  The driver simulates a scan period that is some
(>1) multiple of the conversion period times the scan length
(chanlist_len samples) by reading chanlist_len samples and discarding
the next scan_delay times chanlist_len samples.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/comedi/drivers/adl_pci9111.c