Commit Graph

470525 Commits

Author SHA1 Message Date
H Hartley Sweeten 8b9505527e staging: comedi: s626: 'ai_sample_count' is always 'stop_arg'
When the cmd->stop_src == TRIG_COUNT, the 'ai_sample_count' is the cmd->stop_arg.
For a stop_src == TRIG_NONE the 'ai_sample_count' is currently set to 1 but the
driver never actually uses the value.

Simplify the 'stop_count' initialization by just setting it to the cmd->stop_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-09-11 14:35:22 -07:00
H Hartley Sweeten 27cb98142f staging: comedi: s626: clarify COMEDI_CB_EOA code
The end-of-acquisition only applies when the cmd->stop_src == TRIG_COUNT.

Refactor the code in s626_handle_eos_interrupt() that detects the end-of-
acquisition to clarify this.

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-09-11 14:35:22 -07:00
H Hartley Sweeten e37b20aa58 staging: comedi: s626: remove 'ai_continuous' from private data
This member of the private data is set based on the cmd->stop_src. Just use the
cmd->stop_src directly and remove the member.

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-09-11 14:35:21 -07:00
H Hartley Sweeten 8c602c498c staging: comedi: rtd520: prevent "empty acquisition" async command
This driver currently allows a cmd->stop_src == TRIG_COUNT with a cmd->stop_arg
of 0. The (*do_cmd) then sets up and starts the command without handling the "empty
acquisition". This results in the interrupt function trying to transfer 0 data
samples.

Validate that the cmd->stop_arg is >= 1 in the (*do_cmdtest) to prevent the
"empty acquisition".

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-09-11 14:35:21 -07:00
H Hartley Sweeten 1e2e39effd staging: comedi: pcmuio: return void from pcmuio_start_intr()
This function always returns '0' so the comedi_event() is never done by the
callers.

Change the return type to void and remove the comedi_event() dead 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-09-11 14:35:21 -07:00
H Hartley Sweeten 8e7fed7ed7 staging: comedi: pcmuio: 'stop_count' is always 'stop_arg'
When the cmd->stop_src == TRIG_COUNT, the 'stop_count' is the cmd->stop_arg.
For any other stop_src the 'stop_count' is 0, which is also the cmd->stop_arg.

Simplify the 'stop_count' initialization.

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-09-11 14:35:21 -07:00
H Hartley Sweeten 75d46fd781 staging: comedi: pcmuio: remove 'continuous' from private data
This member of the private data is set based on the cmd->stop_src. Just use the
cmd->stop_src directly and remove the member.

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-09-11 14:35:21 -07:00
H Hartley Sweeten 7173126484 staging: comedi: pcmuio: remove "empty acquisition" async command
This driver currently allows a cmd->stop_src == TRIG_COUNT with a cmd->stop_arg
of 0. This causes the (*do_cmd) to immediately generate a COMEDI_CB_EOA event
without acquiring any data.

This "empty acquisition" async command is not really useful. Validate that the
cmd->stop_arg is >= 1 in the (*do_cmdtest) and remove the "empty acquisition"
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-09-11 14:35:21 -07:00
H Hartley Sweeten 22499048e3 staging: comedi: pcmmio: return void from pcmmio_start_intr()
This function always returns '0' so the comedi_event() is never done by the
callers.

Change the return type to void and remove the comedi_event() dead 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-09-11 14:35:21 -07:00
H Hartley Sweeten 811ba919e4 staging: comedi: pcmmio: 'stop_count' is always 'stop_arg'
When the cmd->stop_src == TRIG_COUNT, the 'stop_count' is the cmd->stop_arg.
For any other stop_src the 'stop_count' is 0, which is also the cmd->stop_arg.

Simplify the 'stop_count' initialization.

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-09-11 14:35:21 -07:00
H Hartley Sweeten 1ea37fd27a staging: comedi: pcmmio: remove "empty acquisition" async command
This driver currently allows a cmd->stop_src == TRIG_COUNT with a cmd->stop_arg
of 0. This causes the (*do_cmd) to immediately generate a COMEDI_CB_EOA event
without acquiring any data.

