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

Commit 86a7a167 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull staging driver fixes from Greg KH:
 "Here are some staging/iio fixes for 3.18-rc4.

  Nothing major, just a few bugfixes of things that have been reported"

* tag 'staging-3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
  staging:iio:ade7758: Remove "raw" from channel name
  staging:iio:ade7758: Fix check if channels are enabled in prenable
  staging:iio:ade7758: Fix NULL pointer deref when enabling buffer
  iio: as3935: allocate correct iio_device size
  io: accel: kxcjk-1013: Fix iio_event_spec direction
  iio: tsl4531: Fix compiler error when CONFIG_PM_OPS is not defined
  iio: adc: mxs-lradc: Disable the clock on probe failure
  iio: st_sensors: Fix buffer copy
  staging:iio:ad5933: Drop "raw" from channel names
  staging:iio:ad5933: Fix NULL pointer deref when enabling buffer
parents 45a4c079 bce20b23
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -894,7 +894,7 @@ static const struct attribute_group kxcjk1013_attrs_group = {

static const struct iio_event_spec kxcjk1013_event = {
		.type = IIO_EV_TYPE_THRESH,
		.dir = IIO_EV_DIR_RISING | IIO_EV_DIR_FALLING,
		.dir = IIO_EV_DIR_EITHER,
		.mask_separate = BIT(IIO_EV_INFO_VALUE) |
				 BIT(IIO_EV_INFO_ENABLE) |
				 BIT(IIO_EV_INFO_PERIOD)
+5 −2
Original line number Diff line number Diff line
@@ -230,9 +230,12 @@ static int tsl4531_resume(struct device *dev)
	return i2c_smbus_write_byte_data(to_i2c_client(dev), TSL4531_CONTROL,
		TSL4531_MODE_NORMAL);
}
#endif

static SIMPLE_DEV_PM_OPS(tsl4531_pm_ops, tsl4531_suspend, tsl4531_resume);
#define TSL4531_PM_OPS (&tsl4531_pm_ops)
#else
#define TSL4531_PM_OPS NULL
#endif

static const struct i2c_device_id tsl4531_id[] = {
	{ "tsl4531", 0 },
@@ -243,7 +246,7 @@ MODULE_DEVICE_TABLE(i2c, tsl4531_id);
static struct i2c_driver tsl4531_driver = {
	.driver = {
		.name   = TSL4531_DRV_NAME,
		.pm	= &tsl4531_pm_ops,
		.pm	= TSL4531_PM_OPS,
		.owner  = THIS_MODULE,
	},
	.probe  = tsl4531_probe,
+1 −1
Original line number Diff line number Diff line
@@ -330,7 +330,7 @@ static int as3935_probe(struct spi_device *spi)
		return -EINVAL;
	}

	indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(st));
	indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st));
	if (!indio_dev)
		return -ENOMEM;

