Commit Graph

457576 Commits

Author SHA1 Message Date
Vincent Bernat 91d421945b staging: xillybus: fix some coding style errors
This includes:
 - keep "else" on the same line as the closing brace
 - don't use "else" after "return"
 - don't issue a message for an out-of-memory error
 - blank line after a declaration

Signed-off-by: Vincent Bernat <vincent@bernat.im>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-07-16 13:27:06 -07:00
H Hartley Sweeten 4168ac9db7 staging: comedi: ni_mio_common: tidy up the frequency output subdevice init
For aesthetics, add some whitespace to the subdevice init.

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-07-16 13:24:44 -07:00
H Hartley Sweeten c607b3317e staging: comedi: ni_mio_common: tidy up the gpct counter subdevice init
For aesthetics, add some whitespace to the subdevice init and
tidy it up a bit.

Unfortunately we can't get rid of the '#ifdef PCIDMA' here yet due
to other ifdefery in this file. For now just add the correct test
so that the async command support is not hooked up unless we have
an IRQ 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>
2014-07-16 13:24:44 -07:00
H Hartley Sweeten 43f2c8b7de staging: comedi: ni_mio_common: tidy up the PFI subdevice init
For aesthetics, add some whitespace to the subdevice init and
tidy it up a bit.

Remove the need for the extra 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-07-16 13:24:44 -07:00
H Hartley Sweeten 433c79f92e staging: comedi: ni_mio_common: tidy up the EEPROM subdevice init
For aesthetics, add some whitespace to the subdevice init.

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-07-16 13:24:44 -07:00
H Hartley Sweeten cb42950615 staging: comedi: ni_mio_common: tidy up the calibration subdevice init
For aesthetics, add some whitespace to the subdevice init.

Refactor the code so that the common parts of the subdevice are initialized
in one place.

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-07-16 13:24:43 -07:00
H Hartley Sweeten eeca0caa84 staging: comedi: ni_mio_common: only reset the ai/ao subdevices if they exist
So of the boards supported by this driver do not have analog inputs and
some don't have analog outputs. Move the calls that reset these subdevices
during the (*attach) by ni_E_init() so they only happen if the subdevices
are present.

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-07-16 13:24:43 -07:00
H Hartley Sweeten caedecfa3a staging: comedi: ni_mio_common: init clock dividers early in ni_E_init()
The init/reset of the hardware is a bit scattered in this function. For
aesthetics, move the init of the clock dividers so it happens early and
tidy up the code 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>
2014-07-16 13:24:43 -07:00
H Hartley Sweeten 2d4ecc38b9 staging: comedi: ni_mio_common: tidy up the Digital I/O subdevice init
For aesthetics, add some whitespace to the Digital I/O subdevice init.

Only hook up the async command support if we have an irq.

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-07-16 13:24:43 -07:00
H Hartley Sweeten 0615c162f6 staging: comedi: ni_mio_common: refactor 'num_p0_dio_channels' boardinfo
All of the board supported by this driver have at least 8 Digital I/O
channels. A couple of the PCI boards in ni_pcimio have 32 channels.

For aesthetics, change this member of the boardinfo into a bit-field
flag, 'has_32dio_chan', and use that when initializing the DIO subdevice
to set the number of channels to 32 or 8.

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-07-16 13:24:43 -07:00
H Hartley Sweeten 80a94e405b staging: comedi: ni_mio_common: tidy up the Analog Output subdevice init
For aesthetics, add some whitespace to the Analog Output subdevice init.

Also, remove the '#ifdef PCIDMA' here and only hook up the async command
support if we have an irq and the board either has a fifo or DMA is
supported.

The ni_pcimio driver is the only place PCIDMA is defined. That driver
is also the only user of ni_mio_common that allocates devpriv->mite. Use
that test instead to determine if dma is supported.

Move 'is_67xx' check and init_ao_67xx() call into the Analog Output
subdevice init. The 67xx boards all have analog outputs and this check
does not need to be done for the boards that do not have analog outputs.

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-07-16 13:24:43 -07:00
H Hartley Sweeten a06500b4ad staging: comedi: ni_mio_common: tidy up the Analog Input subdevice init
For aesthetics, add some whitespace to the Analog Input subdevice init.

The callers of ni_E_init() do the request_irq() and set dev->irq if the
interrupt is available. Only hook up the async command support if we
have the irq.