This "empty acquisition" async command is not really useful. Validate that the
cmd->stop_arg is >= 1 in the (*do_cmdtest) and remove the "empty acquisition"
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-09-11 14:35:21 -07:00
H Hartley Sweeten fe094b7e00 staging: comedi: pcl711: remove "empty acquisition" async command
This driver currently allows a cmd->stop_src == TRIG_COUNT with a cmd->stop_arg
of 0. This causes the (*do_cmd) to immediately generate a COMEDI_CB_EOA event
without acquiring any data.

This "empty acquisition" async command is not really useful. Validate that the
cmd->stop_arg is >= 1 in the (*do_cmdtest) and remove the "empty acquisition"
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-09-11 14:35:21 -07:00
H Hartley Sweeten 7be7f9c3e3 staging: comedi: ni_pcidio: prevent "empty acquisition" async command
This driver currently allows a cmd->stop_src == TRIG_COUNT with a cmd->stop_arg
of 0. The (*do_cmd) then sets up and starts the command without handling the "empty
acquisition". This results in the interrupt function trying to transfer 0 data
samples.

Validate that the cmd->stop_arg is >= 1 in the (*do_cmdtest) to prevent the
"empty acquisition".

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-09-11 14:35:21 -07:00
H Hartley Sweeten fd6887b2ec staging: comedi: ni_atmio16d: prevent "empty acquisition" async command
This driver currently allows a cmd->stop_src == TRIG_COUNT with a cmd->stop_arg
of 0. The (*do_cmd) then sets up and starts the command without handling the "empty
acquisition". This results in the interrupt function trying to transfer 0 data
samples.

Validate that the cmd->stop_arg is >= 1 in the (*do_cmdtest) to prevent the
"empty acquisition".

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-09-11 14:35:21 -07:00
H Hartley Sweeten 76af50ddee staging: comedi: me4000: validate cmd->stop_arg in step 3 of (*do_cmdtest)
The async command arguments are supposed to be trivially validated in step 3
of the (*do_cmdtest). Fix the validation of the stop_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-09-11 14:35:21 -07:00
H Hartley Sweeten 759658ddff staging: comedi: dt282x: prevent "empty acquisition" async commands
This driver currently allows a cmd->stop_src == TRIG_COUNT with a cmd->stop_arg
of 0 for both the analog input and output async commands. The (*do_cmd) for
both subdevices sets up and starts the command without handling the "empty
acquisition". This results in the interrupt functions trying to transfer 0 data
samples.

Validate that the cmd->stop_arg is >= 1 in the (*do_cmdtest) to prevent the
"empty acquisition".

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-09-11 14:35:20 -07:00
H Hartley Sweeten 1a021d6387 staging: comedi: das16m1: prevent "empty acquisition" async command
This driver currently allows a cmd->stop_src == TRIG_COUNT with a cmd->stop_arg
of 0. The (*do_cmd) then sets up and starts the command without handling the "empty
acquisition". This results in the interrupt function trying to transfer 0 data
samples.

Validate that the cmd->stop_arg is >= 1 in the (*do_cmdtest) to prevent the
"empty acquisition".

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-09-11 14:35:20 -07:00
H Hartley Sweeten 2c8af779c4 staging: comedi: das16: prevent "empty acquisition" async command
This driver currently allows a cmd->stop_src == TRIG_COUNT with a cmd->stop_arg
of 0. The (*do_cmd) then sets up and starts the command without handling the "empty
acquisition". This results in the interrupt function trying to transfer 0 data
samples.

Validate that the cmd->stop_arg is >= 1 in the (*do_cmdtest) to prevent the
"empty acquisition".

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-09-11 14:35:20 -07:00
H Hartley Sweeten c5d9973b04 staging: comedi: cb_pcidas: prevent "empty acquisition" async commands
This driver currently allows a cmd->stop_src == TRIG_COUNT with a cmd->stop_arg
of 0 for both the analog input and output async commands. The (*do_cmd) for
both subdevices sets up and starts the command without handling the "empty
acquisition". This results in the interrupt functions trying to transfer 0 data
samples.

Validate that the cmd->stop_arg is >= 1 in the (*do_cmdtest) to prevent the
"empty acquisition".

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-09-11 14:35:20 -07:00
H Hartley Sweeten 1dabb50199 staging: comedi: amplc_pci230: 'ai_scan_count' is always 'stop_arg'
When the cmd->stop_src == TRIG_COUNT, the 'ai_scan_count' is the cmd->stop_arg.
For any other stop_src the 'ai_scan_count' is 0, which is also the cmd->stop_arg.

