Commit Graph

1355 Commits

Author SHA1 Message Date
Joe Perches
78110bb8dc staging: Remove unnecessary OOM messages
alloc failures already get standardized OOM
messages and a dump_stack.

For the affected mallocs around these OOM messages:

Converted kzallocs with multiplies to kcalloc.
Converted kmallocs with multiplies to kmalloc_array.
Converted a kmalloc/strlen/strncpy to kstrdup.
Moved a spin_lock below a removed OOM message and
removed a now unnecessary spin_unlock.
Neatened alignment and whitespace.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-02-11 10:10:33 -08:00
Lars-Peter Clausen
ad6c46b0c7 staging:iio: Use spi_sync_transfer()
Use the new spi_sync_transfer() helper function instead of open-coding it.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-02-09 11:10:43 +00:00
Fabio Estevam
ad76fda783 iio: mxs-lradc: Fix 'duplicate const' warning
The following warning is generated by sparse:

drivers/staging/iio/adc/mxs-lradc.c:118:47: warning: duplicate const

Remove the duplicate const.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-02-09 10:52:31 +00:00
Guenter Roeck
ca7d98dbd7 iio: Update iio_channel_get_all and iio_channel_get_all_cb API
Pass device pointer instead of device name as parameter to iio_channel_get_all
and iio_channel_get_all_cb. This will enable us to use OF information to
retrieve consumer channel information.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-02-02 11:58:46 +00:00
Guenter Roeck
a11e619b80 staging/iio: (iio_hwmon) Basic devicetree support
Add 'iio-hwmon' OF compatibility table entry to enable OF matches.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-02-02 09:53:15 +00:00
Guenter Roeck
1daed9becd staging/iio: (iio_hwmon) Add support for sysfs name attribute
The 'name' attribute is mandatory for hwmon devices.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-02-02 09:51:56 +00:00
Guenter Roeck
c4ac7b98bd staging/iio: (iio_hwmon) Use devm_kzalloc
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-02-02 09:48:34 +00:00
Lars-Peter Clausen
420b0fcb52 staging:iio: Move adxrs450 driver out of staging
The adxrs450 is in a reasonable shape now. It follows the IIO ABI and non of the
standard code checker tools report any issue, so move it out of staging.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-02-02 09:27:56 +00:00
Lars-Peter Clausen
53ac8500ba staging:iio:adxrs450: Move header file contents to main file
The contents of the adxrs450 header file is not used outside the main drivers
file, so just move the contents from the header file into the drivers main file.
Also rename the adxrs450 driver file from adxrs450_core.c to adxrs450.c.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-02-02 09:24:18 +00:00
Lars-Peter Clausen
d5e69c8350 staging:iio:adxrs450: Fixup kernel doc comments
Fix the name of the iio_device parameter for a few functions and add
documentation for one missing function parameter.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-02-02 09:24:00 +00:00
Lars-Peter Clausen
619036e216 staging:iio:adxrs450: Use usleep_range for the sequential transfer dealy
The adxrs450 requires a delay of at least 0.1 ms between register writes.  Using
msleep() for such small delays is not recommended. So use usleep_range instead.

Fixes the following checkpatch warning:
	WARNING: msleep < 20ms can sleep for up to 20ms; see Documentation/timers/timers-howto.txt
	+	msleep(1);

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-02-02 09:22:48 +00:00
Lars-Peter Clausen
457b71df27 staging:iio:adxrs450: Don't split string across multiple lines
This is one of the exceptions to the 80 chars per line rule since breaking the
string in half it badly affects the grep-ability.

Fixes the following checkpatch warning:
	WARNING: quoted string split across lines
	#203: FILE: staging/iio/gyro/adxrs450_core.c:203:
		+		dev_warn(&st->us->dev, "The initial power on response "
		+			 "is not correct! Restart without reset?\n");

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-02-02 09:22:31 +00:00
Lars-Peter Clausen
1439b6e8d1 staging:iio:adxrs450: Reflow overlong lines
Reflow two lines to meet the 80 characters per line limit.