Also, remove the '#ifdef PCIDMA' here. The ni_pcimio driver is the only
place PCIDMA is defined. That driver is also the only user of ni_mio_common
that allocates devpriv->mite. Use that test instead to determine if the
subdevice async_dma_dir member needs to be initialized.

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-07-16 13:24:43 -07:00
H Hartley Sweeten daabc8a631 staging: comedi: ni_mio_common: (*cancel) only works with async cmd support
The comedi subdevice (*cancel) function can only be called by the core if the
subdevice supports async commands. Move the initialization of this callback
to it is only set if async commands are enabled.

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-07-16 13:24:43 -07:00
H Hartley Sweeten c5f2649999 staging: comedi: ni_stc.h: refactor 'aobits' boardinfo
For aesthetics, change the 'aobits' in the boardinfo to 'ao_maxdata'
to remove the need for the calculation of the subdevice 'maxdata'.

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-07-16 13:24:43 -07:00
H Hartley Sweeten db2255f5a0 staging: comedi: ni_stc.h: refactor 'adbits' boardinfo
For aesthetics, change the 'adbits' in the boardinfo to 'ai_maxdata'
to remove the need for the calculation of the subdevice 'maxdata'.

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-07-16 13:24:43 -07:00
H Hartley Sweeten 817144ae7f staging: comedi: ni_mio_common: remove unnecessary use of 'board->adbits'
For aesthetics, use the subdevice 'maxdata' instead of the board 'adbits'.

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-07-16 13:24:42 -07:00
H Hartley Sweeten 47ef2541fe staging: comedi: ni_mio_common: fix ni_ao_insn_read()
The comedi core expects (*insn_read) functions to return insn->n
data smaples. Fix this function to work like the core expects.

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-07-16 13:24:42 -07:00
H Hartley Sweeten 93fac79066 staging: comedi: ni_mio_common: remove ai_continuous from private data
This member of the private data can be determined by checking the
cmd->stop_src. Do that instead 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-07-16 13:24:42 -07:00
H Hartley Sweeten 79816da173 staging: comedi: ni_mio_common: merge analog output (*insn_write) functions
Currently the PCI6xxx boards use a different (*insn_write) function
for the analog output subdevice. Most of the code is identical to the
(*insn_write) used by all the other board types.

For aesthetics, merge the two (*insn_write) functions and handle the
'is_6xxx' differences in the common 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-07-16 13:24:42 -07:00
H Hartley Sweeten 4727736519 staging: comedi: ni_mio_common: remove some unnecessary boardinfo access
Currently ni_m_series_ao_config_chanlist() gets the boardinfo pointer in
order to get the number of analog output channels. Get this from the
comedi_subdevice instead.

The ni_old_ao_config_chanlist() function also gets the boardinfo pointer
to get the analog output resolution, 'aobits', in order to calculate the
value needed to convert samples from unsigned to two's complement for
bipolar ranges. Use the comedi_subdevice 'maxdata' 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-07-16 13:24:42 -07:00
H Hartley Sweeten ab15dce7e9 staging: comedi: ni_mio_common: remove INSN_CONFIG_ANALOG_TRIG support code
None of the boardinfo that uses this code sets the 'has_analog_trig' flag so
ni_ai_config_analog_trig() always returns -EINVAL.

Also, the private data 'atrig_low', 'atrig_high', and 'atrig_mode' values
that are set by ni_ai_config_analog_trig() are never used.

Remove the incomplete INSN_CONFIG_ANALOG_TRIG support along with the unused
boardinfo and private data members.

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-07-16 13:24:42 -07:00
H Hartley Sweeten a10817d67f staging: comedi: ni_mio_common: tidy up ni_ao_munge()
Use the bytes_per_sample() helper instead of 'sizeof(short)' to clarify
the length calculation.

Use comedi_offset_munge() to handle the unsigned to two's complement
munge of the data for bipolar ranges.

Tidy up the local variables.

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-07-16 13:24:42 -07:00
H Hartley Sweeten a52b53e4a7 staging: comedi: ni_stc.h: add some 'is_{board type}' flags to private data
The board->reg_type if checked quite often in the ni_mio_common.c code to
handle differences in the PCI devices supported by the ni_pcimio driver.
Simplify the code a bit by adding some 'is_{board type}' bit-field flags
to 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>
2014-07-16 13:24:42 -07:00
H Hartley Sweeten bfb0c28ba0 staging: comedi: ni_mio_common: fix ni_ao_insn_write()
Comedi (*insn_write) functions are expected to write insn->n values
to the hardware. Fix this function to work like the core expects.

Also, don't rely on the return value of ni_ao_comfig_chanlist() to
determine if the values need converted to two's complement before
writing to the hardware. Use the comedi_range_is_bipolar() and
comedi_offset_munge() helpers 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-07-16 13:24:42 -07:00
H Hartley Sweeten 87b4fe5c87 staging: comedi: ni_mio_common: remove ao_win_out() macro
This marco relies on a local variable having a specific name. Remove the
macro and just use ni_ao_win_outw() 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-07-16 13:24:42 -07:00
H Hartley Sweeten 093b696885 staging: comedi: ni_mio_common: fix ni_ao_insn_write_671x()
Comedi (*insn_write) functions are expected to write insn->n values to
the hardware. Fix this function to work like the core expects.