Simplify the 'ai_scan_count' initialization.

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-09-11 14:35:20 -07:00
H Hartley Sweeten df9f5bad21 staging: comedi: amplc_pci230: remove analog input "empty acquisition" async command
This driver currently allows a cmd->stop_src == TRIG_COUNT with a cmd->stop_arg
of 0. This causes the (*do_cmd) to immediately generate a COMEDI_CB_EOA event
without acquiring any data.

This "empty acquisition" async command is not really useful. Validate that the
cmd->stop_arg is >= 1 in the (*do_cmdtest) and remove the "empty acquisition"
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-09-11 14:35:20 -07:00
H Hartley Sweeten 6fabddd226 staging: comedi: amplc_pci230: 'ao_scan_count' is always 'stop_arg'
When the cmd->stop_src == TRIG_COUNT, the 'ao_scan_count' is the cmd->stop_arg.
For any other stop_src the 'ao_scan_count' is 0, which is also the cmd->stop_arg.

Simplify the 'ao_scan_count' initialization.

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-09-11 14:35:20 -07:00
H Hartley Sweeten 54d2925bd6 staging: comedi: amplc_pci230: remove analog output "empty acquisition" async command
This driver currently allows a cmd->stop_src == TRIG_COUNT with a cmd->stop_arg
of 0. This causes the (*do_cmd) to immediately generate a COMEDI_CB_EOA event
without acquiring any data.

This "empty acquisition" async command is not really useful. Validate that the
cmd->stop_arg is >= 1 in the (*do_cmdtest) and remove the "empty acquisition"
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-09-11 14:35:20 -07:00
H Hartley Sweeten aaf6598f08 staging: comedi: amplc_pci224: remove "empty acquisition" async command
This driver currently allows a cmd->stop_src == TRIG_COUNT with a cmd->stop_arg
of 0. This causes the (*do_cmd) to immediately generate a COMEDI_CB_EOA event
without acquiring any data.

This "empty acquisition" async command is not really useful. Validate that the
cmd->stop_arg is >= 1 in the (*do_cmdtest) and remove the "empty acquisition"
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-09-11 14:35:20 -07:00
H Hartley Sweeten 157a340d1f staging: comedi: amplc_dio200_common: return void from dio200_start_intr()
This function always returns '0' so the comedi_event() is never done by the
callers.

Change the return type to void and remove the comedi_event() dead 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-09-11 14:35:20 -07:00
H Hartley Sweeten 06f55bb778 staging: comedi: amplc_dio200_common: 'stopcount' is always 'stop_arg'
When the cmd->stop_src == TRIG_COUNT, the 'stopcount' is the cmd->stop_arg. When
the stop_src == TRIG_NONE the 'stopcount' is 0, which is also the cmd->stop_arg.

Simplify the 'stopcount' initialization.

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-09-11 14:35:20 -07:00
H Hartley Sweeten 75d756e9f0 staging: comedi: amplc_dio200_common: remove "empty acquisition" async command
This driver currently allows a cmd->stop_src == TRIG_COUNT with a cmd->stop_arg
of 0. This causes the (*do_cmd) to immediatelt generate a COMEDI_CB_EOA event
without acquiring any data.

This "empty acquisition" async command is not really useful. Validate that the
cmd->stop_arg is >= 1 in the (*do_cmdtest) and remove the "empty acquisition"
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-09-11 14:35:20 -07:00
H Hartley Sweeten 103e280141 staging: comedi: addi_apci_2032: absorb apci2032_int_start()
This function always returns 'false' so the caller never does the comedi_event().

Absorb the function into the caller and remove the 'do_event' dead 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-09-11 14:35:20 -07:00
H Hartley Sweeten 52c22b803e staging: comedi: addi_apci_2032: remove "empty acquisition" async command
This driver currently allows a cmd->stop_src == TRIG_COUNT with a cmd->stop_arg
of 0. This causes the (*do_cmd) to immediatelt generate a COMEDI_CB_EOA event
without acquiring any data.