Fixes the following checkpatch warnings:
	WARNING: line over 80 characters
	#29: FILE: staging/iio/gyro/adxrs450_core.c:29:
	+ * @reg_address: the address of the lower of the two registers,which should be an even address,

	WARNING: line over 80 characters
	#81: FILE: staging/iio/gyro/adxrs450_core.c:81:
	+ * @reg_address: the address of the lower of the two registers,which should be an even address,

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-02-02 09:22:14 +00:00
Lars-Peter Clausen
ceac0cf209 staging:iio:adxrs450: Don't spam the bootlog
Don't spam the bootlog with the devices part id and serial number.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-02-02 09:21:56 +00:00
Lars-Peter Clausen
9a26578c81 staging:iio:adxrs450: Reject out of range calibscale values
Instead of silently discarding the upper bits reject out of range values for the
calibscale property.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-02-02 09:21:36 +00:00
Lars-Peter Clausen
c62b89c713 staging:iio:adxrs450: Perform sign extension for the calibbias register
The calibbias (DNC) register contains a 10-bit twos complement value. Perform a
proper sign extension when reading the register, otherwise negative will
incorrectly be displayed as large positive values.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-02-02 09:20:56 +00:00
Lars-Peter Clausen
1a87e4fba6 staging:iio:adxrs450: Make transfer buffers __be32
Fixes the following sparse warnings:

	drivers/staging/iio/gyro/adxrs450_core.c:46:15: warning: cast to restricted __be32
	drivers/staging/iio/gyro/adxrs450_core.c:62:17: warning: cast to restricted __be32
	drivers/staging/iio/gyro/adxrs450_core.c:89:15: warning: cast to restricted __be32
	drivers/staging/iio/gyro/adxrs450_core.c:129:17: warning: cast to restricted __be32
	drivers/staging/iio/gyro/adxrs450_core.c:168:16: warning: cast to restricted __be32

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-02-02 09:20:07 +00:00
Lars-Peter Clausen
6a6df2d911 Partially revert "staging:iio:gyro:adxrs450 make more use of spi_read and spi_write."
This partially reverts commit cb4496876f. There is
no apparent reason why we should split a transaction which consists out of
multiple transfers into multiple transactions each having one transfer. While
this works it introduces a bunch of unnecessary context switch and additional
setup costs.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-02-02 09:17:26 +00:00
Jonathan Cameron
9c2251dd4b iio:light:tsl2563 move out of staging
This driver is simple, uses the latest interfaces and contains few if
any controversial elements.  All of its interfaces have been in place
for a long time now.  Hence let's move it out of staging.

Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Acked-by: Peter Meerwald <pmeerw@pmeerw.net>
2013-01-27 17:37:24 +00:00
Jonathan Cameron
af0b8ee32c staging:iio:tsl2563 drop pointless forward declaration
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Acked-by: Peter Meerwald <pmeerw@pmeerw.net>
2013-01-26 10:37:02 +00:00
Jonathan Cameron
a722dcca4d staging:iio:tsl2563 Simplify exit path on error in read_interrupt_config.
A rather over complicated exit path given there is only one exit
route and nothing much is done after it.

Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Acked-by: Peter Meerwald <pmeerw@pmeerw.net>
2013-01-26 10:36:51 +00:00
Jonathan Cameron
a9e244f65d staging:iio:light:tsl2563 clean comments up.
Fix formatting of some comments and drop a few generic information
free ones.

Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Acked-by: Peter Meerwald <pmeerw@pmeerw.net>
2013-01-26 10:36:32 +00:00
Jonathan Cameron
5ade7633ac staging:iio:light:tsl2563 drop unnecessary brackets around constants.
Not sure why these were ever there.

Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Acked-by: Peter Meerwald <pmeerw@pmeerw.net>
2013-01-26 10:34:56 +00:00
Lars-Peter Clausen
a9fbbee8a2 staging:iio:adis16080: Move out of staging
The driver is rather simple and in a good shape. It follows the IIO ABI and the
standard codechecker tools do not report any issues, so move it out of staging.