Also, use the comedi_offset_munge() helper to convert the comedi unsigned
values into the two's complement values that the hardware needs.

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-07-16 13:24:41 -07:00
H Hartley Sweeten fed3c23b5e staging: comedi: ni_stc.h: remove 'ao_unipolar' flag from ni_board_struct
This member of the boardinfo for the NI MIO drivers is used to indicate if
the ranges for the analog output subdevice (ao_range_table in the boardinfo)
includes any unipolar ranges. If it's not set, the ao_range_table only has
bipolar ranges.

The 'ao_unipolar' flag is checked when munging the ao data values from the
user so that the values for bipolar ranges are converted to 2's complement
values before they are written to the hardware.

The flag is also used when programming the analog output configuration on
non-M series boards for bipolar/unipolar and external reference operation.

Simplify the driver a bit by removing this boardinfo flag and just using
the comedi_range_is_bipolar() and comedi_range_is_external() helpers to
check the range 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-07-16 13:24:41 -07:00
H Hartley Sweeten a8b677cb53 staging: comedi: comedidev.h: introduce some 'range_is_external' helpers
The comedi_krange includes a flags member that currently identifies the
'units' of the range (RF_UNIT) and if the range is from an internal or
external source (RF_EXTERNAL).

Introduce some helper functions to check if a given range is from an
external source.

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-07-16 13:24:41 -07:00
H Hartley Sweeten ba9a1e3f07 staging: comedi: mite.h: tidy up the mite channel register offsets
Convert the inline MITE_* functions, used to calculate the mite channel
register offsets, into simple macros.

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-07-16 13:24:41 -07:00
H Hartley Sweeten 9233c8db35 staging: comedi: ni_65xx: factor input filter disable out of (*auto_attach)
For aesthetics, factor the code that disables the input filters out of
ni_65xx_auto_attach().

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-07-16 13:22:51 -07:00
H Hartley Sweeten dd26947342 staging: comedi: ni_65xx: fix digital output reset during attach
During the attach of this driver, the digital output ports are all
initialized to a known state. Some of the boards supported by this
driver have output ports that are inverted from the comedi view of
the output state. For these boards the values written to the ports
needs to be inverted.

Currently, only bit 0 of each port is inverted when the boardinfo
indicates that the outputs are inverted. This results in channels
0, 8, 16, etc. being set to '0' and all other channels being set
to '1'. If the boardinfo does not indicate that the outputs are
inverted, all the channels are set to '0'.

This initialization is unnecessary for the input only ports. The
input/output ports also do not need to be initialized since they
are configured as inputs during the attach.

Move the output port initialization so it occurs when the digital
output subdevice is setup. Use the 's->io_bits' value to initialize
the ports so that the correct inverted/non-inverted state is used
for the comedi '0' value.

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-07-16 13:22:51 -07:00
H Hartley Sweeten 800453dc5c staging: comedi: ni_65xx: use the subdevice 'io_bits' to handle the 'invert_outputs'
Some of the boards supported by this driver have output ports that are
inverted from the comedi view of the output state. For these boards the
read values from the output ports needs to be inverted before being
modified and inverted again before being written back in the (*insn_bits)
operation.

Currently the subdevice type and the boardinfo is checked in the (*insn_bits)
to determine if the inverted outputs need to be handled.

Since thise driver does not use the subdevice 'io_bits', simplify the driver
a bit by initializing the 'io_bits' during the attach to handle the inversion.

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-07-16 13:22:51 -07:00
H Hartley Sweeten 5c70b5360b staging: comedi: ni_65xx: remove 'output_bits' from private data
Remove the need for the 'output_bits' in the private data by just
reading the current state of the data port when updating the output
channels in the (*insn_bits) function.

Add a local variable to handle the inverting of the hardware values
when the boardinfo indicates that the outputs are inverted.

Rename the local variable 'port_read_bits' to 'bits' so that we can
use it for updating the output channels and reading back the actual
state to return to the user.

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-07-16 13:22:51 -07:00
H Hartley Sweeten b44ce32ded staging: comedi: ni_65xx: tidy ni_65xx_intr_insn_bits() declaration
For aesthetics, tidy up the whitespace of this function declarations to
follow the form in the rest of the driver.

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-07-16 13:22:50 -07:00
H Hartley Sweeten 68864aab3d staging: comedi: ni_65xx: update the MODULE_DESCRIPTION
Update the MODULE_DESCRIPTION to better describe the driver.

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-07-16 13:22:50 -07:00
H Hartley Sweeten 96470b6865 staging: comedi: ni_65xx: clean up multi-line comments
Clean up the multi-line comments at the beginning of the file so they
follow the kernel CodingStyle.

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-07-16 13:22:50 -07:00
H Hartley Sweeten f5b6ebd6f1 staging: comedi: ni_65xx: tidy up the comedi_driver declaration
For aesthetics, add some whitespace to the comedi_driver declaration.

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-07-16 13:22:50 -07:00
H Hartley Sweeten feb919dc83 staging: comedi: ni_65xx: tidy up the subdevice initialization
For aesthetics, add some whitespace to the subdevice init.

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-07-16 13:22:50 -07:00
H Hartley Sweeten 1b094a424d staging: comedi: ni_65xx: tidy up the port<->chan conversions
Introduce some convienence macros to handle the port to channel,
channel to port, and channel mask calculations based on the 8
channels per port of the hardware.

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-07-16 13:22:50 -07:00
H Hartley Sweeten b3e33cd3f8 staging: comedi: ni_65xx: fix ni_65xx_intr_insn_config()
Refactor this function to follow the standard (*insn_config) form.

