History log of /drivers/staging/comedi/drivers/addi_apci_2032.c
Revision Date Author Comments
103e280141ecd19b429567af9e9931817dfacd2a 10-Sep-2014 H Hartley Sweeten <hsweeten@visionengravers.com> 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>
52c22b803e1b0259adddb0bd2153674ddb2da0d3 10-Sep-2014 H Hartley Sweeten <hsweeten@visionengravers.com> 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>
aac307f9dd5ce1fe651140a036ab4b0a0571b54a 26-Aug-2014 H Hartley Sweeten <hsweeten@visionengravers.com> staging: comedi: comedi_pci: introduce comedi_pci_detach()

Introduce a generic (*detach) function for comedi PCI drivers to handle
the boilerplate code needed to detach a PCI driver.

This function works similar to comedi_legacy_detach() where it will:

* free the dev->irq if it has been requested
* iounmap the dev->mmio addres if it has been ioremap'ed

The helper then calls comedi_pci_disable() to release the regions and
disable the PCI device.

Use the new helper directly for the (*detach) in the following cases:

* where comedi_pci_disable() is used directly for the (*detach)
* where the detach function is just boilerplate

Use the new helper in the (*detach) of the simpler PCI drivers. Call
the helper after disabling interrupts (reset) and before any additional
cleanup (kfree) to avoid any race conditions with the interrupt handler.

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>
b3cdebbfe22e26c3004eaec91fca1d1851b248d0 26-Aug-2014 H Hartley Sweeten <hsweeten@visionengravers.com> staging: comedi: addi_apci_2032: remove deadcode in apci2030_int_cmdtest()

Reported by: coverity
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>
3672effdeae5395d661a2103f69082146ef949fc 06-May-2014 Ian Abbott <abbotti@mev.co.uk> staging: comedi: pass subdevice to comedi_buf_put()

Change the parameters of `comedi_buf_put()` to pass a pointer to the
comedi subdevice instead of a pointer to the "async" structure belonging
to the subdevice.

The function puts a sample value in the comedi buffer, but currently
only deals with 16-bit sample types. A future version could deal with
16 or 32-bit sample types depending on the value of the SDF_LSAMPL
subdevice flag.

The main aim at the moment is to replace all the `struct comedi_async *`
parameters with `struct comedi_subdevice *` parameters in the comedi
driver API.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
56e781203f055e93e2ff510d87a986e2b367c071 29-Apr-2014 H Hartley Sweeten <hsweeten@visionengravers.com> staging: comedi: addi_apci_2032: tidy up cmd use in apci2032_interrupt()

Use a local variable for the comedi_cmd and tidy up this function 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>
b5ebcaa8d3405e14ca431257fd6c6cdc30df13c5 08-Apr-2014 Georg Gast <georg@schorsch-tech.de> staging: comedi: more descriptive names for addi-data drivers

- more descriptive module description for following boards:
ADDI-DATA APCI 1032/1500/1564/2032/3120

Signed-off-by: Georg Gast <georg@schorsch-tech.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
41e043fcfa2236bb2c4a8335eb09f4c8cee224b3 03-Dec-2013 Jingoo Han <jg1.han@samsung.com> staging: remove DEFINE_PCI_DEVICE_TABLE macro

Don't use DEFINE_PCI_DEVICE_TABLE macro, because this macro
is not preferred.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
97f4289ad08cffe55de06d4ac4f89ac540450aee 30-Aug-2013 H Hartley Sweeten <hsweeten@visionengravers.com> staging: comedi: drivers: use comedi_dio_update_state() for simple cases

Use comedi_dio_update_state() to handle the boilerplate code to update
the subdevice s->state for simple cases where the hardware is updated
when any channel is modified.

Also, fix a bug in the amplc_pc263 and amplc_pci263 drivers where the
current state is not returned in data[1].

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
bcc27c82bac2622e352c732a0bda49651e1799b3 25-Jul-2013 Geert Uytterhoeven <geert@linux-m68k.org> staging: comedi: Add missing #include <linux/slab.h>