While moving it also remove one outdated 'fixme' comment.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:30:23 +00:00
Lars-Peter Clausen
668cce2496 staging:iio:adis16080: Add scale and offset attributes
Report scale and offset for the velocity, voltage and temperature channels.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:30:05 +00:00
Lars-Peter Clausen
61992d993b staging:iio:adis16080: Remove unnecessary lock
All sections in which the transfer buffer is accessed are already protected by
the IIO device's mlock. So we do not need the extra mutex protecting the buffer.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:29:59 +00:00
Lars-Peter Clausen
3c80372dae staging:iio:adis16080: be16 cleanups
The sample buffer contains big endian 16bit words. So use the be16 datatype for
the buffer and use the proper helper functions for endianness conversion instead
of openconding it.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:28:28 +00:00
Lars-Peter Clausen
9ab82f0711 staging:iio:adis16080: Cleanup SPI transfer
During sampling the driver currently does a spi_read followed by a spi_write.
This is not a problem per se, since CS needs to be deasserted between the two
transfers. So even if another device claims the bus between the two transfers we
should still get a result. But the code is actually spread out over multiple
functions. E.g. the spi_read happens in one function the spi_write in another,
this makes the code harder to follow. This patch re-factors the code to just use
a single spi transaction to do both the read and the write transfer.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:22:04 +00:00
Lars-Peter Clausen
c21ab70051 staging:iio:adis16080: Add device id table entry for the adis16100
The adis16100 is very similar to the adis16080. The driver description already
states that the driver supports the adis16100 as-well. But so far the there is
no device id table for the adis16100 and the drivers does not bind to a device
named adis16100.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:14:07 +00:00
Marek Vasut
5e1f9aca0a iio: mxs: Add MX23 support into the IIO driver
This patch adds support for i.MX23 into the LRADC driver. The LRADC
block on MX23 is not much different from the one on MX28, thus this
is only a few changes fixing the parts that are specific to MX23.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Jonathan Cameron <jic23@kernel.org>
Cc: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:07:53 +00:00
Peter Huewe
232827fb81 staging/iio: Use correct argument for sizeof
found with coccicheck
sizeof when applied to a pointer typed expression gives the size of
the pointer

The semantic patch that makes this output is available
in scripts/coccinelle/misc/noderef.cocci.

More information about semantic patching is available at
http://coccinelle.lip6.fr/

Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:07:53 +00:00
Jonathan Cameron
81ca486fe5 iio:accel:kxsd9 move out of staging
This is a very simple driver giving basic access to this part over an
spi bus.

Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:07:53 +00:00
Jonathan Cameron
d526e513c7 staging:iio:accel:kxsd9
Remove an unneeded initialization and trivial reorder to ensure
the device is ready when the device is registered.

Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:07:53 +00:00
Jonathan Cameron
df2e8f78e7 staging:iio: drop sw_ring buffer implementation.
Whilst this is IIO's oldest buffer implementation it is messy, poorly
implemented and whilst it works, no one is entirely sure it always will.

New IIO drivers have not been using this for some time and now all remaining
old users have been converted to use the kfifo based alternative.

Clearly a fifo isn't the same as a ring buffer but in many use cases it
really doesn't matter.  We also loose the watershed based poll implementation.
However having poll effectively report data only when the buffer was half
full was at best an 'unusual' use of the interface.

At somepoint in the future we may bring watersheds back on a different
buffer implementation, but then we will think a lot more about how to do
the interface first.

Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:07:52 +00:00
Jonathan Cameron
94f3c7cd82 staging:iio:meter:ade7758 switch from sw_ring to kfifo
sw ring is going away so switch over to kfifo based buffer implementation.
The only real change is that poll will return on some data there rather than
buffer 50% full.

Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:07:52 +00:00
Jonathan Cameron
032658a446 staging:iio:impedance-analyzer switch from sw_ring to kfifo.
sw_ring buffer implementation is going away so switch to the
kfifo based alternative.

Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:07:52 +00:00
Jonathan Cameron
a819a0df8a staging:iio:accel:lis3l02dq remove sw_ring support.
The sw_ring buffer is being removed in favour of the kfifo version.
This is one of only a couple of driver still supporting its use.

