The boards supported by this driver either have analog outputs or don't
have them. Add a new boardinfo value, 'has_ao', to indicate this.
The boards that have analog outputs always have 4, 12-bit channels. Remove
the unnecessary boardinfo and just open-code the values in the subdevice
initialization.
The boards with analog outputs also share the same output range capabilities.
Rename the comedi_lrange to make it common for all board types.
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>
All the boards supported by this driver have the same analog input
specifications. Remove the unnecessary boardinfo and just open-code
the values in the subdevice initialization.
The boards also share the same analog input range capabilities. Remove
one of the duplicate tables and rename the other to make it common for
all board types.
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>
Reformat the copyright and driver description comments to follow the
preferred block comment style. Reword the driver description to follow
comedi style described in the skel 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>
The analog input subdevice functions me_ai_do_cmd_test() and me_ai_do_cmd()
are only stubbed in. They both just return 0.
The me_ai_cancel() function does have code to stop any running conversions
but the me_ai_insn_read() function does that also.
Just remove the incomplete functions and remove SDF_CMD_READ from the
subdevice_flags.
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>
This function is supposed to write to a single analog output channel.
The channel number is packed in insn->chanspec, which is an unsigned
int, and unpacked using the CR_CHAN() macro.
Currently this function is trying to use the chanspec as an array.
This works only if a single value is written.
Fix the function so that the desired channel is determined and all
the data is written to that channel.
Also, fix the return. The comedi core expects insn_read functions to
return the number of data values (insn->n).
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>
This function is supposed to return the analog output value for
a specified channel. The channel number is packed in insn->chanspec,
which is an unsigned int, and unpacked using the CR_CHAN() macro.
Currently this function is trying to use the chanspec as an array.
This works only if a single data value is read.
Fix the function so that the desired channel is determined and all
the data returned is from that channel.
Also, fix the return. The comedi core expects insn_read functions to
return the number of data values (insn->n).
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>
This driver uses the comedi auto config mechanism and does not
walk the pci bus to find the pci_dev. It should not be calling
pci_dev_put() to decrement the ref count.
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>
Rename the boardinfo variables so they are a bit more concise.
Remove the unnecessary comments in the boardinfo.
Add some whitespace to make the code more readable.
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>
All the boards supported by this driver have 32 dio channels.
Remove the boardinfo and just open code the value in the attach.
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>
Factor out the code in me_attach_pci() that handles the PLX-Bug
workaround to a separate function.
This looks odd. It appears that the bug workaround either swaps
PCI bars 0 and 5 or it modifies PCI bar 0. Shouldn't this happen
before PCI bar 0 is ioremap'ed?
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>
Instead of returning -EIO when comedi_pci_enable() fails, pass on
the actual error code. Also, remove the kernel noise when the
function fails.
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>
Two local variables are used in me_attach_pci() to check for errors
when calling other functions, 'result' and 'error'. Remove both of
them and just use a common 'ret' variable.
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>
PCI bar 2 is the main i/o address for this driver. Currently the
pci_resource_len of the bar is stored in the private data but
it is never used.
Remove 'me_regbase_size' from the private data. Also, remove the
local variables used for the pci_resource_start and _len. Just
pass the values directly to the ioremap().
Remove the kernel noise when the ioremap fails.
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>
As pointed out by Dan Carpenter, dev_private could be NULL when it
is checked before calling comedi_pci_disable(). The private data
variable 'plx_regbase_size' is only used to see if the pci device
has been enabled.
Remove that variable from the private data and just use the unused
dev->iobase variable to let the detach know that the pci device
is enabled.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
None of the callers check the return value. Just make it a void.
Flip the status check at the end of the function to check for an
error before outputing the dev_dbg(). Use __func__ for the function
name in the message.
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>
Remove most of the dev_dbg() output from this driver. Most of it
is just noise.
For now I have left the dev_dbg() in the dt3k_send_cmd() function.
I still have not quite figured out how the low-level i/o works 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>
The PCI device ids supported by this driver are used multiple
places in the code. To improve maintainability, create #define's
for them.
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>
Convert this driver to use the comedi PCI auto config mechanism
by adding an attach_pci callback.
Since this driver requires no extra configuration options, and
the attach callback is now optional, remove it.
Remove the kernel noise that is output when the attach fails
for various reasons.
Use the found 'dev->board_name' for the resource name passed to
comedi_pci_enable() and request_irq().
Pass on the error returned from request_irq() instead of returning
-EINVAL on error.
Since this driver no longer walks the pci bus to find the pci_dev,
remove the pci_dev_put() 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>
This macro relies on a local variable having a specific name.
Remove it and use the comedi_board() helper to get the 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>
fixed below checkpatch warning.
- WARNING: Prefer netdev_warn(netdev, ... then dev_warn(dev, ... then pr_warn(... to printk(KERN_WARNING ...
some of them have been replaced by dev_dbg.
Signed-off-by: YAMANE Toshiaki <yamanetoshi@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
these are not called at anypoint or enabled at anyplace in the code,
remove them
Signed-off-by: Devendra Naga <devendra.aaru@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Nobody is using this function inside the csr directory, so remove this function also
Signed-off-by: Devendra Naga <devendra.aaru@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Support for this hardware is now included in a "real" driver in the
kernel, so it is safe to remove the staging driver now.
Cc: wwang <wei_wang@realsil.com.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Fixed some coding style issues replacing spaces for tab at the beginning
of some lines
Signed-off-by: Chihau Chau <chihau@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
when down_interruptible fail, means a signal occur, or any other failure
we are panicing, and it seems that we should not panic, instead we would
have done a spinlock, but currently removing the panic call.
Signed-off-by: Devendra Naga <devendra.aaru@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
IPU Interrupt numbers and the various IPU submodules base addresses are
more interesting for debugging purposes rather than normal use, so use
dev_dbg instead.
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>