+0 −1
Original line number Diff line number Diff line
@@ -119,7 +119,6 @@ struct ade7758_state {
	u8			*tx;
	u8			*rx;
	struct mutex		buf_lock;
	const struct iio_chan_spec *ade7758_ring_channels;
	struct spi_transfer	ring_xfer[4];
	struct spi_message	ring_msg;
	/*
+11 −46
Original line number Diff line number Diff line
@@ -634,9 +634,6 @@ static const struct iio_chan_spec ade7758_channels[] = {
		.type = IIO_VOLTAGE,
		.indexed = 1,
		.channel = 0,
		.extend_name = "raw",
		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
		.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE),
		.address = AD7758_WT(AD7758_PHASE_A, AD7758_VOLTAGE),
		.scan_index = 0,
		.scan_type = {
@@ -648,9 +645,6 @@ static const struct iio_chan_spec ade7758_channels[] = {
		.type = IIO_CURRENT,
		.indexed = 1,
		.channel = 0,
		.extend_name = "raw",
		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
		.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE),
		.address = AD7758_WT(AD7758_PHASE_A, AD7758_CURRENT),
		.scan_index = 1,
		.scan_type = {
@@ -662,9 +656,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
		.type = IIO_POWER,
		.indexed = 1,
		.channel = 0,
		.extend_name = "apparent_raw",
		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
		.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE),
		.extend_name = "apparent",
		.address = AD7758_WT(AD7758_PHASE_A, AD7758_APP_PWR),
		.scan_index = 2,
		.scan_type = {
@@ -676,9 +668,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
		.type = IIO_POWER,
		.indexed = 1,
		.channel = 0,
		.extend_name = "active_raw",
		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
		.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE),
		.extend_name = "active",
		.address = AD7758_WT(AD7758_PHASE_A, AD7758_ACT_PWR),
		.scan_index = 3,
		.scan_type = {
@@ -690,9 +680,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
		.type = IIO_POWER,
		.indexed = 1,
		.channel = 0,
		.extend_name = "reactive_raw",
		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
		.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE),
		.extend_name = "reactive",
		.address = AD7758_WT(AD7758_PHASE_A, AD7758_REACT_PWR),
		.scan_index = 4,
		.scan_type = {
@@ -704,9 +692,6 @@ static const struct iio_chan_spec ade7758_channels[] = {
		.type = IIO_VOLTAGE,
		.indexed = 1,
		.channel = 1,
		.extend_name = "raw",
		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
		.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE),
		.address = AD7758_WT(AD7758_PHASE_B, AD7758_VOLTAGE),
		.scan_index = 5,
		.scan_type = {
@@ -718,9 +703,6 @@ static const struct iio_chan_spec ade7758_channels[] = {
		.type = IIO_CURRENT,
		.indexed = 1,
		.channel = 1,
		.extend_name = "raw",
		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
		.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE),
		.address = AD7758_WT(AD7758_PHASE_B, AD7758_CURRENT),
		.scan_index = 6,
		.scan_type = {
@@ -732,9 +714,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
		.type = IIO_POWER,
		.indexed = 1,
		.channel = 1,
		.extend_name = "apparent_raw",
		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
		.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE),
		.extend_name = "apparent",
		.address = AD7758_WT(AD7758_PHASE_B, AD7758_APP_PWR),
		.scan_index = 7,
		.scan_type = {
@@ -746,9 +726,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
		.type = IIO_POWER,
		.indexed = 1,
		.channel = 1,
		.extend_name = "active_raw",
		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
		.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE),
		.extend_name = "active",
		.address = AD7758_WT(AD7758_PHASE_B, AD7758_ACT_PWR),
		.scan_index = 8,
		.scan_type = {
@@ -760,9 +738,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
		.type = IIO_POWER,
		.indexed = 1,
		.channel = 1,
		.extend_name = "reactive_raw",
		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
		.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE),
		.extend_name = "reactive",
		.address = AD7758_WT(AD7758_PHASE_B, AD7758_REACT_PWR),
		.scan_index = 9,
		.scan_type = {
@@ -774,9 +750,6 @@ static const struct iio_chan_spec ade7758_channels[] = {
		.type = IIO_VOLTAGE,
		.indexed = 1,
		.channel = 2,
		.extend_name = "raw",
		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
		.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE),
		.address = AD7758_WT(AD7758_PHASE_C, AD7758_VOLTAGE),
		.scan_index = 10,
		.scan_type = {
@@ -788,9 +761,6 @@ static const struct iio_chan_spec ade7758_channels[] = {
		.type = IIO_CURRENT,
		.indexed = 1,
		.channel = 2,
		.extend_name = "raw",
		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
		.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE),
		.address = AD7758_WT(AD7758_PHASE_C, AD7758_CURRENT),
		.scan_index = 11,
		.scan_type = {
@@ -802,9 +772,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
		.type = IIO_POWER,
		.indexed = 1,
		.channel = 2,
		.extend_name = "apparent_raw",
		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
		.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE),
		.extend_name = "apparent",
		.address = AD7758_WT(AD7758_PHASE_C, AD7758_APP_PWR),
		.scan_index = 12,
		.scan_type = {
@@ -816,9 +784,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
		.type = IIO_POWER,
		.indexed = 1,
		.channel = 2,
		.extend_name = "active_raw",
		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
		.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE),
		.extend_name = "active",
		.address = AD7758_WT(AD7758_PHASE_C, AD7758_ACT_PWR),
		.scan_index = 13,
		.scan_type = {
@@ -830,9 +796,7 @@ static const struct iio_chan_spec ade7758_channels[] = {
		.type = IIO_POWER,
		.indexed = 1,
		.channel = 2,
		.extend_name = "reactive_raw",
		.info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
		.info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE),
		.extend_name = "reactive",
		.address = AD7758_WT(AD7758_PHASE_C, AD7758_REACT_PWR),
		.scan_index = 14,
		.scan_type = {
@@ -873,13 +837,14 @@ static int ade7758_probe(struct spi_device *spi)
		goto error_free_rx;
	}
	st->us = spi;
	st->ade7758_ring_channels = &ade7758_channels[0];
	mutex_init(&st->buf_lock);

	indio_dev->name = spi->dev.driver->name;
	indio_dev->dev.parent = &spi->dev;
	indio_dev->info = &ade7758_info;
	indio_dev->modes = INDIO_DIRECT_MODE;
	indio_dev->channels = ade7758_channels;
	indio_dev->num_channels = ARRAY_SIZE(ade7758_channels);

	ret = ade7758_configure_ring(indio_dev);
	if (ret)
Loading