staging: comedi: comedi_fc.h: introduce new helpers for do_cmdtest step 3
Step 3 of the do_cmdtest functions validates the arguments for the
command to be executed. Most of these are simple tests to see if the
argument "is" a value, a "min" value, or a "max" value. Each of these
tests then clamps the argument to the value if it fails the test.
Introduce three new helper functions in comedi_fc.h to handle these
tests and remove the boilerplate code from the drivers.
The new helper functions are:
cfc_check_trigger_arg_is() - argument must be == the value
cfc_check_trigger_arg_min() - argument must be >= the value
cfc_check_trigger_arg_max() - argument must be <= the value
All of these helpers set the argument to the value and return -EINVAL
if the validation 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>
This function is used by the watchdog subdevice to "ping" the watchdog.
Rename the CamelCase function to apci1516_wdog_insn_write.
Currently this function does not follow the comed API. INSN_WRITE functions
are supposed to write insn->n values. Also, starting and stopping the
watchdog is handled by the INSN_CONFIG function.
Fix this function so it works like the comedi core expects. Also, since
the watchdog needs to be enabled in order to "ping" it, make sure it is
enabled before writing to 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>
This function is used by the watchdog subdevice to enable/disable and
set the timeout for the watchdog. Rename the CamelCase function to
apci1516_wdog_insn_config.
Currently this function does not follow the comed API. Recode it so
it works like the core expects. data[0] is the configuration id code
(INSN_CONFIG_*) for the configuration instruction. Two instructions
are supported:
INSN_CONFIG_ARM: enables the watchdog and sets the timeout value
INSN_CONFIG_DISARM: disables the watchdog
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 used by the watchdog subdevice to read the status of
the watchdog. Rename the CamelCase function to apci1516_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>
This driver uses the comedi auto_config mechanism to attach to
the comedi subsystem. The dev->hw_dev is set by the core so
comedi_to_pci_dev() will always return a valid pcidev. Remove
the unnecessary test.
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>
staging: comedi: addi_apci_1516: 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
input/output and timer subdevices in this driver.
The digital output subdevice does not need the SDF_READABLE flags.
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
staging: vt6656: iwctl_giwaplist/device_ioctl : use off stack buffers.
Calls ioctl SIOCGIWAPLIST use off stack buffers.
clears up warning messages.
main_usb.c:2015:1: warning: the frame size of 1888 bytes is larger than 1024 bytes [-Wframe-larger-than=]
iwctl.c:683:1: warning: the frame size of 1280 bytes is larger than 1024 bytes [-Wframe-larger-than=]
Radhesh Fadnis [Tue, 13 Nov 2012 18:10:04 +0000 (14:10 -0400)]
staging: omap-thermal: fix context restore function
In the context restore function, if the context is lost or
not is being checked by the contents of the counter register.
But this is logic hold good as long as counter reset value is
zero, if the reset value is non-zero then above logic doesn't
hold good. Hence removed checking of the register value and
restoring the context.
Eduardo Valentin [Tue, 13 Nov 2012 18:10:02 +0000 (14:10 -0400)]
staging: omap-thermal: remove freq_clip table
The API exposed by cpu cooling does not need any freq clip
table anymore. Now the cpu cooling device is smart enough
to build its own table.
For this reason, this patch removes all the code that is
generating a freq clip table and also removes all references
in data structures regarding freq clip table.
"The cpu return address and the DMA bus master address are both
guaranteed to be aligned to the smallest PAGE_SIZE order which
is greater than or equal to the requested size."
There are several places in the et131x.c code where these addresses are
aligned to a 4k boundary after a call to dma_alloc_coherent(),
needlessly.
Remove these alignment offset calculations, and the
et131x_align_allocated_memory() call which is only used for 4k
alignments.
Signed-off-by: Mark Einon <mark.einon@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Mark Einon [Mon, 12 Nov 2012 21:16:28 +0000 (21:16 +0000)]
staging: et131x: Avoid unnecessary calculations in for loop
In et131x_rx_dma_memory_alloc(), we loop over fbr_entries - the values of
fbr_align and fbr_chunksize calculated in the loop do not depend on the
loop counter and are the same for all loop iterations.
Take the calculations of these values out of the loop, as we only
need to calculate them once per loop, not once per loop iteration.
Signed-off-by: Mark Einon <mark.einon@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Johan Meiring [Sun, 11 Nov 2012 20:41:13 +0000 (22:41 +0200)]
staging: ipack: tpci200: fixes 80 character line length issue
This fixes one of the two instances of an 80+ char line in the file.
Fixing the other instance would have decreased the readability of the
code, in my opinion.
Signed-off-by: Johan Meiring <johanmeiring@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Stefan Hajnoczi [Sun, 11 Nov 2012 12:52:26 +0000 (13:52 +0100)]
staging: line6: drop unused CONFIG_LINE6_USB_DEBUG
The CONFIG_LINE6_USB_DEBUG option is no longer relevant since dyndbg
dev_dbg() is now used instead of a compile-time decision whether to
enable debug messages or not.
Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Stefan Hajnoczi [Sun, 11 Nov 2012 12:52:24 +0000 (13:52 +0100)]
staging: line6: replace DEBUG_MESSAGES() with dev_dbg()
The dyndbg feature allows dev_dbg() calls to be enabled/disabled at
runtime and is therefore more convenient than static debug log messages.
Use dev_dbg() instead of the line6-specific DEBUG_MESSAGES() macro.
Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Stefan Hajnoczi [Sun, 11 Nov 2012 12:24:44 +0000 (13:24 +0100)]
staging: line6: replace deprecated strict_strtol() in toneport.c
The LED value is an int, so replace strict_strtol() with kstrtoint().
It's safe to pass in the actual variable instead of a local temporary
because strto*() doesn't write to the result unless the function returns
success.
Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Stefan Hajnoczi [Sun, 11 Nov 2012 12:24:43 +0000 (13:24 +0100)]
staging: line6: wrap lines to 80 chars in playback.c
There are a few instances of 80+ character lines in playback.c. Two
instances are just because of a useless comment "this is somewhat
paranoid", so drop the comment. Other instances are straightforward
line wrapping.
Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Stefan Hajnoczi [Sun, 11 Nov 2012 12:24:40 +0000 (13:24 +0100)]
staging: line6: fix quoted string across lines in midibuf.c
Checkpatch warns when quoted strings are split across lines. The
rationale is that quoted strings should be left on a single line so that
grep works. (The 80 character line limit does not apply to quoted
strings.)
Signed-off-by: Stefan Hajnoczi <stefanha@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>