This "empty acquisition" async command is not really useful. Validate that the
cmd->stop_arg is >= 1 in the (*do_cmdtest) and remove the "empty acquisition"
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-09-11 14:35:19 -07:00
H Hartley Sweeten 8c46941074 staging: comedi: adl_pci9118: move pci9118_ai_cmdtest()
For aesthetics, move this function closer to the (*do_cmd).

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-09-11 14:34:26 -07:00
H Hartley Sweeten fa795752c2 staging: comedi: adl_pci9118: absorb DMA and non-DMA helpers
Currently the pci9118_ai_docmd_dma() or pci9118_ai_docmd_sampl() helper
is called by the (*do_cmd) to do the final setup for the command. Most
of this invloves setting various bits in 'ai_ctrl' and 'int_ctrl' to
setup the acquisition based on the 'ai_do' mode. Most of this is the
same for the DMA and non-DMA setup. The differences are easily handled
by either checking the cmd trigger sources or if DMA is used.

Absorb the helper functions into the (*do_cmd) to clarify the 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-09-11 14:34:26 -07:00
H Hartley Sweeten e7d2191b0b staging: comedi: adl_pci9118: clarify async command start
The async command can start immediately (TRIG_NOW), from an internal
trigger (TRIG_INT), or from an external trigger (TRIG_EXT). Currently
the start of the command is scattered in the DMA and non-DMA helper
functions.

Consolidate the start of the async command at the end of the (*do_cmd)
function. For aesthetics, use the 'cmd->start_src' directly instead
of the 'ai12_startstop' in the private data to determine how to start
the command. This also fixes a minor bug where the external trigger
gets enabled for a start_src == TRIG_INT.

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-09-11 14:34:25 -07:00
H Hartley Sweeten 5e17ae870c staging: comedi: adl_pci9118: introduce pci9118_ai_cmd_start()
Introduce a helper function to start the async command.

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-09-11 14:34:25 -07:00
H Hartley Sweeten d900197e9e staging: comedi: adl_pci9118: enable DMA in common code path
The pci9118_ai_docmd_dma() function enables the DMA bit in the ai control
register for all acquisition modes. For aesthetics, move the enable of
this bit into the (*do_cmd).

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-09-11 14:34:25 -07:00
H Hartley Sweeten 4cf13a1dc8 staging: comedi: adl_pci9118: tidy up 'ai_cfg' in pci9118_ai_docmd_dma()
The 'ai_cfg' was already set to PCI9118_AI_CFG_PDTRG | PCI9118_AI_CFG_PETRG.
Don't bother setting those bits in pci9118_ai_docmd_dma().

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-09-11 14:34:25 -07:00
H Hartley Sweeten f3d3dad659 staging: comedi: adl_pci9118: clarify acquisition mode (ai_do) determination
The async command can operation in 4 modes in this driver.

Modes 1 and 4 use timers 1 and 2 as a cascaded timer to trigger each conversion.
Mode 1 begins the acquisitions immediately (scan_begin_src == TRIG_FOLLOW) and
Mode 4 begins after an external trigger (scan_begin_src == TRIG_EXT). Both modes
use a convert_src == TRIG_TIMER.

Mode 2 uses timers 1 and 2 in a double timed action (scan_begin_src == TRIG_TIMER
and convert_src != TRIG_EXT (TRIG_TIMER and TRIG_NOW are valid)).