sparc64 allmodconfig:

drivers/staging/comedi/drivers/addi_apci_2032.c: In function 'apci2032_auto_attach':
drivers/staging/comedi/drivers/addi_apci_2032.c:328:3: error: implicit declaration of function 'kzalloc' [-Werror=implicit-function-declaration]
drivers/staging/comedi/drivers/addi_apci_2032.c:328:11: warning: assignment makes pointer from integer without a cast [enabled by default]
drivers/staging/comedi/drivers/addi_apci_2032.c: In function 'apci2032_detach':
drivers/staging/comedi/drivers/addi_apci_2032.c:350:3: error: implicit declaration of function 'kfree' [-Werror=implicit-function-declaration]

drivers/staging/comedi/drivers/amplc_pci224.c: In function 'pci224_attach_common':
drivers/staging/comedi/drivers/amplc_pci224.c:1289:2: error: implicit declaration of function 'kmalloc' [-Werror=implicit-function-declaration]
drivers/staging/comedi/drivers/amplc_pci224.c:1289:23: warning: assignment makes pointer from integer without a cast [enabled by default]
drivers/staging/comedi/drivers/amplc_pci224.c:1296:24: warning: assignment makes pointer from integer without a cast [enabled by default]
drivers/staging/comedi/drivers/amplc_pci224.c:1303:25: warning: assignment makes pointer from integer without a cast [enabled by default]
drivers/staging/comedi/drivers/amplc_pci224.c:1348:42: warning: assignment makes pointer from integer without a cast [enabled by default]
drivers/staging/comedi/drivers/amplc_pci224.c: In function 'pci224_detach':
drivers/staging/comedi/drivers/amplc_pci224.c:1474:3: error: implicit declaration of function 'kfree' [-Werror=implicit-function-declaration]

