Commit graph

5,415 commits

Author SHA1 Message Date
Ian Abbott
d1e19c935a staging: comedi: adv_pci1710: fix AI INSN_READ for non-zero channel
commit abe46b8932 upstream.

Reading of analog input channels by the `INSN_READ` comedi instruction
is broken for all except channel 0.  `pci171x_ai_insn_read()` calls
`pci171x_ai_read_sample()` with the wrong value for the third parameter.
It is supposed to be the current index in a channel list (which is
always of length 1 in this case, so the index should be 0), but instead
it is passing the actual channel number.  `pci171x_ai_read_sample()`
checks the channel number encoded in the raw sample value read from the
hardware matches the channel number stored in the specified index of the
previously set up channel list and returns `-ENODATA` if it doesn't
match.  Since the index should always be 0 in this case, the match will
fail unless the channel number is also 0.  Fix it by passing 0 as the
channel index.

Note that when the bug first appeared, it was `pci171x_ai_dropout()`
that was called with the wrong parameter value.  `pci171x_ai_dropout()`
got replaced with `pci171x_ai_read_sample()` in commit 7fd2dae250
("staging: comedi: adv_pci1710: introduce pci171x_ai_read_sample()").

Fixes: 16c7eb6047 ("staging: comedi: adv_pci1710: always enable PCI171x_PARANOIDCHECK code")
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[ luis: backported to 3.16: used Ian's backport ]
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-03-18 15:05:37 +00:00
Ian Abbott
eb5063825c 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>
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-03-03 14:15:50 +00:00
Ian Abbott
22d1120b72 staging: comedi: comedi_compat32.c: fix COMEDI_CMD copy back
commit 42b8ce6f55 upstream.

`do_cmd_ioctl()` in "comedi_fops.c" handles the `COMEDI_CMD` ioctl.
This returns `-EAGAIN` if it has copied a modified `struct comedi_cmd`
back to user-space.  (This occurs when the low-level Comedi driver's
`do_cmdtest()` handler returns non-zero to indicate a problem with the
contents of the `struct comedi_cmd`, or when the `struct comedi_cmd` has
the `CMDF_BOGUS` flag set.)

`compat_cmd()` in "comedi_compat32.c" handles the 32-bit compatible
version of the `COMEDI_CMD` ioctl.  Currently, it never copies a 32-bit
compatible version of `struct comedi_cmd` back to user-space, which is
at odds with the way the regular `COMEDI_CMD` ioctl is handled.  To fix
it, change `compat_cmd()` to copy a 32-bit compatible version of the
`struct comedi_cmd` back to user-space when the main ioctl handler
returns `-EAGAIN`.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2015-02-24 10:01:11 +00:00
Ian Abbott
4526722665 staging: comedi: fix memory leak / bad pointer freeing for chanlist
commit 238b5ad855 upstream.

As a follow-up to commit 6cab7a37f5 ("staging: comedi: (regression)
channel list must be set for COMEDI_CMD ioctl"), Hartley Sweeten pointed
out another couple of bugs stemming from commit 6cab7a37f5 ("staging:
comedi: comedi_fops: introduce __comedi_get_user_chanlist()").

Firstly, `do_cmdtest_ioctl()` never frees the kernel copy of the user
chanlist allocated by `__comedi_get_user_chanlist()`, so that memory is
leaked.  Fix it by freeing the allocated kernel memory pointed to by
`cmd.chanlist` before that pointer is overwritten with its original
pointer to user memory before `cmd` is copied back to user-space.

Secondly, if `__comedi_get_user_chanlist()` returns an error,
`cmd->chanlist` is left unchanged and in fact will be a pointer to user
memory.  This causes `do_cmd_ioctl()` to `goto cleanup` and call
`do_become_nonbusy()` which would attempt to free the memory pointed to
by the user-space pointer.  Fix it by setting `cmd->chanlist` to NULL at
the start of `__comedi_get_user_chanlist()`.

Fixes: c6cd0eefb2 ("staging: comedi: comedi_fops: introduce __comedi_get_user_chanlist()")
Reported-by: H Hartley Sweeten <hsweeten@visionengravers.com>

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2014-11-13 11:48:53 +00:00
Ian Abbott
364c5ea537 staging: comedi: (regression) channel list must be set for COMEDI_CMD ioctl
commit 6cab7a37f5 upstream.

`do_cmd_ioctl()`, the handler for the `COMEDI_CMD` ioctl can incorrectly
call the Comedi subdevice's `do_cmd()` handler with a NULL channel list
pointer.  This is a regression as the `do_cmd()` handler has never been
expected to deal with that, leading to a kernel OOPS when it tries to
dereference it.

A NULL channel list pointer is allowed for the `COMEDI_CMDTEST` ioctl,
handled by `do_cmdtest_ioctl()` and the subdevice's `do_cmdtest()`
handler, but not for the `COMEDI_CMD` ioctl and its handlers.

Both `do_cmd_ioctl()` and `do_cmdtest_ioctl()` call
`__comedi_get_user_chanlist()` to copy the channel list from user memory
into dynamically allocated kernel memory and check it for consistency.
That function currently returns 0 if the `user_chanlist` parameter
(pointing to the channel list in user memory) is NULL.  That's fine for
`do_cmdtest_ioctl()`, but `do_cmd_ioctl()` incorrectly assumes the
kernel copy of the channel list has been set-up correctly.

Fix it by not allowing the `user_chanlist` parameter to be NULL in
`__comedi_get_user_chanlist()`, and only calling it from
`do_cmdtest_ioctl()` if the parameter is non-NULL.

Thanks to Bernd Porr for reporting the bug via an initial patch sent
privately.

Fixes: c6cd0eefb2 ("staging: comedi: comedi_fops: introduce __comedi_get_user_chanlist()")
Reported-by: Bernd Porr <mail@berndporr.me.uk>
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Bernd Porr <mail@berndporr.me.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
2014-11-13 11:48:31 +00:00
Arnd Bergmann
88513624be staging: comedi: addi_apci_1564: add addi_watchdog dependency
With commit aed3f9d498 ("staging: comedi: addi_apci_1564:
absorb apci1564_reset()"), the apci 1564 driver has gained
a dependency on the addi watchdog module, which is not reflected
correctly in Kconfig, and that can lead to link errors
when the watchdog is disabled.

This adds an explicit 'select', like it is done in the other
addi apci drivers that need it.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Acked-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-18 15:11:22 -07:00
Linus Torvalds
3f17ea6dea Merge branch 'next' (accumulated 3.16 merge window patches) into master
Now that 3.15 is released, this merges the 'next' branch into 'master',
bringing us to the normal situation where my 'master' branch is the
merge window.

* accumulated work in next: (6809 commits)
  ufs: sb mutex merge + mutex_destroy
  powerpc: update comments for generic idle conversion
  cris: update comments for generic idle conversion
  idle: remove cpu_idle() forward declarations
  nbd: zero from and len fields in NBD_CMD_DISCONNECT.
  mm: convert some level-less printks to pr_*
  MAINTAINERS: adi-buildroot-devel is moderated
  MAINTAINERS: add linux-api for review of API/ABI changes
  mm/kmemleak-test.c: use pr_fmt for logging
  fs/dlm/debug_fs.c: replace seq_printf by seq_puts
  fs/dlm/lockspace.c: convert simple_str to kstr
  fs/dlm/config.c: convert simple_str to kstr
  mm: mark remap_file_pages() syscall as deprecated
  mm: memcontrol: remove unnecessary memcg argument from soft limit functions
  mm: memcontrol: clean up memcg zoneinfo lookup
  mm/memblock.c: call kmemleak directly from memblock_(alloc|free)
  mm/mempool.c: update the kmemleak stack trace for mempool allocations
  lib/radix-tree.c: update the kmemleak stack trace for radix tree allocations
  mm: introduce kmemleak_update_trace()
  mm/kmemleak.c: use %u to print ->checksum
  ...
2014-06-08 11:31:16 -07:00
H Hartley Sweeten
9a8805bb80 staging: comedi: adl_pci9111: factor fifo handling out of pci9111_interrupt()
Factor the fifo half-full handling out of the interrupt function to reduce
the indent level of the code.

Tidy up the factored out code.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:56 -07:00
H Hartley Sweeten
71cf2b4aaa staging: comedi: usbduxfast: remove unreachable code in usbduxfast_ai_cmd()
The (*do_cmdtest) validates that the 'stop_arg' is >= 1 for a 'stop_src'
of TRIG_COUNT and the 'scan_end_arg' is validated to be the 'chanlist_len'
which will always be >= 1. Remove the unreachable error code for an
'ai_sample_count < 1'.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:56 -07:00
H Hartley Sweeten
42e21c9743 staging: comedi: pcl818: use cfc_bytes_per_scan()
Use the comedi_fc helper to get the number of bytes per scan.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:56 -07:00
H Hartley Sweeten
4acaec1cfa staging: comedi: pcl816: use cfc_bytes_per_scan()
Use the comedi_fc helper to get the number of bytes per scan.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:56 -07:00
H Hartley Sweeten
897d21b9ac staging: comedi: pcl812: use cfc_bytes_per_scan()
Use the comedi_fc helper to get the number of bytes per scan.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:56 -07:00
H Hartley Sweeten
4bc030446f staging: comedi: das16: use cfc_bytes_per_scan()
Use the comedi_fc helper to get the number of bytes per scan.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:55 -07:00
H Hartley Sweeten
b7a775f815 staging: comedi: amplc_pci230: use cfc_bytes_per_scan()
Use the comedi_fc helper function to get the 'bytes_per_scan'.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:55 -07:00
H Hartley Sweeten
35a5103099 staging: comedi: amplc_pci224: use cfc_bytes_per_scan()
The cmd->chanlist_len will always be >= 1 in this function. Remove the
unnecessary checks.

Use the comedi_fc helper function to get the 'bytes_per_scan'.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:55 -07:00
H Hartley Sweeten
3ba01fe618 staging: comedi: comedi_fc: use comedi_cmd pointer
Use a local variable to access the comedi_cmd as a pointer instead
of getting to from the comedi_subdevice pointer.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:55 -07:00
H Hartley Sweeten
f5f3a2c656 staging: comedi: cb_pcidas64: change params to external_ai_queue_in_use()
The caller already has the comedi_subdevice and comedi_cmd pointers. Pass
those variables to the helper function.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:55 -07:00
H Hartley Sweeten
421ab41bce staging: comedi: cb_pcidas64: use comedi_cmd pointer
Use a local variable to access the comedi_cmd as a pointer instead
of getting to from the comedi_async pointer.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:55 -07:00
H Hartley Sweeten
b727a91f59 staging: comedi: ni_labpc: use comedi_cmd pointer
Use a local variable to access the comedi_cmd as a pointer instead
of getting to from the comedi_async pointer.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:54 -07:00
H Hartley Sweeten
3cd3195251 staging: comedi: ni_labpc_isadma: use comedi_cmd pointer
Use a local variable to access the comedi_cmd as a pointer instead
of getting to from the comedi_async pointer.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:54 -07:00
H Hartley Sweeten
9663ab1f9f staging: comedi: ni_mio_common: use comedi_cmd pointer
Use a local variable to access the comedi_cmd as a pointer instead
of getting to from the comedi_async pointer.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:54 -07:00
H Hartley Sweeten
ae2348e228 staging: comedi: pcl711: use comedi_cmd pointer
Use a local variable to access the comedi_cmd as a pointer instead
of getting to from the comedi_subdevice pointer.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:54 -07:00
H Hartley Sweeten
b5fc9c1031 staging: comedi: pcl816: fix DMA 'bytes' calculation
The calculation for the total number of bytes in the DMA transfer
is incorrect. Fix it.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:54 -07:00
H Hartley Sweeten
29791cf5cc staging: comedi: pcmmio: remove 'continuous' from private data
This member of the private data can be determined from the cmd->stop_src.
Do that instead and remove the member.

Refactor pcmmio_handle_dio_intr() to remove an indent level.

For aesthetics, change the switch in pcmmio_cmd() to an if/else.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:54 -07:00
H Hartley Sweeten
aecbc17285 staging: comedi: pcmmio: use comedi_cmd pointer
Use a local variable to access the comedi_cmd as a pointer instead
of getting to from the comedi_subdevice pointer.

Remove the unnecessary local variables used for the cmd->chanlist_len.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:54 -07:00
H Hartley Sweeten
3516a5ef16 staging: comedi: pcmuio: tidy up local variables in pcmuio_handle_intr_subdev()
Tidy up the local variables so that the comedi_cmd is accessed as a pointer
instead of getting to it from the comedi_subdevice pointer.

Remove the local variable 'len' and use the cmd->chanlist_len directly.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:54 -07:00
H Hartley Sweeten
c2ccd69aba staging: comedi: usbduxsigma: use comedi_cmd pointer
Use the local variable to access the comedi_cmd as a pointer instead
of getting to it from the comedi_subdevice pointer.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:53 -07:00
H Hartley Sweeten
f2353b2036 staging: comedi: ni_65xx: remove commented out local variable
This function does not use the comedi_cmd. Remove the commented out
local variable.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:53 -07:00
H Hartley Sweeten
45c9db9191 staging: comedi: mite: tidy up local variables in mite_sync_output_dma()
Tidy up the local variables so that the comedi_cmd is accessed as a pointer
instead of getting to it from the comedi_async pointer.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:53 -07:00
H Hartley Sweeten
d1462b9430 staging: comedi: das1800: use comedi_cmd pointer
Use the local variable to access the comedi_cmd as a pointer instead
of getting to it from the comedi_subdevice pointer.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:53 -07:00
H Hartley Sweeten
bedd62fc6d staging: comedi: cb_pcidas: use comedi_cmd pointer
Use the local variable to access the comedi_cmd as a pointer instead
of getting to it from the comedi_async pointer.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:53 -07:00
H Hartley Sweeten
1eb9cf92da staging: comedi: amplc_pci230: use comedi_cmd pointer
Use the local variable to access the comedi_cmd as a pointer in
pci230_handle_ai() instead of getting to it from the comedi_async
pointer.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:53 -07:00
H Hartley Sweeten
9af39b31b5 staging: comedi: amplc_pci224: use comedi_cmd pointer
Use the local variable to access the comedi_cmd as a pointer in
pci224_ao_munge() instead of getting to it from the comedi_async
pointer.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:52 -07:00
H Hartley Sweeten
71ba7506f0 staging: comedi: amplc_dio200_common: use comedi_cmd pointer
Use the local variable to access the comedi_cmd as a pointer
in dio200_read_scan_intr() instead of getting to it from the
comedi_subdevice pointer.

Remove the unnecessary local variable 'len', this is just the
cmd->chanlist_len.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:52 -07:00
H Hartley Sweeten
9dad12fe47 staging: comedi: das800: remove 'forever' from private data
This member of the private data can be determined from the
cmd->stop_src. Do that instead.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:52 -07:00
H Hartley Sweeten
8ffffae6cf staging: comedi: das800: add a local var for the comedi_cmd pointer
For aesthetics, use a local variable to access the comedi_cmd as a
pointer in das800_ai_do_cmd() instead of getting to it from the
comedi_async pointer.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:52 -07:00
H Hartley Sweeten
d54e5e6bc5 staging: comedi: usbduxsigma: remove 'ao_chanlist' from private data
This member of the private data is just a copy of the channels from
the cmd->chanlist. Remove the member and just use the cmd->chanlist
directly.

Remove the unneeded 'len' local variable in usbduxsigma_ao_urb_complete().
This is just the cmd->chanlist_len.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:52 -07:00
H Hartley Sweeten
a49b45fb49 staging: comedi: usbdux: use 'cmd' pointer in usbduxsub_ai_isoc_irq()
Use the 'cmd' pointer to access the chanlist instead of getting to it
using the comedi_subdevice pointer.

Remove the unneeded 'n' local variable, this is just the cmd->chanlist_len.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:52 -07:00
H Hartley Sweeten
33938a9dfa staging: comedi: usbdux: remove 'ao_chanlist' from private data
This member of the private data is just a copy of the channels from
the cmd->chanlist. Remove the member and just use the cmd->chanlist
directly.

Remove the unneeded 'len' local variable in usbdux_ao_isoc_irq().
This is just the cmd->chanlist_len.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:52 -07:00
H Hartley Sweeten
1b81dbc29b staging: comedi: usbduxsigma: remove 'ao_continuous' from private data
This member of the private data can be determined from the cmd->stop_src.
Do that instead.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:52 -07:00
H Hartley Sweeten
fee5ba92cd staging: comedi: usbduxsigma: remove 'ai_continuous' from private data
This member of the private data can be determined from the cmd->stop_src.
Do that instead.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:52 -07:00
H Hartley Sweeten
61ff4709a5 staging: comedi: usbduxfast: remove 'ai_continuous' from private data
This member of the private data can be determined from the cmd->stop_src.
Do that instead.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:51 -07:00
H Hartley Sweeten
c8f3174a90 staging: comedi: usbdux: remove 'ao_continuous' from private data
This member of the private data can be determined from the cmd->stop_src.
Do that instead.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:51 -07:00
H Hartley Sweeten
40642e9585 staging: comedi: usbdux: remove 'ai_continuous' from private data
This member of the private data can be determined from the cmd->stop_src.
Do that instead.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:28:51 -07:00
H Hartley Sweeten
66e3015f6e staging: comedi: addi_apci_3xxx: use comedi_fc helpers to validate timer arg
Use the comedi_fc helper cfc_check_trigger_arg_is() to validate the
trigger argument when the source is TRIG_TIMER.

For aesthetics, rename the local variable 'tmp' to 'arg'.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:25:58 -07:00
H Hartley Sweeten
dcd0a7a341 staging: comedi: skel: use comedi_fc helpers to validate timer args
Use the comedi_fc helper cfc_check_trigger_arg_is() to validate the
trigger arguments when the source is TRIG_TIMER.

Use cfc_check_trigger_arg_min() to vaidate the scan_begin_arg when the
scan_begin_src and convert_src are both TRIG_TIMER.

All the arguments are unsigned int, change the local variable to an
unsigned int and rename it for aesthetic reasons.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:25:58 -07:00
H Hartley Sweeten
c646efe13f staging: comedi: s626: use comedi_fc helpers to validate timer args
Use the comedi_fc helper cfc_check_trigger_arg_is() to validate the
trigger arguments when the source is TRIG_TIMER.

Use cfc_check_trigger_arg_min() to vaidate the scan_begin_arg when the
scan_begin_src and convert_src are both TRIG_TIMER.

All the arguments are unsigned int, change the local variable to an
unsigned int and rename it for aesthetic reasons.

Change the type of the first parameter to s626_ns_to_timer() to remove
the need for the casts.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:25:58 -07:00
H Hartley Sweeten
3d6a4d118d staging: comedi: rtd520: use comedi_fc helpers to validate timer args
Use the comedi_fc helper cfc_check_trigger_arg_is() to validate the
trigger arguments when the source is TRIG_TIMER.

Use cfc_check_trigger_arg_min() to vaidate the scan_begin_arg when the
scan_begin_src and convert_src are both TRIG_TIMER.

All the arguments are unsigned int, change the local variable to an
unsigned int and rename it for aesthetic reasons.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:25:58 -07:00
H Hartley Sweeten
6c71941d3d staging: comedi: quatech_daqp_cs: use comedi_fc helpers to validate timer args
Use the comedi_fc helper cfc_check_trigger_arg_is() to validate the
trigger arguments when the source is TRIG_TIMER.

All the arguments are unsigned int, change the local variable to an
unsigned int and rename it for aesthetic reasons.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:25:58 -07:00
H Hartley Sweeten
863731fd6f staging: comedi: pcl818: use comedi_fc helpers to validate timer arg
Use the comedi_fc helper cfc_check_trigger_arg_is() to validate the
trigger argument when the source is TRIG_TIMER.

The minimum test is not needed, this was already validated in Step 3.

All the arguments are unsigned int, change the local variable to an
unsigned int and rename it for aesthetic reasons.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-28 14:25:57 -07:00