Commit Graph

414515 Commits

Author SHA1 Message Date
H Hartley Sweeten
a92fe15636 staging: comedi: pcmmio: fix final checkpatch warning
Fis the last checkpatch.pl warning in this driver:

WARNING: space prohibited between function name and open parenthesis '('
+           comedi_buf_put (s->async, val >> 16)) {

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>
2013-12-17 10:02:14 -08:00
H Hartley Sweeten
a88a6376de staging: comedi: pcmmio: tidy up the multi-line comments
Tidy up the multi-line comments are the beginning of the file to follow
the 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>
2013-12-17 10:02:14 -08:00
H Hartley Sweeten
500821f312 staging: comedi: pcmmio: update the MODULE_DESCRIPTION
Change the MODULE_DESCRIPTION to something more usefull than the
generic "Comedi low-level 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>
2013-12-17 10:02:14 -08:00
H Hartley Sweeten
748cfd987b staging: comedi: pcmmio: return '0' after successful attach
The comedi core expects the (*attach) functions to return < 0 to indicate
an error or >= 0 for success. Change the return to '0' as that is more
typical.

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>
2013-12-17 10:02:14 -08:00
H Hartley Sweeten
23bafad0d1 staging: comedi: pcmmio: cleanup the private data
Fix the types of some of the private data members. The 'enabled_mask' and
'stop_count' should be unsigned int values. The 'active' and 'continuous'
members are flags, change them to unsigned int bit fields.

Remove the 'sprivs' pointer. This should have been removed when the subdevice
private data was removed.

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>
2013-12-17 10:02:14 -08:00
H Hartley Sweeten
f41520de5b staging: comedi: pcmmio: remove unused defines
These defines are not longer used in the driver. Remove them.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-12-17 10:02:14 -08:00
H Hartley Sweeten
c5b970aeb9 staging: comedi: pcmmio: tidy up pcmmio_start_intr()
Refactor the function to remove some indent levels.

Use pcmmio_dio_write() to write the polarity and enable paged registers
instead of using the for () loop to write each register in the pages.

The for () loop actually has a bug. It switches the page to the 'enab'
registers for the first port then switches to the 'pol' registers for
all remaining writes. It also was not using the pagelock spinlock to
protect the writes to the page registers. Using the pcmmio_dio_write()
helper ensures that the writes to the paged registers complete correctly.

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>
2013-12-17 10:02:14 -08:00
H Hartley Sweeten
2eb6b51822 staging: comedi: pcmmio: setup irq routing during (*attach)
To use interrupts the IRQ routing must be configured and interrupts
enabled. Currently both steps are being handled in pcmmio_start_intr().

Move the code that sets the IRQ routing into the attach of the board.
At this point interrupts are still disabled. The enable and polarity
bits just need to be set in pcmmio_start_intr() to enable them.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-12-17 10:02:14 -08:00
H Hartley Sweeten
5181886e78 staging: comedi: pcmmio: only hook up async command support if irq is available
Refactor the board attach so that the async commands support is only
hooked up if the irq is actually 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>
2013-12-17 10:02:14 -08:00
H Hartley Sweeten
d7c41e83e2 staging: comedi: pcmmio: tidy up pcmmio_handle_dio_intr()
Refactor the code to remove some of the indent levels.

Remove 'mytrig', the shift and mask end up making it the same as 'triggered'
anyway.

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>
2013-12-17 10:02:14 -08:00
H Hartley Sweeten
967e7e5a99 staging: comedi: pcmmio: factor the trigger handling out of interrupt_pcmmio()
Factor the code that actually handles the digital input triggers out of
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>
2013-12-17 10:02:14 -08:00
H Hartley Sweeten
eacc792d2c staging: comedi: pcmmio: use pcmmio_dio_{read, write}() in interrupt_pcmmio()
Use the helper functions to read/write the PCMMIO_PAGE_INT_ID registers. This
allows removing the need to lock/unlock the spinlock 'pagelock' and removes the
need for the for () loop that did the read/write of the 3 paged registers.

Also, remove the need for the 'got1' local variable by just returning 'IRQ_NONE'
if there are not interrupts pending.

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>
2013-12-17 10:02:14 -08:00
H Hartley Sweeten
cd756e3d1b staging: comedi: pcmmio: cleanup indent levels in interrupt_pcmmio()
Remove the extra indent levels in this function that resulted from
code removed in previous patches.

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>
2013-12-17 10:02:13 -08:00
H Hartley Sweeten
0cc9a4e4b6 staging: comedi: pcmmio: use comedi_legacy_detach() for (*detach)
The (*detach) of this driver just calls comedi_legacy_detach(). Use that
directly for the (*detach).

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>
2013-12-17 10:02:13 -08:00
H Hartley Sweeten
35c5e88498 staging: comedi: pcmmio: remove subdevice private data
Only subdevice[2], the dio interrupt subdevice, uses the subdevice private data.
Move the members from struct pcmmio_subdev_private to struct pcmmio_private and
remove the subdevice private data. This also allows removing the allocation and
freeing of devpriv->sprivs.

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>
2013-12-17 10:02:13 -08:00
H Hartley Sweeten
518bf39f74 staging: comedi: pcmmio: remove 'num_asic_chans' from subdevice private data
The 'num_asic_chans' that support interrupts in the interrupt subdevice is
always initialized to '24'. Remove this unneeded information from the subdevice
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>
2013-12-17 10:02:13 -08:00
H Hartley Sweeten
8fba3e5b1f staging: comedi: pcmmio: remove 'asic_chan' from subdevice private data
The first 'asic_chan' that supports interrupts in the interrupt subdevice is
always initialized to '0'. Remove this unneeded information from the subdevice
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>
2013-12-17 10:02:13 -08:00
H Hartley Sweeten
b346c318b7 staging: comedi: pcmmio: remove 'first_chan' from subdevice private data
The 'first_chan' that supports interrupts in the interrupt subdevice is always
initialized to '0'. Remove this unneeded information from the subdevice 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>
2013-12-17 10:02:13 -08:00
H Hartley Sweeten
8c41e9f41b staging: comedi: pcmmio: remove 'asic' member from subdevice private data
This member of the subdevice private data is always initialized to '0' by
the only subdevice that uses it. Since we only have one asic on the board
it's really not needed. Just remove it.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-12-17 10:02:13 -08:00
H Hartley Sweeten
1786bd7503 staging: comedi: pcmmio: remove unnecessary for () loop and sanity check
There is only one asic on the board so the for () loop in the interrupt
handler to check multiple asics is not needed.

The sanity check of the 'irq' in the interrupt handler is also not needed.
If it _is_ wrong we have bigger problems in the kernel.

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>
2013-12-17 10:02:13 -08:00
H Hartley Sweeten
19e0bf1235 staging: comedi: pcmmio: unwind the digital i/o subdevice init
The board supported by this driver only has one asic that provides the
two digital i/o subdevices. The first dio subdevice has 24 channels that
support interrupts. The second dio subdevice also has 24 channels but no
interrupt support.

To make the code clearer and easier to maintain, remove the for () loop
that initialized these subdevices.

Also, correctly initialize the interrupt subdevice. The current code does
not set the SDF_CMD_READ subdev_flag and does not set the dev->read_subdev
pointer in the comedi_device.

Use the dev->read_subdev pointer in the interrupt handler to get the
interrupt subdevice and private data pointer instead of searching for
them. To keep this patch reviewable, the extra indents in interrupt_pcmmio()
will be removed later.

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>
2013-12-17 10:02:13 -08:00
H Hartley Sweeten
29947fd631 staging: comedi: pcmmio: simplify pcmmio_stop_intr()
This function is only called by the interrupt subdevice so the sanity
check of the 'asic' is not necessary. Remove it.

The 'nports' is always 3 and the 'firstport' is always 0. Remove the
for () loop that clears the registers to disable the interrupts and
just use the pcmmio_dio_write() helper to write to the three page
registers.

This also fixes a bug where the write to the page registers is not
protected with the spinlock.

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>
2013-12-17 10:02:13 -08:00
H Hartley Sweeten
62957c9867 staging: comedi: pcmmio: remove 'iobases' from the subdevice private data
This member of the subdevice private data is not longer used. Remove it.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-12-17 10:02:13 -08:00
H Hartley Sweeten
0398606c18 staging: comedi: pcmmio: simplify pcmmio_dio_insn_bits()
Currently this function uses the subdevice private data to get the
iobase address needed to update the dio output channel state and
read the current state of the input channels. This subdevice private
data is in the process of being removed.

Use the subdevice 'index' to determine the base 'port' needed to
access the correct digital i/o registers. The pcmmio_dio_write()
function can then be used to update the outputs.

Introduce a new helper function, pcmmio_dio_read(), to read the
current state of the input channels.

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>
2013-12-17 10:02:13 -08:00
H Hartley Sweeten
72c7692a9d staging: comedi: pcmmio: simplify pcmmio_dio_insn_config()
Currently this function uses the subdevice private data to get the
iobase address needed to update the channel configuration. This
subdevice private data is in the process of being removed.

Use the subdevice 'index' to determine the base 'port' needed to
access the correct digital i/o registers. The pcmmio_dio_write()
function can then be used to update the configuration.

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>
2013-12-17 10:02:13 -08:00
H Hartley Sweeten
4edac4a4da staging: comedi: pcmmio: introduce pcmmio_dio_write()
The paged registers in the asic need to be spinlock protected to
ensure that the page is not changed while writing to the registers.

Introduce a helper function to make sure the spinlock is used.

Use the new helper in pcmmio_reset(). This is one of the places where
the spinlock is not used.

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>
2013-12-17 10:02:13 -08:00
H Hartley Sweeten
83d55bd03f staging: comedi: pcmmio: rename 'spinlock' in the private data
This spinlock_t is meant to protect the page registers in the asic.
Rename it to make this clear.

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>
2013-12-17 10:02:13 -08:00
H Hartley Sweeten
20218e6a3c staging: comedi: pcmmio: remove 'subpriv' macro
This macro relies on a local variable having a specific name. Remove
the macro and add a local variable where used.

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>
2013-12-17 10:02:12 -08:00
H Hartley Sweeten
03a36f172b staging: comedi: pcmmio: cleanup the digital i/o register defines
Redefine the registers used to access the digital i/o so that they
are based on the dev->iobase of the board instead of the 'asic_iobase'
that is stored in the private data.

Remove the then unused 'asic_iobase'.

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>
2013-12-17 10:02:12 -08:00
H Hartley Sweeten
0cc4f3bd5f staging: comedi: pcmmio: tidy up init_asics()
Rename this function so it has namespace associated with the driver.

The board supported by this driver only has one WinSystems WS16C48 asic
on it that handles the digital i/o. Remove the unnecessary for () loop
that would reset multiple asics.

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>
2013-12-17 10:02:12 -08:00
H Hartley Sweeten
8657fed873 staging: comedi: pcmmio: remove 'asic' parameter from switch_page()
The board supported by this driver only has one WinSystems WS16C48 asic
on it that handles the digital i/o.

Remove the unnecessary 'asic' parameter that is passed to switch_page().

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>
2013-12-17 10:02:12 -08:00
H Hartley Sweeten
d65bd16d05 staging: comedi: pcmmio: there is only one asic
The board supported by this driver only has one WinSystems WS16C48 asic
on it that handles the digital i/o.

Remove the 'asics' struct array in the private data and add members for
the single 'asic_iobase' and the spinlock used by the asic.

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>
2013-12-17 10:02:12 -08:00
H Hartley Sweeten
b16f405a6b staging: comedi: pcmmio: remove unused members in private data
The 'pol' and 'enab' members in the private data are never used. The
'num' member is set during the attach but never used. Remove them.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-12-17 10:02:12 -08:00
H Hartley Sweeten
6e6bed0b52 staging: comedi: pcmmio: tidy up the irq request
The for () loop that does the request_irq() in this driver is a bit of
an overkill. The code appears to have been copied from the pcmuio driver
which supports boards with 1 or 2 ASIC devices. The board supported by
this driver only has 1 ASIC.

Simplify the code and store the irq number in the comedi_device. This
allows the core to automatically do the free_irq() when the driver is
detached.

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>
2013-12-17 10:02:12 -08:00
H Hartley Sweeten
5d4997bbfa staging: comedi: pcmmio: tidy up the ao subdevice init
Add some whitespace to the analog output subdevice init and reorder the
init to follow the "norm" in comedi drivers.

Remove the init of len_chanlist. This member is only used for subdevices
the support async commands. The core will default the value correctly.

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>
2013-12-17 10:01:50 -08:00
H Hartley Sweeten
7af64f9acb staging: comedi: pcmmio: tidy up ao_rinsn()
Rename this function so it has namespace associated with the driver.

Move the 'chan' local variable out of the for () loop. The 'chan' is
constant for the comedi_insn and only needs to be fetched once from
the insn->chanspec.

Also, remove the sanity check of the chan. The comedi core will ensure
that the chan is valid for the subdevice before calling this function.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-12-17 10:01:50 -08:00
H Hartley Sweeten
6f216c966c staging: comedi: pcmmio: return error if ao conversion times out
Rename wait_dac_ready() so it has namespace associated with the
driver.

Fix the function so it returns an errno if the conversion times
out. Propogate this errno if it happens.

Define the analog output status register to remove the magic numbers.

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>
2013-12-17 10:01:50 -08:00
H Hartley Sweeten
68533c7b8e staging: comedi: pcmmio: cleanup ao_winsn()
Rename this function to have namespace associated with the driver.

Refactor the function to remove the extra write to the command register
to set the range before writing the DAC value. Since the range is constant
for the entire comedi_insn it only needs to be set once. All writes to the
DAC after that will use the same range.

Define the register map for the analog output 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>
2013-12-17 10:01:50 -08:00
H Hartley Sweeten
a81f87e9a0 staging: comedi: pcmmio: remove 'iobase' from subdevice private data
The 'iobase' is only used to pass the iobase address of the analog output
registers to ao_winsn(). This address is simply dev->iobase + 8.

Use that instead and remove the 'iobase' from the subdevice private data.
This removes a couple more uses of the ugly 'subpriv' macro.

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>
2013-12-17 10:01:50 -08:00
H Hartley Sweeten
e83d5f2661 staging: comedi: pcmmio: move ao shadow data to device private data
There is only one ai subdevice in this driver so there is no reason
to hold the last sample written to each channel in the subdevice
private data. Move the data into the device private data,

This gets some of the data out of the subdevice private data union
and removes some of the uses of the ugly 'subpriv' macro.

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>
2013-12-17 10:01:50 -08:00
H Hartley Sweeten
170f13cca8 staging: comedi: pcmmio: tidy up the ai subdevice init
Add some whitespace to the ai subdevice init and reorder it a bit
to follow the "norm" in comedi drivers.

Remove the init of s->len_chanlist. This member is only used with
subdevices that support async commands. The core will default the
value correctly..

The ai subdevice only uses the s->private member to pass the iobase
to the analog input registers. It's just a copy of the dev->iobase,
use that 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>
2013-12-17 10:01:50 -08:00
H Hartley Sweeten
2d314558d7 staging: comedi: pcmmio: define the offset to the 2nd ADC device
There are two ADC devices on this board. The first one handles ai
channels 0-7 and the second one channels 8-15.

Define the offset that is added to the iobase to access the 2nd
ADC device.

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>
2013-12-17 10:01:50 -08:00
H Hartley Sweeten
7ce69685a3 staging: comedi: pcmmio: return error if ai conversion times out
Rename adc_wait_ready() so it has namespace associated with the
driver.

Fix the function so it returns an errno if the conversion times
out. Propogate this errno if it happens.

Define the analog input status register to remove the magic numbers.

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>
2013-12-17 10:01:50 -08:00
H Hartley Sweeten
8b0fcb5992 staging: comedi: pcmmio: cleanup ai_rinsn()
Rename this function to have namespace associated with the driver.

Refactor the function to remove the extra write to the command register
between each ADC conversion. We only need to do one dummy conversion in
order to flush the serial ADC. After that each command will return the
result of the previous conversion.

Define the register map for the analog input 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>
2013-12-17 10:01:50 -08:00
H Hartley Sweeten
5fde07640c staging: comedi: pcmmio: use core helpers to munge bipolar ai data
Use the comedi_range_is_bipolar() and comedi_offset_munge() helpers to
munge the bipolar analog input 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>
2013-12-17 10:01:50 -08:00
H Hartley Sweeten
f9ec4efd3c staging: comedi: pcmmio: cleanup comedi_lrange tables
Use the BIP_RANGE and UNI_RANGE macros where appropriate instead of
the more generic RANGE macro.

Rename the range tables so they have namespace associated with 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>
2013-12-17 10:01:50 -08:00
H Hartley Sweeten
7645694c69 staging: comedi: pcmmio: tidy up switch_page()
All the I/O ports are left unlocked in the driver so the 'pagelock'
in the private data is not necessary. The paranoia sanity checks
are also unnecessary, Remove them.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-12-17 10:01:49 -08:00
H Hartley Sweeten
2ab62fdfc3 staging: comedi: pcmmio: remove unused {lock, unlock}_port()
These functions are #ifdef'ed out and not needed in the driver.
Just remove them.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-12-17 10:01:49 -08:00
Gary Rookard
f34c488c38 Staging: bcm: DDRInit: fixed issues w/ indentation.
restructured the levels of indentation to follow the linux
kernel coding style thus fixing checkpatch errors and warnings
respectfully.

Signed-off-by: Gary Alan Rookard <garyrookard@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-12-17 09:51:07 -08:00
Masanari Iida
0f4a97f51e staging: gdm72xx: Fix WARNING space prohibited before semicolon in gdm_qos.c
Fixed WARNING: space prohibited before semicolon
found by checkpatch.pl in gdm_qos.c

Signed-off-by: Masanari Iida <standby24x7@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-12-17 09:50:11 -08:00