Add a sanity check of the number of data parameters (insn->n). Currently
the core does not check INSN_CONFIG_CHANGE_NOTIFY.

Fix the writes to the rise/fall edge enable registers. The macro expects
a "port" value not the port offset value.

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-07-16 13:22:50 -07:00
H Hartley Sweeten 33998d67d5 staging: comedi: ni_65xx: hook up command support only if irq is available
Subdevice 3 is used in this driver to provide edge detection of the input
channels.

Move the reset/disable of the interrupts and the request_irq() so that
when subdevice 3 is setup we can conditionally hookup the async command
support only if the irq is available.

Also, remove the noise when the irq is not 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>
2014-07-16 13:22:50 -07:00
H Hartley Sweeten 98e9f679dd staging: comedi: ni_65xx: remove the need for the subdevice private data
There is only one member in the subdevice private data, an unsigned value
that is the 'base_port' that the subdevice uses to access the port registers.

Just cast the appropriate value into s->private instead of allocating the
private data for each subdevice. The casts are a bit of a nusance but it
removes the unnecessary allocations.

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-07-16 13:22:49 -07:00
H Hartley Sweeten 11d892cc8c staging: comedi: ni_65xx: remove 'dio_direction' from private data
The IO Select registers are readable. Remove the need for the
'dio_direction' member in the private data by just checking the
register value for the INSN_CONFIG_DIO_QUERY instruction.

Also, refactor the switch statement to return -EINVAL for unhandled
instructions and have the (*insn_config) return insn->n normally.

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-07-16 13:22:49 -07:00
H Hartley Sweeten 8405e40e84 staging: comedi: ni_65xx: cleanup INSN_CONFIG_FILTER handling
The INSN_CONFIG_FILTER instruction is used to set the deglitch filter
interval used to debounce the input channels.

Absorb the helper function into the (*insn_config) function and refactor
the code to not require the 'filter_interval' and 'filter_enable' members
in 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>
2014-07-16 13:22:49 -07:00
H Hartley Sweeten 632b9ad38a staging: comedi: ni_65xx: cleanup recurring register map
Convert the inline functions used to calculate the offsets to the
recurring port registers and rename them to remove the CamelCase.

Define all the recurring registers.

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-07-16 13:22:49 -07:00
H Hartley Sweeten 8f587d35af staging: comedi: ni_65xx: cleanup non-recurring register map defines
Rename the CamelCase defines used for the non-recurring registers.

Define all the non-recurring registers and bits.

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-07-16 13:22:49 -07:00
H Hartley Sweeten 16b2a37895 staging: comedi: ni_65xx: filter interval register is 32-bit
According to the register programming manual, the filter interval
register is 32-bit. Fix the writes to this register.

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-07-16 13:22:49 -07:00
Erik Arfvidson 0f9e530120 staging: unisys: added virtpci info entry
This patch adds the virtpci debugfs directory and the info entry
inside of it.

Signed-off-by: Erik Arfvidson <erik.arfvidson@unisys.com>
Signed-off-by: Benjamin Romer <benjamin.romer@unisys.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-07-16 13:21:38 -07:00
H Hartley Sweeten 39798450a4 staging: comedi: ni_670x: remove COMEDI_MITE and HAS_DMA dependancy
The mite module provides the DMA interface for the PCI MITE ASIC used on
many National Instruments DAQ boards. This driver does not use DMA and only
depends on the mite module to initialize the MITE ASIC.

Handle the initialization localy and remove the unnecessary dependancies.

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-07-16 13:21:38 -07:00
H Hartley Sweeten b965b77f7c staging: comedi: ni_65xx: remove COMEDI_MITE and HAS_DMA dependancy
The mite module provides the DMA interface for the PCI MITE ASIC used on
many National Instruments DAQ boards. This driver does not use DMA and only
depends on the mite module to initialize the MITE ASIC.

Handle the initialization localy and remove the unnecessary dependancies.

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-07-16 13:21:38 -07:00