Introduced by commit 0bdab509bf9c6d838dc0a3b1d68bbf841fc20b5a ("staging:
comedi: use comedi_alloc_devpriv()"), which removed some inclusions of
<linux/slab.h>.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ce157f8032bbd46d9427034c335b0afd751da25d 25-Jun-2013 H Hartley Sweeten <hsweeten@visionengravers.com> staging: comedi: don't rely on comedidev.h to include headers

comedidev.h is the main kernel header for comedi. Every comedi
driver includes this header which then includes a number of
<linux/*> headers. All the drivers need <linux/module.h> and some
of them need <linux/delay.h>. The rest are not needed by any of
the drivers.

Remove all the includes in comedidev.h except for <linux/dma-mapping.h>,
which is needed to pick up the enum dma_data_direction for the
comedi_subdevice definition, and "comedi.h", which is the uapi
header for comedi.

Add <linux/module.h> to all the comedi drivers and <linux/delay.h>
to the couple that need 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>
588ba6dc5fb4bdca47a3da38c2718fbb82d3eee1 11-Jun-2013 H Hartley Sweeten <hsweeten@visionengravers.com> staging: comedi: drivers: let core handle freeing s->private

Introduce a new subdevice runflags, SRF_FREE_SPRIV, and a new helper
function, comedi_set_spriv(), that the drivers can use to set the
comedi_subdevice private data pointer. The helper function will also
set SRF_FREE_SPRIV to allow the comedi core to automatically free the
subdevice private data during the cleanup_device() stage of the detach.

Currently s->private is only allocated by the 8255, addi_watchdog,
amplc_dio200_common, and ni_65xx drivers. All users of those drivers
can then have the comedi_spriv_free() calls removed and in many cases
the (*detach) can then simply be the appropriate comedi core provided
function.

The ni_65xx driver uses a helper function, ni_65xx_alloc_subdevice_private(),
to allocate the private data. Refactor the function to return an errno
or call comedi_set_spriv() instead of returning a pointer to the private
data and requiring the caller to handle 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>
641f064e5df6fb3aaeb6256031a153a5efb16ca6 25-Apr-2013 H Hartley Sweeten <hsweeten@visionengravers.com> staging: comedi: remove FSF address from boilerplate text

Addresses change...

Remove the paragraph with the FSF address from all the comedi source
files.

Also, remove the paragraph about the finding the complete GPL in the
COPYING file since it's unnecessary.

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>
2f69915c728c3be41e12dbbbdd4eeb8d3388d58c 16-Apr-2013 H Hartley Sweeten <hsweeten@visionengravers.com> staging: comedi: introduce, and use, comedi_spriv_free()

The comedi_subdevice 'private' variable is a void * that is available
for the subdevice to use in manner. It's common in comedi drivers for
the driver to allocate memory for a subdevice and store the pointer
to that memory in the 'private' variable. It's then the responsibility
of the driver to free that memory when the device is detached.

Due to how the attach/detach works in comedi, the drivers need to do
some sanity checking before they can free the allocated memory during
the detach.

Introduce a helper function, comedi_spriv_free(), to handle freeing
the private data allocated for a subdevice. This allows moving all the
sanity checks into the helper function and makes it safe to call
with any context. It also allows removing some of the boilerplate
code in the (*detach) functions.

Remove the subdev_8255_cleanup() export in the 8255 subdevice driver
as well as the addi_watchdog_cleanup() export in the addi_watchdog
driver and use the new helper instead.

The amplc_dio200_common driver uses a number of local helper functions
to free the private data for it's subdevices. Remove those as well and
use the new helper.

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>
5993f3a2692eed3c74c86882155b8703a0060ad5 08-Apr-2013 H Hartley Sweeten <hsweeten@visionengravers.com> staging: comedi: remove unnecessary dev->board_name initialization

The dev->board_name is now initialized by the comedi core before calling
the(*attach) or (*auto_attach) function in a driver. As long as the driver
does no additional probing, it's no longer necessary initialize the board_name.

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>
818f569fe930c5b8a05d1a44ece3c63c99c13c88 13-Mar-2013 H Hartley Sweeten <hsweeten@visionengravers.com> staging: comedi_pci: pass comedi_device to comedi_pci_enable()

Make comedi_pci_enable() use the same parameter type as
comedi_pci_disable(). This also allows comedi_pci_enable
to automatically determine the resource name passed to
pci_request_regions().

Make sure the errno value returned is passed on instead of
assuming an errno. Also, remove any kernel noise that is
generated when the call fails.

The National Instruments drivers that use the mite module
currently enable the PCI device in the mite module. For
those drivers move the call to comedi_pci_enable into the
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>
7f072f54ae5dc9965cbe450419b1389d13e2b849 13-Mar-2013 H Hartley Sweeten <hsweeten@visionengravers.com> staging: comedi_pci: make comedi_pci_disable() safe to call

Currently all the comedi PCI drivers need to do some checking in
their (*detach) before calling comedi_pci_disable() in order to
make sure the PCI device has actually be enabled.

Change the parameter passed to comedi_pci_disable() from a struct
pci_dev pointer to a comedi_device pointer and have comedi_pci_disable()
handle all the checking.

For most comedi PCI drivers this also allows removing the local
variable holding the pointer to the pci_dev. For some of the drivers
comedi_pci_disable can now be used directly as the (*detach) function.

The National Instruments drivers that use the mite module currently
enable/disable the PCI device in the mite module. For those drivers
move the call to comedi_pci_disable into the driver and make sure
dev->iobase is set to a non-zero value.

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>
b8f4ac237e382accd4b30c75043939f7ed9e79a6 05-Mar-2013 H Hartley Sweeten <hsweeten@visionengravers.com> staging: comedi: comedi_pci: change the comedi_pci_auto_config() 'context'

The comedi_pci_auto_config() function is used to allow the PCI driver
(*probe) function to automatically call the comedi driver (*auto_attach).
This allows the comedi driver to be part of the PnP process when the
PCI device is detected.

Currently the comedi_pci_auto_config() always passes a 'context' of '0'
to comedi_auto_config(). This makes the 'context' a bit useless.

Modify comedi_pci_auto_config() to allow the comedi pci drivers to pass
a 'context' from the PCI driver.

Make all the comedi pci drivers pass the pci_device_id 'driver_data' as
the 'context'. Since none of the comedi pci drivers currently set the
'driver_data' the 'context' will still be '0'.

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>
33782dd5edf8db3cdb7c81a3523bf743dd0209b7 30-Jan-2013 H Hartley Sweeten <hsweeten@visionengravers.com> staging: comedi: conditionally build in PCI driver support

Separate the comedi_pci_* functions out of drivers.c into a new
source file, comedi_pci.c. This allows conditionally building
support for comedi PCI drivers into the comedi core. Fix the
Kconfig and Makefile appropriately.

Group all the comedi_pci_* prototypes and related defines into one
place in comedidev.h. Protect these prototypes with an #ifdef and
provide some dummy functions so that the mixed ISA/PCI comedi
drivers will still build correctly.

Remove the #include <linux/pci.h> from comedidev.h and drivers.c. This
include is only needed by the comedi PCI driver support code and the
PCI drivers. The include should occur in those files.

Also, remove the #include <linux/pci.h> from a couple non-PCI drivers
since it's 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>
abac8b54a353b9a1ac7d09ff790812655f618896 30-Jan-2013 H Hartley Sweeten <hsweeten@visionengravers.com> staging: comedi: conditionally build in USB driver support

Separate the comedi_usb_* functions out of drivers.c into a new
source file, comedi_usb.c. This allows conditionally building
support for comedi USB drivers into the comedi core without the
need for the #if'defery. Fix the Kconfig and Makefile appropriately.
For aesthetic reasons, add some whitespace to the Makefile to keep
everything lined up.

Group all the comedi_usb_* prototypes into one place in comedidev.h.
Protect these prototypes with an #ifdef so that building a comedi
usb driver without USB support will cause a build error. This will
normally not happen as long as the comedi USB driver is placed in
the proper group in the Kconfig.

Remove the #include<linux/usb.h> from comedidev.h and drivers.c. This
include is only needed by the comedi USB driver support code and the
USB drivers. The include should occur in those files.

Removing the include of usb.h exposed a couple drivers that need
<linux/interrupt.h> and <linux/sched.h>. Add the missing includes.

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>
9901a4d75d007686e8f6473189cafc4b216b7449 22-Jan-2013 Peter Huewe <peterhuewe@gmx.de> staging/comedi: Use comedi_pci_auto_unconfig directly for pci_driver.remove

(Almost) all comedi pci drivers have some wrapper for their
pci_driver.remove function which simply calls comedi_pci_auto_unconfig
which has the same function prototype as the wrapper.

-> we can remove these wrappers and call comedi_pci_auto_unconfig
directly. This removes a lot some boilerplate code and saves some bytes.

Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5b62fe2a03e9d25569c0fa0b81b96ac6f0c9b5fd 18-Jan-2013 H Hartley Sweeten <hsweeten@visionengravers.com> staging: comedi: addi_apci_2032: use addi_watchdog module

Use the addi_watchdog module to provide support for the watchdog
subdevice.

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>
215caceb3dac9eb7d431c9da21394c6ccb778b15 03-Dec-2012 Ian Abbott <abbotti@mev.co.uk> staging: comedi: addi_apci_2032: support stop_src == TRIG_COUNT

When setting up asynchronous commands on the special interrupt
subdevice, support the `TRIG_COUNT` stop source to allow the command to
stop automatically after a specified number of scans.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5f6c2a954d17544c68ce83d016ea456207cadeac 03-Dec-2012 Ian Abbott <abbotti@mev.co.uk> staging: comedi: addi_apci_2032: always initialize interrupt subdevice

Initialize the special interrupt subdevice as a digital input subdevice
even if the interrupt handler cannot be registered. It's `insn_bits`
handler will still read the interrupt status register. This hardware
status bits in this register might be valid even if they haven't been
enabled in the interrupt control register, but this needs to be checked.
In any case, initializing the subdevice as a digital input subdevice is
harmless.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
5c2d4cba9586ddc3505f51bddf935ddc65a0e0bb 03-Dec-2012 Ian Abbott <abbotti@mev.co.uk> staging: comedi: addi_apci_2032: use channel list

When setting up asynchronous commands for the special interrupt
subdevice, use the channel list to decide which interrupt sources to
enable. Set the maximum length of the channel list to be the same as
the number of channels (2). Normally, the channel list would include
channel 0, channel 1 or both.

When reading the scan data in the interrupt routine, the readings from
each channel in the channel list will be packed into a single unsigned
short data value. Make each bit in this value correspond to an index in
the channel list.

Since all the channels in the channel list are read at the same time,
insist that the scan end argument is the length of the channel list and
that the conversion source is `TRIG_NOW`.

Allocate some private data for the special interrupt subdevice to hold a
spin-lock, the channels to be enabled and an indication of whether the
command is still active. Stop the command if a buffer overflow occurs.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
ef6543dbad12c1086f3bc3565d8266352521d8a3 03-Dec-2012 Ian Abbott <abbotti@mev.co.uk> staging: comedi: addi_apci_2032: only disable triggered interrupts

The interrupt handler disables all interrupt sources when a valid
interrupt occurs. Just disable the triggered interrupt source so we can
still get interrupts for the other interrupt source.

Also add a comment indicating why the triggered interrupt source is
disabled. The interrupt sources are level-sensitive and indicate
hardware errors that are likely to be persistent, so if we reenabled
them they would just keep triggering repeatedly.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
b652bd83a0528c43e935cb6f2f8df024b7a85c5e 03-Dec-2012 Ian Abbott <abbotti@mev.co.uk> staging: comedi: addi_apci_2032: make insn_bits read live data

The `insn_bits` handler for the special digital input subdevice used for
interrupts currently uses `s->state` for the data value, which is set to
the value of the APCI2032_INT_STATUS_REG register when a valid interrupt
occurs. Just read the live register contents in the `insn_bits` handler
instead of relying on the interrupt service routine to read it for us.

The register contains a couple of hardware error status bits. They
might also be valid even when the corresponding bits have not been
enabled in the APCI_INT_CTRL_REG register in which case this would be
useful for checking for hardware errors without using interrupts, but
this needs to be checked.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
6bf9a3babe630a9972b28fd3bb7d2cfcd40e6409 03-Dec-2012 Ian Abbott <abbotti@mev.co.uk> staging: comedi: addi_apci_2032: set COMEDI_CB_OVERFLOW

If the call to `comedi_buf_put()` fails in the interrupt routine, set
the `COMEDI_CB_OVERFLOW` event flag. Note that the `COMEDI_CB_ERROR`
flag will have also been set by `comedi_buf_put()` in this case.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
b82fe57c4d059a8ff1190ead1693d66b868353b2 03-Dec-2012 Ian Abbott <abbotti@mev.co.uk> staging: comedi: addi_apci_2032: correct interrupt subdevice

The subdevice type and flags are initialized incorrectly for the
interrupt subdevice - the SDF_CMD_READ value belongs in the subdevice
flags. Fix it. Also set the number of channels to 2 since there are 2
interrupt sources each with its own status bit.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
0774c2b5c1e0025cb016393d8552171c0ec55c39 03-Dec-2012 Ian Abbott <abbotti@mev.co.uk> staging: comedi: addi_apci_2032: interrupt safety change

Put the hardware into a safe state before enabling the interrupt. In
the interrupt routine, check the device has been fully configured by
checking `dev->attached`. In particular, `dev->read_subdev` could be
NULL early on and although the hardware's status register should
indicate no interrupt has occurred (since it's been put into a safe
state), it's better not to rely on it.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
05fcdcede016a74ce7350af94aede6a49eebd5c9 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: fix interrupt support

This board supports two interrupt sources:

VCC : detects when the external supply voltage drops below 5V
CC : over temperature diagnostic

Currently the interrupt support is tied into the digital output
subdevice. It's also broken since it does not follow the comedi
API.

Create a new digital input subdevice to handle the interrupts.

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>
b3b7dab7580982a7d0b55395a8b116808447f85a 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: move i_APCI2032_ConfigDigitalOutput()

For aesthetic reasons, move this function.

This function has nothing to do with the digital outputs. It's used
to enable the interrupt sources that the board can generate.

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>
7c7c42cdf6b1968da6588de97c4978ce602b5d34 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: remove the timer s->range_table

The timer subdevice does not have a digital range. Its range of
0 to 0xff is the value used to set the reload timer.

Remove the setting of s->range_table. The comedi core will then
set it to range_unknown.

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>
cf11088242f0f73cb616ab66fb16c2da3d626fff 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: cleanup the subdevice init

For aesthetic reasons, add some whitespace to the subdevice init.

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>
23fb174746057b6d13539735241390eb9e3fdb46 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: fix the watchdog timer subdevice

The watchdog timer on this board functions exactly like the one on
the apci_1516 board. Fix the i_APCI2032_StartStopWriteWatchdog and
i_APCI2032_ConfigWatchdo functions so that the watchdog follows the
comedi API.

Rename the CamelCase function i_APCI2032_StartStopWriteWatchdog to
apci2032_wdog_insn_writ. This function is used to "ping" the watchdog.

Rename the CamelCase function i_APCI2032_ConfigWatchdog to
apci2032_wdog_insn_config. This function is used to enable/disable
the watchdog and set the timeout.

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>
f82a66132b5df489a56e463b63769f8b27202265 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: remove need for addi-data/addi_common.h

Only the ADDIDATA_ENABLE define is used from this header. Just
open-code the value to remove the dependency and 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>
dce10abc499ec5e53ea01683fdb2181f24d6776d 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: remove use of struct addi_private

The only data in addi_private used in this driver is:

tsk_Current - used with send_sig to signal userspace when an interrupt
has occurred. Interrupt support in this driver does not follow the
standard comedi API so this functionality is currently broken. This
will be addressed.

b_OutputMemoryStatus - used in the addi-data "common" code to enable
reading of the eeprom. Eeprom support is not needed by this driver
and has been removed.

Since this data is not needed, remove the use of struct addi_private.

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>
7b5dd1cc988cf34341319c81bb0c7ddc21a2f8ee 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: fix i_APCI2032_ReadWatchdog()

This function is used by the watchdog subdevice to read the status of
the watchdog. Rename the CamelCase function to apci2032_wdog_insn_read
and fix the function to return the status value insn->n times like
the comedi core expects.

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>
7180eb30deee6c05b8924348a7ac7d4deefcf56e 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: cleanup register map defines

Cleanup the defines a bit and add the missing information for the
bits in the registers.

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>
d02178b7fb1f2545ebe1004dc8f1f4436a9d37c1 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: merge in hwdrv_apci2032.c

Merge the code from hwdrv_apci2032.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>
61034e002d8ad10d2265d33168d1dc721375869f 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: cleanup the s->subdev_flags

The flags SDF_GROUND and SDF_COMMON only have meaning for analog
input/output subdevices. Remove these flags from the digital
output and timer subdevices in this driver.

The digital output subdevice does not need the SDF_READABLE flag.
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>
c0c3c7dfc1fd5c970b9893e68796314e8551124f 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: remove boardinfo

This driver only supports a single board type. Remove the boardinfo
and just use the information directly where used.

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>
0c33bdd01abf1d6722792b2022b974116151a572 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: only allocate needed subdevices

The addi-data "common" code always allocated 7 subdevices. This driver
only requires 2. 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>
490555966e77f7e3e8ccbe70629a149451b56a3c 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: 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>
ff5eb17ef48738dcc3348d765134a915c9d5091d 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: don't read the unused PCI bars

This driver only uses PCI bar 1 (dev->iobase), doon't bother reading
the unused 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>
f5f760e1d3bf641dacc64240a593267cab554a7a 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: 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>
dba18c58e0e116b7185277385e087041c52f2afd 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: 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>
70ff406599a5debfa6e5ef243e5e093f63a9ed69 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: simplify the PCI bar reading

The board supported by this driver has a 93c76 eeprom. Knowing this
information allows simplifying the code that reads the PCI bars to
get the iobase address.

Also, since the 'dw_AiBase' is not ioremap'ed we can remove the iounmap
in the detach.

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>
791c9792ff2d12a02f0ab1c47fd7f7a94828b05b 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: absorb i_APCI2032_Reset()

This is the only 'reset' function used by the driver, remove it
from the boardinfo and absorb the code from hwdrv_apci2032.c into
the driver.

Rename the CamelCase function i_ADDI_Reset() to apci2032_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>
6f92e11a24f413032495953f99cabcd57c53eacc 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: remove unnecessary include

This include is no longer 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>
64b42f5e4aacb3a4df8da25237e68efc7c56a0e1 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: remove eeprom support code

Reading the eeprom on the board 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>
3583c53bd5066e14364a246d6f119245134192ab 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: board does not have analog inputs

The board supported by this driver does 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>
977b6944aae619c218dd424498d4cfedabdda1d4 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: board does not have analog outputs

The board supported by this driver does 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>
0cbbbbb9f7044175457962fcf4c14de8df82775b 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: board does not have digital inputs

The board supported by this driver does not have digital 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>
84987a16cae8986b54efa51a6a86533ebb511a68 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: board does not have ttl i/o

The board supported by this driver does 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>
25adf2ccf68814fade52f70ed2888b65db1e5156 30-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_2032: separate from addi_common.c

This driver is for a simple 32 channel digital output board. 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>
53b800198592b0ff96577ecc5f116f7d902a4362 19-Nov-2012 Bill Pemberton <wfp5p@virginia.edu> staging: comedi: remove use of __devexit

CONFIG_HOTPLUG is going away as an option so __devexit is no
longer needed.

Signed-off-by: Bill Pemberton <wfp5p@virginia.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
a690b7e535f2f97a3a05ee570715abeb60a8910f 19-Nov-2012 Bill Pemberton <wfp5p@virginia.edu> staging: comedi: remove use of __devinit

CONFIG_HOTPLUG is going away as an option so __devinit is no longer
needed.

Signed-off-by: Bill Pemberton <wfp5p@virginia.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
a471eace7baa40cdf16d3f26b2f78ddce613ca8f 19-Nov-2012 Bill Pemberton <wfp5p@virginia.edu> staging: comedi: remove use of __devexit_p

CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer
needed.

Signed-off-by: Bill Pemberton <wfp5p@virginia.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
92cba8f3b42e1cb8211b64e91618102ecc8f0a6d 06-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> 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>
06bd743ff823e47da504a4a322e7a0dd02a11197 06-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> 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>
bf36f012c7ddaff083bb0ef187feddf4d85507a0 01-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi-data: remove addi_amcc_s5933.h

Now that the PCI bus walking has been removed from the addi-data
drivers, the only differenced between addi_amcc_s9533.h and the
standard comedi amcc_s5933.h is the additional defines for the
apci3120 "ADDON RELATED ADDITIONS". Move those defines to
hwdrv_apci3120.c.

Modify all the addi-data drivers to then include the standard
comedi amcc_s5933.h header and delete the duplicate in addi-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>
41be28db534330192bbbec9783e6d43d4432a7fb 01-Nov-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi-data: use attach_pci callback

Use the comedi pci auto config mechanism to attach the addi-data
drivers. This allows removing all the PCI bus walking code.

Add a function, addi_find_boardinfo(), to find the driver specific
boardinfo. Since this function is currently in the common code we
have to use the pointer to the boardinfo that is stored in the
comedi_driver pointer.

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>
20a22b706b8ee37d1a2282f2c9bf7f2c73a5a7a5 31-Oct-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_*: add module_comedi_pci_driver()

Pull the module init code out of addi_common.c and add it to
each addi-data driver. Rename the data and functions so they
have namespace associated with the drivers.

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>
c33ef61ff9f731efa4a630a9566a4cdf8945f4af 31-Oct-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi_apci_*: remove unneeded CONFIG_APCI_* defines

These defines were needed for the #ifdef'ery that used to exist
in addi_common.c. Since that has been removed these are no longer
used.

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>
c0a053b8b24d72413a82a16a41f635e6040ccf34 30-Oct-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi-data: remove the boardinfo #ifdef'ery

Move the boardinfo for each addi-data driver from addi_common.c to
the individual driver files. This removes the need #ifdef'ery.

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>
317285d71acccbda2fbab7e53d6b33c52a151a32 30-Oct-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi-data: remove the MODULE_DEVICE_TABLE #ifdef'ery

Move the MODULE_DEVICE_TABLE for each addi-data driver from addi_common.c
to the individual driver files. This removes the need #ifdef'ery.

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>
bf6a1578c10a4f3ef94a3c744267f18f9c3642bd 30-Oct-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi-data: remove the addi-data #include ifdef'ery

Move the addi-data specific #include's from addi_common.h to the
individual driver files.

The apci-1710, apci-3200, and apci-3300 drivers still have floating
point code in them and are currently disabled in the Kconfig and
Makefile. For now, move the fpu_{begin,end} functions from addi_common.c
to the main driver file so we can get rid of the #ifdef'ery.

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>
3d41c44370a9a1e78e53c9997289347ec97d46ee 30-Oct-2012 H Hartley Sweeten <hartleys@visionengravers.com> staging: comedi: addi-data: move the main #include's to the drivers

The addi-data drivers are all built by the main driver files including
addi-data/addi_common.c. That file then includes other files depending
on what driver is being compiled. This is makes the code quite messy
and hard to follow.

Start cleaning it up by removing the unneeded #include's in addi_common.c
and moving the some of the comedi #include's into the individual driver
files.

This is the first step in getting rid of the #ifdef'ery in addi_common.c.

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>
90f703d30dd3e0c16ff80f35e34e511385a05ad5 06-Jun-2010 Arun Thomas <arun.thomas@gmail.com> Staging: comedi: Remove COMEDI_MODULES_MACRO

Add MODULE_AUTHOR, MODULE_LICENSE, and MODULE_DESCRIPTION calls
to the respective C source files instead of calling COMEDI_MODULES_MACRO

Signed-off-by: Arun Thomas <arun.thomas@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
6d8b0f5be5108f6a3fc922ca4acfbf10e14d6cd0 19-May-2010 Ian Abbott <abbotti@mev.co.uk> Staging: comedi: Give the addi_apci_* drivers different driver names

It is not currently possible for more than one of the addi_apci_*
drivers to register themselves with comedi at once because they all use
the same comedi driver name "addi_common". Give them different names.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
c995fe9475e062bab6f5a45ed28cd2d3d955ef43 13-Feb-2009 ADDI-DATA GmbH <info@addi-data.com> Staging: comedi: add addi-data drivers

This adds the addi-data family of comedi drivers to the staging tree

From: ADDI-DATA GmbH <info@addi-data.com>
Cc: David Schleef <ds@schleef.org>
Cc: Frank Mori Hess <fmhess@users.sourceforge.net>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>