Commit Graph

2771 Commits

Author SHA1 Message Date
H Hartley Sweeten
5aaa8bc35b staging: comedi: addi_apci_1516: remove setting of s->io_bits
This value only has meaning for dio subdevices. Don't bother setting
it for the di and do subdevices in this driver.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:54 -08:00
H Hartley Sweeten
308d703ba4 staging: comedi: addi_apci_1516: remove setting of s->len_chanlist
This value only has meaning for subdevices that support async commands.
Since this driver does not support async commands on any of its subdevices,
don't bother setting it . The comedi core will detect this and set the
value appropriately.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:54 -08:00
H Hartley Sweeten
87450c0271 staging: comedi: addi_apci_1516: merge in hwdrv_apci1516.c
Merge the code from hwdrv_apci1516.c into the driver and delete the
now unused file.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:54 -08:00
H Hartley Sweeten
e32a32c909 staging: comedi: addi_apci_1516: cleanup addi_find_boardinfo()
This driver uses the comedi auto_config mechanism to attach to the
PCI board.

This mechanism does not require passing the boardinfo data in the
comedi_driver. Remove it and modify the code to directly access
the boardinfo data instead of messing with the dev->driver->board_name
pointer.

All the boards supported by this driver have the same PCI vendor id.
Remove this extra info from the boardinfo and the test for it.

Rename the function so it has namespace associated with this driver.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:53 -08:00
H Hartley Sweeten
ed168d0a20 staging: comedi: addi_apci_1516: remove unnecessary include
This driver no longer depends on the addi-data "common" code.
Remove the include.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:53 -08:00
H Hartley Sweeten
e195bf803f staging: comedi: addi_apci_1516: remove use of struct addi_board
The only boardinfo needed in this driver only consists of 6 data
values. The "common" addi_board has a lot of unnecessary bloat.

Create a local struct for this drivers boardinfo and remove the
need for struct addi_board in the "common" code.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:53 -08:00
H Hartley Sweeten
a29cd0eedf staging: comedi: addi_apci_1516: remove use of struct addi_private
The only private data this driver has is the iobase address for the
watchdog. Create a local struct to hold this information in dev->private
and remove the need for struct addi_private from the "common" code.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:53 -08:00
H Hartley Sweeten
005ce48e86 staging: comedi: addi_apci_1516: only allocate needed subdevices
The addi-data "common" code always allocated 7 subdevices. This driver
only requires 3. Change the allocation and remove the unused subdevices.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:49 -08:00
H Hartley Sweeten
321ab8a09f staging: comedi: addi_apci_1516: remove use of devpriv->s_EeParameters
This driver no longer reads the eeprom to find the board specific data,
all the necessary data is in the boardinfo. Use the boardinfo directly
instead of passing through devpriv->s_EeParameters.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:48 -08:00
H Hartley Sweeten
308632e849 staging: comedi: addi_apci_1516: don't read the unused PCI bars
This driver does use devpriv->i_IobaseAmcc or devpriv->i_IobaseReserved.
Don't bother reading these PCI bars.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:48 -08:00
H Hartley Sweeten
4bcf9593b4 staging: comedi: addi_apci_1516: remove devpriv->dw_AiBase
This driver does not ioremap the PCI bar stored in devpriv->dw_AiBase.
Remove the iounmap.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:48 -08:00
H Hartley Sweeten
d330b1da10 staging: comedi: addi_apci_1516: remove devpriv->iobase usage
The iobase address stored in devpriv->iobase is also stored in dev->iobase.
Use that instead.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:48 -08:00
H Hartley Sweeten
82c2bc7f50 staging: comedi: addi_apci_1516: remove unnecessary info from boardinfo
The i_IorangeBase[012], i_PCIEeprom, and pc_EepromChip data in the
boardinfo was only needed to work out the usage of the PCI bars.
This is no longer needed so remove the data.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:47 -08:00
H Hartley Sweeten
a3003b4133 staging: comedi: addi_apci_1516: simplify the PCI bar reading
The boards supported by this driver have an eeprom attached to a S5920
PCI controller chip. Knowing this information allows simplifying the
code that reads the PCI bars to get the iobase address.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:47 -08:00
H Hartley Sweeten
56587a06ad staging: comedi: addi_apci_1516: cleanup subdevice ops pointers
The same subdevice operations are used, as needed, for all the boards
supported by this driver. Remove the function pointers from the
boardinfo and set the subdevice operations directly in the attach.

