summaryrefslogtreecommitdiffstats
path: root/drivers/staging/comedi
Commit message (Collapse)AuthorAgeFilesLines
...
* staging: comedi: pcmmio: 'stop_count' is always 'stop_arg'H Hartley Sweeten2014-09-111-5/+1Star
| | | | | | | | | | | 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>
* staging: comedi: pcmmio: remove "empty acquisition" async commandH Hartley Sweeten2014-09-111-16/+3Star
| | | | | | | | | | | | | | 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>
* staging: comedi: pcl711: remove "empty acquisition" async commandH Hartley Sweeten2014-09-111-9/+4Star
| | | | | | | | | | | | | | 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>
* staging: comedi: ni_pcidio: prevent "empty acquisition" async commandH Hartley Sweeten2014-09-111-4/+3Star
| | | | | | | | | | | | | | 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>
* staging: comedi: ni_atmio16d: prevent "empty acquisition" async commandH Hartley Sweeten2014-09-111-4/+3Star
| | | | | | | | | | | | | | 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>
* staging: comedi: me4000: validate cmd->stop_arg in step 3 of (*do_cmdtest)H Hartley Sweeten2014-09-111-7/+5Star
| | | | | | | | | 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>
* staging: comedi: dt282x: prevent "empty acquisition" async commandsH Hartley Sweeten2014-09-111-8/+6Star
| | | | | | | | | | | | | | | 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>
* staging: comedi: das16m1: prevent "empty acquisition" async commandH Hartley Sweeten2014-09-111-5/+3Star
| | | | | | | | | | | | | | 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>
* staging: comedi: das16: prevent "empty acquisition" async commandH Hartley Sweeten2014-09-111-1/+3
| | | | | | | | | | | | | | 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>
* staging: comedi: cb_pcidas: prevent "empty acquisition" async commandsH Hartley Sweeten2014-09-111-2/+6
| | | | | | | | | | | | | | | 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>
* staging: comedi: amplc_pci230: 'ai_scan_count' is always 'stop_arg'H Hartley Sweeten2014-09-111-5/+1Star
| | | | | | | | | | | 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>
* staging: comedi: amplc_pci230: remove analog input "empty acquisition" async ↵H Hartley Sweeten2014-09-111-8/+3Star
| | | | | | | | | | | | | | | | 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>
* staging: comedi: amplc_pci230: 'ao_scan_count' is always 'stop_arg'H Hartley Sweeten2014-09-111-5/+1Star
| | | | | | | | | | | 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>
* staging: comedi: amplc_pci230: remove analog output "empty acquisition" ↵H Hartley Sweeten2014-09-111-8/+4Star
| | | | | | | | | | | | | | | | 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>
* staging: comedi: amplc_pci224: remove "empty acquisition" async commandH Hartley Sweeten2014-09-111-15/+10Star
| | | | | | | | | | | | | | 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>
* staging: comedi: amplc_dio200_common: return void from dio200_start_intr()H Hartley Sweeten2014-09-111-14/+4Star
| | | | | | | | | | | 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>
* staging: comedi: amplc_dio200_common: 'stopcount' is always 'stop_arg'H Hartley Sweeten2014-09-111-6/+2Star
| | | | | | | | | | | 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>
* staging: comedi: amplc_dio200_common: remove "empty acquisition" async commandH Hartley Sweeten2014-09-111-28/+14Star
| | | | | | | | | | | | | | 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>
* staging: comedi: addi_apci_2032: absorb apci2032_int_start()H Hartley Sweeten2014-09-111-22/+6Star
| | | | | | | | | | 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>
* staging: comedi: addi_apci_2032: remove "empty acquisition" async commandH Hartley Sweeten2014-09-111-11/+6Star
| | | | | | | | | | | | | | 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>
* staging: comedi: adl_pci9118: move pci9118_ai_cmdtest()H Hartley Sweeten2014-09-111-162/+162
| | | | | | | | 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>
* staging: comedi: adl_pci9118: absorb DMA and non-DMA helpersH Hartley Sweeten2014-09-111-84/+43Star
| | | | | | | | | | | | | | | 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>
* staging: comedi: adl_pci9118: clarify async command startH Hartley Sweeten2014-09-111-21/+13Star
| | | | | | | | | | | | | | | | | 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>
* staging: comedi: adl_pci9118: introduce pci9118_ai_cmd_start()H Hartley Sweeten2014-09-111-25/+18Star
| | | | | | | | 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>
* staging: comedi: adl_pci9118: enable DMA in common code pathH Hartley Sweeten2014-09-111-8/+7Star
| | | | | | | | | | 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>
* staging: comedi: adl_pci9118: tidy up 'ai_cfg' in pci9118_ai_docmd_dma()H Hartley Sweeten2014-09-111-9/+3Star
| | | | | | | | | 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>
* staging: comedi: adl_pci9118: clarify acquisition mode (ai_do) determinationH Hartley Sweeten2014-09-111-48/+31Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* staging: comedi: adl_pci9118: TRIG_INT is not a valid scan_begin_srcH Hartley Sweeten2014-09-111-2/+1Star
| | | | | | | | | 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>
* staging: comedi: adl_pci9118: remove sanity checks in pci9118_calc_divisors()H Hartley Sweeten2014-09-111-9/+0Star
| | | | | | | | | | | | | | | | | 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>
* staging: comedi: adl_pci9118: tidy up pci9118_set_chanlist()H Hartley Sweeten2014-09-111-24/+24
| | | | | | | | | 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>
* staging: comedi: adl_pci9118: absorb pci9118_ai_set_range_aref()H Hartley Sweeten2014-09-111-25/+16Star
| | | | | | | | | | | | 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>
* staging: comedi: adl_pci9118: rename setup_channel_list()H Hartley Sweeten2014-09-111-12/+7Star
| | | | | | | | | | | 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>
* staging: comedi: adl_pci9118: remove unused parameters from setup_channel_list()H Hartley Sweeten2014-09-111-10/+5Star
| | | | | | | | 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>
* staging: comedi: adl_pci9118: merge pci9118_exttrg_{add,del}()H Hartley Sweeten2014-09-111-20/+14Star
| | | | | | | | | | 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>
* staging: comedi: adl_pci9118: exttrg source is always EXTTRG_AIH Hartley Sweeten2014-09-111-27/+11Star
| | | | | | | | | | | | | | 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>
* staging: comedi: adl_pci9118: fix interrupt_pci9118_ai_mode4_switch()H Hartley Sweeten2014-09-111-6/+5Star
| | | | | | | | | | | | | | 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>
* staging: comedi: adl_pci9118: change type of pci9118_dmabuf 'virt' memberH Hartley Sweeten2014-09-111-7/+7
| | | | | | | | | | 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>
* staging: comedi: adl_pci9118: introduce struct pci9118_dmabufH Hartley Sweeten2014-09-111-48/+48
| | | | | | | | 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>
* staging: comedi: adl_pci9118: remove 'dmabuf_used_size' from private dataH Hartley Sweeten2014-09-111-3/+0Star
| | | | | | | | 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>
* staging: comedi: adl_pci9118: convert private data true/false flags to ↵H Hartley Sweeten2014-09-111-7/+7
| | | | | | | | | | | | 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>
* staging: comedi: adl_pci9118: remove 'dmabuf_panic_size' from private dataH Hartley Sweeten2014-09-111-17/+0Star
| | | | | | | | | 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>
* staging: comedi: adl_pci9118: remove PCI9118_PARANOIDCHECK codeH Hartley Sweeten2014-09-111-39/+0Star
| | | | | | | | | | | | The comment states that paramoid checks are broken. They also would only work for 12-bit analog input samples. Instead of fixing the paranoid checking just remove it to simplify the driver a bit. 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>
* staging: comedi: adl_pci9118: do cfc_handle_events() at end of interruptH Hartley Sweeten2014-09-111-17/+8Star
| | | | | | | | | | | | | Each of the error detections currently do a cfc_handle_events() and exits the interrupt handler if the error is detected. The DMA and non-DMA handlers also to a cfc_handle_events(). For aesthetics, use goto to exit the interrupt handler if an error is detected and move the cfc_handle_events() call to the end of the interrupt. 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>
* staging: comedi: adl_pci9118: handle hardware errors in interrupt handlerH Hartley Sweeten2014-09-111-42/+27Star
| | | | | | | | | | | | | | Hardware errors will now always terminate an async command. For aesthetics, absorb pci9118_decode_error_status() into the interrupt handler and use the register map defines to remove the "magic" numbers. Refactor the code to set the appropriate comedi event bits and handle the event. Remove the unnecessary 'ai_maskerr' and 'ai_maskharderr' members from the private data. 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>
* staging: comedi: adl_pci9118: handle error detection in main interrupt handlerH Hartley Sweeten2014-09-111-17/+7Star
| | | | | | | | | | | | The DMA and non-DMA both check the analog input status value to detect hardware errors. For aesthetics, move the this detection into the main interrupt handler. This allows removing the unused 'int_adstat' parameter from the DMA and non-DMA handlers. In addition, the 'int_daq' parameter is also not used so remove it also. 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>
* staging: comedi: adl_pci9118: handle master/target abort in main interrupt ↵H Hartley Sweeten2014-09-111-17/+16Star
| | | | | | | | | | | | handler For aesthetics, move the master/target abort detection from the DMA handler to the main interrupt handler. This allows removing the unused 'int_amcc' parameter from the DMA and non-DMA handlers. 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>
* staging: comedi: adl_pci9118: don't ignore hardware errorsH Hartley Sweeten2014-09-111-15/+6Star
| | | | | | | | | | The legacy (*attach) currently allows the user to pass a mask of error conditions to ignore when running async commands. Remove this support so that the async command is always terminated if the hardware reports an error. 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>
* staging: comedi: adl_pci9118: always try to use interrupt and DMAH Hartley Sweeten2014-09-111-18/+10Star
| | | | | | | | | | | | | | This driver currently supports both the (*auto_attach) and legacy (*attach) mechanisms. The (*auto_attach) always tries to use the interrupt and DMA to support async commands with the analog input subdevice. The legacy (*attach) only enables them depending on a user option that is passed to the (*attach). The 'default' (i.e. option == 0) is to enable both the interrupt and DMA. Simplify the attach by always trying to enable the interrupt and 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>
* staging: comedi: adl_pci9118: DMA requires an interruptH Hartley Sweeten2014-09-111-9/+10
| | | | | | | | | In order for DMA to work we also need an interrupt. Refactor the code so that the DMA allocation is only done if the interrupt is available. 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>
* staging: comedi: adl_pci9118: factor out DMA alloc/freeH Hartley Sweeten2014-09-111-37/+48
| | | | | | | | | For aesthetics, factor the DMA allocation/free code out of the attach and detach functions. 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>