|
1 | 1 | // SPDX-License-Identifier: GPL-2.0+
|
2 | 2 | /*
|
3 |
| - * Copyright (C) 2004-2014 Bernd Porr, [email protected] |
| 3 | + * Copyright (C) 2004-2019 Bernd Porr, [email protected] |
4 | 4 | */
|
5 | 5 |
|
6 | 6 | /*
|
7 | 7 | * Driver: usbduxfast
|
8 | 8 | * Description: University of Stirling USB DAQ & INCITE Technology Limited
|
9 | 9 | * Devices: [ITL] USB-DUX-FAST (usbduxfast)
|
10 | 10 | * Author: Bernd Porr <[email protected]>
|
11 |
| - * Updated: 10 Oct 2014 |
| 11 | + * Updated: 16 Nov 2019 |
12 | 12 | * Status: stable
|
13 | 13 | */
|
14 | 14 |
|
|
22 | 22 | *
|
23 | 23 | *
|
24 | 24 | * Revision history:
|
| 25 | + * 1.0: Fixed a rounding error in usbduxfast_ai_cmdtest |
25 | 26 | * 0.9: Dropping the first data packet which seems to be from the last transfer.
|
26 | 27 | * Buffer overflows in the FX2 are handed over to comedi.
|
27 | 28 | * 0.92: Dropping now 4 packets. The quad buffer has to be emptied.
|
@@ -350,6 +351,7 @@ static int usbduxfast_ai_cmdtest(struct comedi_device *dev,
|
350 | 351 | struct comedi_cmd *cmd)
|
351 | 352 | {
|
352 | 353 | int err = 0;
|
| 354 | + int err2 = 0; |
353 | 355 | unsigned int steps;
|
354 | 356 | unsigned int arg;
|
355 | 357 |
|
@@ -399,11 +401,16 @@ static int usbduxfast_ai_cmdtest(struct comedi_device *dev,
|
399 | 401 | */
|
400 | 402 | steps = (cmd->convert_arg * 30) / 1000;
|
401 | 403 | if (cmd->chanlist_len != 1)
|
402 |
| - err |= comedi_check_trigger_arg_min(&steps, |
403 |
| - MIN_SAMPLING_PERIOD); |
404 |
| - err |= comedi_check_trigger_arg_max(&steps, MAX_SAMPLING_PERIOD); |
405 |
| - arg = (steps * 1000) / 30; |
406 |
| - err |= comedi_check_trigger_arg_is(&cmd->convert_arg, arg); |
| 404 | + err2 |= comedi_check_trigger_arg_min(&steps, |
| 405 | + MIN_SAMPLING_PERIOD); |
| 406 | + else |
| 407 | + err2 |= comedi_check_trigger_arg_min(&steps, 1); |
| 408 | + err2 |= comedi_check_trigger_arg_max(&steps, MAX_SAMPLING_PERIOD); |
| 409 | + if (err2) { |
| 410 | + err |= err2; |
| 411 | + arg = (steps * 1000) / 30; |
| 412 | + err |= comedi_check_trigger_arg_is(&cmd->convert_arg, arg); |
| 413 | + } |
407 | 414 |
|
408 | 415 | if (cmd->stop_src == TRIG_COUNT)
|
409 | 416 | err |= comedi_check_trigger_arg_min(&cmd->stop_arg, 1);
|
|
0 commit comments