Mode 3 does not use the timers. Each acquisition is triggered by an external
signal (scan_begin_src == TRIG_FOLLOW and convert_src == TRIG_EXT.

The (*do_cmdtest) validates the scan_begin_src as TRIG_FOLLOW, TRIG_TIMER,
or TRIG_EXT. Remove the invalid check for TRIG_INT in the (*do_cmd).

Clarify the logic used to determine the mode in the (*do_cmd).

Also, simplify pci9118_calc_divisors(). Call i8253_cascade_ns_to_timer() directly
in the (*do_cmd) for the mode 1 and mode 4 cases. Call pci9118_calc_divisors()
only for mode 2 acquisitions.

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-09-11 14:34:25 -07:00
H Hartley Sweeten abaaa7f83a staging: comedi: adl_pci9118: TRIG_INT is not a valid scan_begin_src
The (*do_cmdtest) validates the scan_begin_src as TRIG_FOLLOW, TRIG_TIMER,
or TRIG_EXT. Remove the invalid check for TRIG_INT in the (*do_cmd).

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-09-11 14:34:25 -07:00
H Hartley Sweeten d397fd5886 staging: comedi: adl_pci9118: remove sanity checks in pci9118_calc_divisors()
The 'tim2' parameter to this function is actually the cmd->convert_arg which
was validated in the (*do_cmdtest) as:

	err |= cfc_check_trigger_arg_min(&cmd->convert_arg,
					 devprivriv->ai_ns_min);

The sanity checks in this function are just repeating that validation. The
'min_pacer' sanity check is simply not needed.

Remove these unnecessary checks.

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-09-11 14:34:25 -07:00
H Hartley Sweeten 5fc6c95c2f staging: comedi: adl_pci9118: tidy up pci9118_set_chanlist()
Define some macros to set the 'chan' and 'range' bits in the chanlist
register. Use them to tidy up this 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-09-11 14:34:25 -07:00
H Hartley Sweeten b7a078e9cd staging: comedi: adl_pci9118: absorb pci9118_ai_set_range_aref()
This function is called by the analog input (*insn_read) and (*do_cmd)
operations. The pci9118_set_chanlist() function is also called by those
operations. Setting the range and aref logically belongs with setting
the chanlist. To clarify the code, absorb pci9118_ai_set_range_aref()
into pci9118_set_chanlist().

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-09-11 14:34:25 -07:00
H Hartley Sweeten 7d62b548de staging: comedi: adl_pci9118: rename setup_channel_list()
Rename this function so it has namespace associated with the driver.

Also, this function always succeeds. Change the return type to void
and remove the unnecessary error handling by the callers.

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-09-11 14:34:25 -07:00
H Hartley Sweeten acdc21c203 staging: comedi: adl_pci9118: remove unused parameters from setup_channel_list()
The 'rot' and 'usedma' parameters are not used in this function. Remove them.

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-09-11 14:34:25 -07:00
H Hartley Sweeten 11822f0218 staging: comedi: adl_pci9118: merge pci9118_exttrg_{add,del}()
For aesthetics, merge these two helper functions and add a parameter,
'enable', to determine if the external trigger is being added (enabled)
or deleted (disabled).

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-09-11 14:34:25 -07:00
H Hartley Sweeten 664e244ca5 staging: comedi: adl_pci9118: exttrg source is always EXTTRG_AI
The 'source'  passed to pci9118_exttrg_{add,del}() is always EXTTRG_AI.
Remove the parameter and unnecessary sanity checking. Also, since there
is only one vaild exttrg source, remove the unnecessary 'exttrg_users'
member from the private data.

The pci9118_exttrg_{add,del}() functions always succeed. For aesthetics
change the return type to void.

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-09-11 14:34:24 -07:00
H Hartley Sweeten f9d208d3ea staging: comedi: adl_pci9118: fix interrupt_pci9118_ai_mode4_switch()
This function modifies the analog input acquistion programming after the first
DMA cycle to continue a "mode4" acqusition. Part of this programs timer 0 based
on the hardware address of the next buffer. When double buffering is not used
for DMA the "next" buffer is always the first, and only, buffer.

Add a parameter to this function to indicate what the "next" buffer actually is
and fix the callers.

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-09-11 14:34:24 -07:00
H Hartley Sweeten e652632fc2 staging: comedi: adl_pci9118: change type of pci9118_dmabuf 'virt' member
For aesthetics, change the type of this member to avoid the casts when allocating
and freeing the DMA buffers. This does introduce a cast in move_block_from_dma()
but that cast is cleaner.

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-09-11 14:34:24 -07:00
H Hartley Sweeten 1f2cbe2c5b staging: comedi: adl_pci9118: introduce struct pci9118_dmabuf
For aesthetics, wrap the DMA buffer information in a struct.

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-09-11 14:34:24 -07:00
H Hartley Sweeten 231649a475 staging: comedi: adl_pci9118: remove 'dmabuf_used_size' from private data
This member of the private data is set but never used. Just remove 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-09-11 14:34:24 -07:00
H Hartley Sweeten 32502f5aa1 staging: comedi: adl_pci9118: convert private data true/false flags to bit-fields
For aesthetics convert the private data true/false flags to bit-fields. The
'usemux' member is used in the driver as a flag. Refactor the analog input
subdevice init so this member can also be a bit-field.

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-09-11 14:34:24 -07:00
H Hartley Sweeten f463b8c080 staging: comedi: adl_pci9118: remove 'dmabuf_panic_size' from private data
This member of the private data is only used in some #if 0'ed code. Remove
it along with the unused 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-09-11 14:34:24 -07:00