Remove all the subdevice operations that would be set to NULL.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:47 -08:00
H Hartley Sweeten
8451a63216 staging: comedi: addi_apci_1516: boards do not have interrupts
The boards supported by this driver do not have interrupt capabiltiy.
Remove the interrupt support code.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:47 -08:00
H Hartley Sweeten
722bf0f09f staging: comedi: addi_apci_1516: don't reset the apci1016 board
The apci1016 board only has digital inputs. There is no reason to
reset the digital outputs and watchdog timer on that board.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:47 -08:00
H Hartley Sweeten
3b9323b43d staging: comedi: addi_apci_1516: absorb i_APCI1516_Reset()
The same low-level reset function is used by all the boards supported
by this driver. Remove it from the boardinfo and absorb the function
from hwdrv_apci1516.c directly into the driver.

Rename the CamelCase function i_ADDI_Reset() to apci1516_reset().

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:47 -08:00
H Hartley Sweeten
ece790f6cf staging: comedi: addi_apci_1516: remove unnecessary include
This include is not needed.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:46 -08:00
H Hartley Sweeten
485267c47d staging: comedi: addi_apci_1516: remove unused define
The COMEDI_SUBD_TTLIO define is not used by this driver. Remove it.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:46 -08:00
H Hartley Sweeten
a899e56567 staging: comedi: addi_apci_1516: remove eeprom support code
Reading the eeprom on the boards supported by this driver is not
necessary. All the information required is in the boardinfo.

Remove the eeprom support code since it's not really interesting
or useful.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:46 -08:00
H Hartley Sweeten
aa459d0ccc staging: comedi: addi_apci_1516: board does not have analog outputs
The boards supported by this driver do not have analog outputs. Remove
the subdevice init for it.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:46 -08:00
H Hartley Sweeten
b0bfc2ad86 staging: comedi: addi_apci_1516: board does not have analog inputs
The boards supported by this driver do not have analog inputs. Remove
the subdevice init for it.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:46 -08:00
H Hartley Sweeten
c605605e84 staging: comedi: addi_apci_1516: board does not have ttl i/o
The boards supported by this driver do not have ttl i/o. Remove the
subdevice init for it.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:46 -08:00
H Hartley Sweeten
049ff74ca0 staging: comedi: addi_apci_1516: separate from addi_common.c
This driver is for simple 16 channel dio boards. Using the addi-data
"common" code introduces a lot of bloat.

Copy the code in addi_common.c to this driver and remove the #include
that caused addi_common.c to be compiled with this driver. This will
allow removing the bloat.

Rename the attach_pci and detach functions so they have namespace
associated with this driver.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:45 -08:00
H Hartley Sweeten
393cc220bd staging: comedi: addi_apci_1516: define the watchdog control register
Add defines for the bits in the watchdog control register and use
them to remove the "magic" numbers.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:45 -08:00
H Hartley Sweeten
f57f797a6c staging: comedi: addi_apci_1516: cleanup the register map defines
For aesthetic reasons, rename the defines used for the register map
and convert them from decimal to hex values.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:45 -08:00
H Hartley Sweeten
ecc0730573 staging: comedi: addi_apci_1516: add support for apci1016 board
The apci1016 board can also be supported by this driver. This board is
also a 16 channel dio board with 16 input channels. The apci1016 does
not have the watchdog timer feature of the apci1516 and apci2016.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:45 -08:00
H Hartley Sweeten
2a366e7b9d staging: comedi: addi_apci_1516: merge in addi_apci_2016 driver
The low-level hardware support code for these drivers, hwdrv_apci1516.c
and hwdrv_apci2016.c, is identical. Both of these boards are 16 channel
dio boards. The 1516 board has 8 input/8 output channels and the 2016
has 16 output channels.

To ease maintainability, merge the boardinfo and pci device information
from the addi_apci_2016 driver into the addi_apci_1516 driver and modify
the Kconfig and Makefile appropriately.

This allows deleting the addi_apci_2016.c and hwdrv_apci2016.c files.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 15:12:45 -08:00
Ian Abbott
792660d534 staging: comedi: addi_apci_1032: check shared interrupt
In the interrupt service routine, check the device is asserting the
shared interrupt line and check that interrupts have been enabled.

When attaching the device, disable interrupts before setting up the
interrupt handler to avoid handling spurious interrupts before the
device is ready.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 11:53:02 -08:00
Wei Yongjun
54327dd75e staging: comedi: usbduxfast: remove unused variable in usbduxfastsub_ai_Irq()
The variable 'p' is initialized but never used otherwise, so
remove the unused variable.