This driver will hopefully also be removed in favour of supporting the
part in the unified ST accelerometer driver.

Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:07:51 +00:00
Lars-Peter Clausen
d6b09bd85d staging:iio: Move adis16400 out of staging
This adis16400 driver is in pretty good shape now, so move it out of staging.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:07:50 +00:00
Lars-Peter Clausen
f4c6d64bcf staging:iio:adis16400: Code style cleanup
Do a set of minor miscellaneous code style cleanups for the adis16400 before
moving it out of staging. Delete outdated comments, removed excess whitespace,
add missing whitespace, replace u{8,16} with uint{8,16}_t.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:07:49 +00:00
Lars-Peter Clausen
6634ccae6f staging:iio:adis16400: Remove samplerate_available attribute
While the samplerate supported by the devices which are supported by this driver
is not continuous it supports a wide range, much more than currently listed in
the samplerate_available attribute. Also it accepts all values written to the
samplerate attribute and will round-up them to the nearest supported sample
rate. So remove the samplerate_available attribute.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:07:49 +00:00
Lars-Peter Clausen
5eaf4ad9d7 staging:iio:adis16400: Remove unit suffix from samplerate attribute
To be compliant to the IIO specification we should not include the "SPS" suffix
in the "samplerate" attribute contents.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:07:48 +00:00
Lars-Peter Clausen
5eda3550a3 staging:iio:adis16400: Preallocate transfer message
Similar to like we already did for the generic adis library preallocate and
pre-construct the SPI transfer message for the adis16400. For devices which do
not support burst mode sampling does not differ from other adis devices and so
we use the generic functions of the adis library in this case. In burst mode we
can only sample all channels at once, so use the IIO cores demux facility
instead of doing this manually.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:07:48 +00:00
Lars-Peter Clausen
599acfbb97 staging:iio:adis16400: Add helper macros for channel declaration
Most of the channels declared in the adis16400 driver look quite similar. This
patch adds a bunch of helper macros to initialize the channel spec for this
driver. This allows us to drastically reduce the number of lines of code needed
for the channel spec declaration.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:07:48 +00:00
Lars-Peter Clausen
1ffe2e7ac0 staging:iio:adis16400: Use triggered buffer setup helper function
Use the triggered buffer helper functions to setup and tear down the buffer for
the adis16400 instead of doing this manually. This also means that we switch
away from the deprecated sw_ring buffer and use the kfifo buffer now instead.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:07:48 +00:00
Lars-Peter Clausen
cd888a17f9 staging:iio:adis16400: Use adis library
Use the new adis library for the adis16400 driver. This allows us to completely
scrap the adis16400 trigger code and more than half of the core driver code. For
now we can not make use of the generic adis buffer implementation since the
adis16400 driver has special requirements due to its burst mode support. But
we will eventually get to this.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:07:47 +00:00
Lars-Peter Clausen
ca6907df6b staging:iio:adis16400: Remove unused default_scan_mask
The chip_info struct for contains a defaul_scan_mask field. But it is never
actually used in the code, so remove it from the chip_info struct.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:07:47 +00:00
Lars-Peter Clausen
bdb20bdb8c staging:iio:adis16400: Fix and cleanup 3db filter setting
The 3db divisors table is partially wrong and incomplete. Also the code rounds
up to the next higher frequency if the requested frequency would matches one of
the available frequencies. These two issues are fixed by this patch. The patch
also changes the driver to round down the filter frequency if it is larger than
the largest supported frequency instead of rejecting it as an invalid value.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:07:47 +00:00
Lars-Peter Clausen
06220b89f2 staging:iio:adis16400: Don't pass 0 to ilog2
ilog2 is not defined for 0, so we need to handle the case where the requested
frequency is larger than the base sampling rate. In this case we'll round down
and set the sampling rate to the base sampling rate.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:07:46 +00:00
Lars-Peter Clausen
3f6a0bad61 staging:iio:tsl2x7x: Use iio_str_to_fixedpoint instead of open-coding it
The tsl2x7x driver has a copy'n'pasted version of the iio_str_to_fixedpoint()
function from the IIO core. Replace this custom copy and use
iio_str_to_fixedpoint instead.

The patch also introduces a slight functional change in that it makes sure that
in case of a parsing error the error is reported back to userspace instead of
silently ignoring it.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Jon Brenner <jon.brenner@ams.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:07:46 +00:00
Marek Vasut
06ddd353f5 iio: mxs: Implement support for touchscreen
This patch implements support for sampling of a touchscreen into
the MXS LRADC driver. The LRADC block allows configuring some of
it's channels into special mode where they either output the drive
voltage or sample it, allowing it to operate a 4-wire or 5-wire
resistive touchscreen.

In case the touchscreen mode is enabled, the LRADC slot #7 is
reserved for touchscreen only, therefore it is not possible to
sample 8 LRADC channels at time, but only 7 channels.

The touchscreen controller is configured such that the PENDOWN event
disables touchscreen interrupts and triggers execution of worker
thread, which then polls the touchscreen controller for X, Y and
Pressure values. This reduces the overhead of interrupt-driven
operation. Upon the PENUP event, the worker thread re-enables the
PENDOWN detection interrupt and exits.

Signed-off-by: Marek Vasut <marex@denx.de>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2013-01-26 10:07:46 +00:00