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

Commit 20fa7867 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull staging fixes from Greg KH:
 "Here are 4 tiny staging and iio driver fixes for 3.12-rc4.  Nothing
  major, just some small fixes for reported issues"

* tag 'staging-3.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
  staging: comedi: ni_65xx: (bug fix) confine insn_bits to one subdevice
  iio:magnetometer: Bugfix magnetometer default output registers
  iio: Remove debugfs entries in iio_device_unregister()
  iio: amplifiers: ad8366: Remove regulator_put
parents a5c984cc 677a3156
Loading
Loading
Loading
Loading
+1 −3
Original line number Original line Diff line number Diff line
@@ -185,10 +185,8 @@ static int ad8366_remove(struct spi_device *spi)


	iio_device_unregister(indio_dev);
	iio_device_unregister(indio_dev);


	if (!IS_ERR(reg)) {
	if (!IS_ERR(reg))
		regulator_disable(reg);
		regulator_disable(reg);
		regulator_put(reg);
	}


	return 0;
	return 0;
}
}
+1 −1
Original line number Original line Diff line number Diff line
@@ -852,7 +852,6 @@ static void iio_dev_release(struct device *device)
		iio_device_unregister_trigger_consumer(indio_dev);
		iio_device_unregister_trigger_consumer(indio_dev);
	iio_device_unregister_eventset(indio_dev);
	iio_device_unregister_eventset(indio_dev);
	iio_device_unregister_sysfs(indio_dev);
	iio_device_unregister_sysfs(indio_dev);
	iio_device_unregister_debugfs(indio_dev);


	ida_simple_remove(&iio_ida, indio_dev->id);
	ida_simple_remove(&iio_ida, indio_dev->id);
	kfree(indio_dev);
	kfree(indio_dev);
@@ -1087,6 +1086,7 @@ void iio_device_unregister(struct iio_dev *indio_dev)


	if (indio_dev->chrdev.dev)
	if (indio_dev->chrdev.dev)
		cdev_del(&indio_dev->chrdev);
		cdev_del(&indio_dev->chrdev);
	iio_device_unregister_debugfs(indio_dev);


	iio_disable_all_buffers(indio_dev);
	iio_disable_all_buffers(indio_dev);


+9 −9
Original line number Original line Diff line number Diff line
@@ -29,9 +29,9 @@
#define ST_MAGN_NUMBER_DATA_CHANNELS		3
#define ST_MAGN_NUMBER_DATA_CHANNELS		3


/* DEFAULT VALUE FOR SENSORS */
/* DEFAULT VALUE FOR SENSORS */
#define ST_MAGN_DEFAULT_OUT_X_L_ADDR		0X04
#define ST_MAGN_DEFAULT_OUT_X_H_ADDR		0X03
#define ST_MAGN_DEFAULT_OUT_Y_L_ADDR		0X08
#define ST_MAGN_DEFAULT_OUT_Y_H_ADDR		0X07
#define ST_MAGN_DEFAULT_OUT_Z_L_ADDR		0X06
#define ST_MAGN_DEFAULT_OUT_Z_H_ADDR		0X05


/* FULLSCALE */
/* FULLSCALE */
#define ST_MAGN_FS_AVL_1300MG			1300
#define ST_MAGN_FS_AVL_1300MG			1300
@@ -117,16 +117,16 @@
static const struct iio_chan_spec st_magn_16bit_channels[] = {
static const struct iio_chan_spec st_magn_16bit_channels[] = {
	ST_SENSORS_LSM_CHANNELS(IIO_MAGN,
	ST_SENSORS_LSM_CHANNELS(IIO_MAGN,
			BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
			BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
			ST_SENSORS_SCAN_X, 1, IIO_MOD_X, 's', IIO_LE, 16, 16,
			ST_SENSORS_SCAN_X, 1, IIO_MOD_X, 's', IIO_BE, 16, 16,
			ST_MAGN_DEFAULT_OUT_X_L_ADDR),
			ST_MAGN_DEFAULT_OUT_X_H_ADDR),
	ST_SENSORS_LSM_CHANNELS(IIO_MAGN,
	ST_SENSORS_LSM_CHANNELS(IIO_MAGN,
			BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
			BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
			ST_SENSORS_SCAN_Y, 1, IIO_MOD_Y, 's', IIO_LE, 16, 16,
			ST_SENSORS_SCAN_Y, 1, IIO_MOD_Y, 's', IIO_BE, 16, 16,
			ST_MAGN_DEFAULT_OUT_Y_L_ADDR),
			ST_MAGN_DEFAULT_OUT_Y_H_ADDR),
	ST_SENSORS_LSM_CHANNELS(IIO_MAGN,
	ST_SENSORS_LSM_CHANNELS(IIO_MAGN,
			BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
			BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE),
			ST_SENSORS_SCAN_Z, 1, IIO_MOD_Z, 's', IIO_LE, 16, 16,
			ST_SENSORS_SCAN_Z, 1, IIO_MOD_Z, 's', IIO_BE, 16, 16,
			ST_MAGN_DEFAULT_OUT_Z_L_ADDR),
			ST_MAGN_DEFAULT_OUT_Z_H_ADDR),
	IIO_CHAN_SOFT_TIMESTAMP(3)
	IIO_CHAN_SOFT_TIMESTAMP(3)
};
};


+10 −15
Original line number Original line Diff line number Diff line
@@ -369,28 +369,23 @@ static int ni_65xx_dio_insn_bits(struct comedi_device *dev,
{
{
	const struct ni_65xx_board *board = comedi_board(dev);
	const struct ni_65xx_board *board = comedi_board(dev);
	struct ni_65xx_private *devpriv = dev->private;
	struct ni_65xx_private *devpriv = dev->private;
	unsigned base_bitfield_channel;
	int base_bitfield_channel;
	const unsigned max_ports_per_bitfield = 5;
	unsigned read_bits = 0;
	unsigned read_bits = 0;
	unsigned j;
	int last_port_offset = ni_65xx_port_by_channel(s->n_chan - 1);
	int port_offset;


	base_bitfield_channel = CR_CHAN(insn->chanspec);
	base_bitfield_channel = CR_CHAN(insn->chanspec);
	for (j = 0; j < max_ports_per_bitfield; ++j) {
	for (port_offset = ni_65xx_port_by_channel(base_bitfield_channel);
		const unsigned port_offset =
	     port_offset <= last_port_offset; port_offset++) {
			ni_65xx_port_by_channel(base_bitfield_channel) + j;
		unsigned port = sprivate(s)->base_port + port_offset;
		const unsigned port =
		int base_port_channel = port_offset * ni_65xx_channels_per_port;
			sprivate(s)->base_port + port_offset;
		unsigned base_port_channel;
		unsigned port_mask, port_data, port_read_bits;
		unsigned port_mask, port_data, port_read_bits;
		int bitshift;
		int bitshift = base_port_channel - base_bitfield_channel;
		if (port >= ni_65xx_total_num_ports(board))

		if (bitshift >= 32)
			break;
			break;
		base_port_channel = port_offset * ni_65xx_channels_per_port;
		port_mask = data[0];
		port_mask = data[0];
		port_data = data[1];
		port_data = data[1];
		bitshift = base_port_channel - base_bitfield_channel;
		if (bitshift >= 32 || bitshift <= -32)
			break;
		if (bitshift > 0) {
		if (bitshift > 0) {
			port_mask >>= bitshift;
			port_mask >>= bitshift;
			port_data >>= bitshift;
			port_data >>= bitshift;