Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 78077256 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Merge tag 'iio-fixes-for-3.11a' of...

Merge tag 'iio-fixes-for-3.11a' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-linus

Jonathan writes:

The first round of IIO fixes for the 3.11 cycle.

This set is larger than I would like, partly due to my lack of review
time in the weeks before the merge window and partly because a
couple of large drivers and the subsystem as a whole seem to be
getting a lot more exposure and testing recently.

1) A long term bug in trigger handling gave a double free of the device.

2) Wrong return value handling means offsets are ignored in
   iio_convert_raw_to_processed_unlocked.

3) The iio_channel_has_info utility function was incorrectly updated
   during the recent info_mask split, this is now fixed.

4) mxs-lradc has a couple of little fixes.

5) A couple of missing .driver_module entries meant that drivers
   could be removed from underneath their users.

6) Error path fixes for ad7303 and lis3l02dq.

7) The scale value for presure in the lps331ap driver was out by
   a factor of 100.
parents ade7615d 67dbf54a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -183,6 +183,7 @@ static int tiadc_read_raw(struct iio_dev *indio_dev,

static const struct iio_info tiadc_info = {
	.read_raw = &tiadc_read_raw,
	.driver_module = THIS_MODULE,
};

static int tiadc_probe(struct platform_device *pdev)
+3 −1
Original line number Diff line number Diff line
@@ -235,8 +235,10 @@ static int ad7303_probe(struct spi_device *spi)

	if (ext_ref) {
		st->vref_reg = regulator_get(&spi->dev, "REF");
		if (IS_ERR(st->vref_reg))
		if (IS_ERR(st->vref_reg)) {
			ret = PTR_ERR(st->vref_reg);
			goto err_disable_vdd_reg;
		}

		ret = regulator_enable(st->vref_reg);
		if (ret)
+1 −1
Original line number Diff line number Diff line
@@ -104,7 +104,7 @@ void iio_trigger_unregister(struct iio_trigger *trig_info)

	ida_simple_remove(&iio_trigger_ida, trig_info->id);
	/* Possible issue in here */
	device_unregister(&trig_info->dev);
	device_del(&trig_info->dev);
}
EXPORT_SYMBOL(iio_trigger_unregister);

+1 −1
Original line number Diff line number Diff line
@@ -451,7 +451,7 @@ static int iio_convert_raw_to_processed_unlocked(struct iio_channel *chan,
	int ret;

	ret = iio_channel_read(chan, &offset, NULL, IIO_CHAN_INFO_OFFSET);
	if (ret == 0)
	if (ret >= 0)
		raw64 += offset;

	scale_type = iio_channel_read(chan, &scale_val, &scale_val2,
+4 −2
Original line number Diff line number Diff line
@@ -28,7 +28,9 @@
#include <linux/iio/common/st_sensors.h>
#include "st_pressure.h"

#define ST_PRESS_MBAR_TO_KPASCAL(x)		(x * 10)
#define ST_PRESS_LSB_PER_MBAR			4096UL
#define ST_PRESS_KPASCAL_NANO_SCALE		(100000000UL / \
						 ST_PRESS_LSB_PER_MBAR)
#define ST_PRESS_NUMBER_DATA_CHANNELS		1

/* DEFAULT VALUE FOR SENSORS */
@@ -51,8 +53,8 @@
#define ST_PRESS_1_FS_ADDR			0x23
#define ST_PRESS_1_FS_MASK			0x30
#define ST_PRESS_1_FS_AVL_1260_VAL		0x00
#define ST_PRESS_1_FS_AVL_1260_GAIN		ST_PRESS_MBAR_TO_KPASCAL(244141)
#define ST_PRESS_1_FS_AVL_TEMP_GAIN		2083000
#define ST_PRESS_1_FS_AVL_1260_GAIN		ST_PRESS_KPASCAL_NANO_SCALE
#define ST_PRESS_1_BDU_ADDR			0x20
#define ST_PRESS_1_BDU_MASK			0x04
#define ST_PRESS_1_DRDY_IRQ_ADDR		0x22
Loading