dpatch engine is used to auto generate this patch.
(https://github.com/weiyj/dpatch)

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 11:53:01 -08:00
Kumar Amit Mehta
7803d8e05d staging: comedi: drivers: jr3_pci.c: fix for coding style issue
fixed few error and warning messages as reported by checkpatch.pl

Signed-off-by: Kumar Amit Mehta <gmate.amit@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 11:49:55 -08:00
H Hartley Sweeten
c965c8b7d2 staging: comedi: addi_common.c: fix the test for the PCI bars
Commit: 0fcdafb83b
staging: comedi: addi-data: cleanup reading of the PCI bars

Changed this test before reading the PCI bars:

	if ((this_board->pc_EepromChip == NULL)
		|| (strcmp(this_board->pc_EepromChip, ADDIDATA_9054) != 0)) {

to this:

	if (!this_board->pc_EepromChip ||
	    !strcmp(this_board->pc_EepromChip, ADDIDATA_9054)) {

I just noticed that the strcmp test is wrong.

This fixes the test and adds a comment for it.

This error "broke" the addi-data drivers but they are broken anyway
since they don't follow the comedi core API.

The addi_apci_1032 driver has been converted to follow the comedi core
API. This error effects that driver since the iobase for it should be
found in PCI bar 1 not 2. This fixes that also.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 11:46:41 -08:00
H Hartley Sweeten
891e62c33d staging: comedi: addi_apci_*: use auto_attach instead of attach_pci
Change the remaining addi-data drivers so they attach using the generic
'auto_attach' method instead the pci specific 'attach_pci' method. The
'attach_pci' is deprecated and is going to be removed.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 11:46:41 -08:00
H Hartley Sweeten
92cba8f3b4 staging: comedi: addi-data: use auto_attach instead of attach_pci
Change the addi-data drivers that use the "common" code so they
attach using the generic 'auto_attach' method instead the pci
specific 'attach_pci' method. The 'attach_pci' is deprecated and
is going to be removed.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 11:46:41 -08:00
H Hartley Sweeten
a9c2ba17be staging: comedi: addi_apci_1500: fix digital input 'insn_bits' function
This driver does not follow the comedi API. The digital input 'insn_bits'
function is supposed to return the status of all the input channels in
data[1]. Currently this function returns the status in data[0].

Fix the function so it works like the comedi core expects.

The 'insn_read' and 'insn_Write' functions for the digital input subdevice
cannot be removed yet. This driver is again abusing the API and uses these
functions to initialize the board and start/stop "events" generated by the
board. These will be addressed later.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 11:21:51 -08:00
H Hartley Sweeten
7cfa1af0de staging: comedi: addi_apci_1516: remove i_APCI1516_ConfigDigitalOutput()
The digital outputs of the board supported by this driver are not
configurable. This driver abuses the comedi API and uses the 'insn_config'
function of the digital output subdevice to enable/disable writing to
the eeprom on the board. Remove this function.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 11:21:50 -08:00
H Hartley Sweeten
5e4116e8f6 staging: comedi: addi_apci_1516: fix digital output 'insn_bits' function
This driver does not follow the comedi API. The digital output 'insn_bits'
function is passed a mask value in data[0] indicating which output bits in
data[1] are changing. The function is then supposed to update the outputs
accordingly and then return the current state of the outputs in data[1].

Currently this driver uses the 'insn_write' function to update either a
single or all the output channels. And it uses the 'insn_bits' function
to read either a single or all the output channel states.

Fix the 'insn_bits' function so it works like the comedi core expects. The
core can then use the function to emulate the 'insn_read' and 'insn_write'
functions for individual channels.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 11:21:45 -08:00
H Hartley Sweeten
2942ab926b staging: comedi: addi_apci_1516: fix digital input 'insn_bits' function
This driver does not follow the comedi API. The digital input 'insn_bits'
function is supposed to return the status of all the input channels in
data[1]. Currently this function returns the status in data[0].

Fix the function so it works like the comedi core expects. The core can
then use the function to emulate the 'insn_read' function for individual
channels.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 11:21:40 -08:00
H Hartley Sweeten
a4a257039f staging: comedi: addi_apci_1564: fix digital output 'insn_bits' function
This driver does not follow the comedi API. The digital output 'insn_bits'
function is passed a mask value in data[0] indicating which output bits in
data[1] are changing. The function is then supposed to update the outputs
accordingly and then return the current state of the outputs in data[1].

Currently this driver uses the 'insn_write' function to update either a
single or all the output channels. And it uses the 'insn_bits' function
to read either a single or all the output channel states.

Fix the 'insn_bits' function so it works like the comedi core expects. The
core can then use the function to emulate the 'insn_read' and 'insn_write'
functions for individual channels.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 11:21:39 -08:00
H Hartley Sweeten
6b5d432852 staging: comedi: addi_apci_1564: fix digital input 'insn_bits' function
This driver does not follow the comedi API. The digital input 'insn_bits'
function is supposed to return the status of all the input channels in
data[1]. Currently this function returns the status in data[0].

Fix the function so it works like the comedi core expects. The core can
then use the function to emulate the 'insn_read' function for individual
channels.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 11:21:39 -08:00
H Hartley Sweeten
95e417aea4 staging: comedi: addi_apci_2016: remove i_APCI2016_ConfigDigitalOutput()
The digital outputs of the board supported by this driver are not
configurable. This driver abuses the comedi API and uses the 'insn_config'
function of the digital output subdevice to enable/disable writing to
the eeprom on the board. Remove this function.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 11:21:39 -08:00
H Hartley Sweeten
1bf448e278 staging: comedi: addi_apci_2016: fix digital output 'insn_bits' function
This driver does not follow the comedi API. The digital output 'insn_bits'
function is passed a mask value in data[0] indicating which output bits in
data[1] are changing. The function is then supposed to update the outputs
accordingly and then return the current state of the outputs in data[1].

Currently this driver uses the 'insn_write' function to update either a
single or all the output channels. And it uses the 'insn_bits' function
to read either a single or all the output channel states.

Fix the 'insn_bits' function so it works like the comedi core expects. The
core can then use the function to emulate the 'insn_read' and 'insn_write'
functions for individual channels.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 11:21:39 -08:00
H Hartley Sweeten
06bd743ff8 staging: comedi: addi_apci_2032: fix digital output 'insn_bits' function
This driver does not follow the comedi API. The digital output 'insn_bits'
function is passed a mask value in data[0] indicating which output bits in
data[1] are changing. The function is then supposed to update the outputs
accordingly and then return the current state of the outputs in data[1].

Currently this driver uses the 'insn_write' function to update either a
single or all the output channels. And it uses the 'insn_bits' function
to read either a single or all the output channel states.

Fix the 'insn_bits' function so it works like the comedi core expects. The
core can then use the function to emulate the 'insn_read' and 'insn_write'
functions for individual channels.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 11:21:38 -08:00
H Hartley Sweeten
80230c26d2 staging: comedi: addi_apci_2200: remove i_APCI2200_ConfigDigitalOutput()
The digital outputs of the board supported by this driver are not
configurable. This driver abuses the comedi API and uses the 'insn_config'
function of the digital output subdevice to enable/disable writing to
the eeprom on the board. Remove this function.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 11:21:38 -08:00
H Hartley Sweeten
8ded30de45 staging: comedi: addi_apci_2200: fix digital output 'insn_bits' function
This driver does not follow the comedi API. The digital output 'insn_bits'
function is passed a mask value in data[0] indicating which output bits in
data[1] are changing. The function is then supposed to update the outputs
accordingly and then return the current state of the outputs in data[1].

Currently this driver uses the 'insn_write' function to update either a
single or all the output channels. And it uses the 'insn_bits' function
to read either a single or all the output channel states.

Fix the 'insn_bits' function so it works like the comedi core expects. The
core can then use the function to emulate the 'insn_read' and 'insn_write'
functions for individual channels.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 11:21:38 -08:00
H Hartley Sweeten
bf83f6d85e staging: comedi: addi_apci_2200: fix digital input 'insn_bits' function
This driver does not follow the comedi API. The digital input 'insn_bits'
function is supposed to return the status of all the input channels in
data[1]. Currently this function returns the status in data[0].

Fix the function so it works like the comedi core expects. The core can
then use the function to emulate the 'insn_read' function for individual
channels.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 11:21:38 -08:00
H Hartley Sweeten
b96450712f staging: comedi: addi_apci_3120: remove i_APCI3120_InsnConfigDigitalOutput()
The digital outputs of the board supported by this driver are not
configurable. This driver abuses the comedi API and uses the 'insn_config'
function of the digital output subdevice to enable/disable writing to
the eeprom on the board. Remove this function.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 11:21:38 -08:00
H Hartley Sweeten
66511843c5 staging: comedi: addi_apci_3120: fix digital output 'insn_bits' function
This driver does not follow the comedi API. The digital output 'insn_bits'
function is passed a mask value in data[0] indicating which output bits in
data[1] are changing. The function is then supposed to update the outputs
accordingly and then return the current state of the outputs in data[1].

Currently this driver uses the 'insn_write' function to update either a
single or all the output channels. And it uses the 'insn_bits' function
to read either a single or all the output channel states.

Fix the 'insn_bits' function so it works like the comedi core expects. The
core can then use the function to emulate the 'insn_read' and 'insn_write'
functions for individual channels.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 11:21:38 -08:00
H Hartley Sweeten
a7f4b3ca60 staging: comedi: addi_apci_3120: fix digital input 'insn_bits' function
This driver does not follow the comedi API. The digital input 'insn_bits'
function is supposed to return the status of all the input channels in
data[1]. Currently this function returns the status in data[0].

Fix the function so it works like the comedi core expects. The core can
then use the function to emulate the 'insn_read' function for individual
channels.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-11-13 11:21:38 -08:00