diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/iio/amplifiers/ad8366.c | 4 | ||||
| -rw-r--r-- | drivers/iio/industrialio-core.c | 2 | ||||
| -rw-r--r-- | drivers/iio/magnetometer/st_magn_core.c | 18 | ||||
| -rw-r--r-- | drivers/staging/comedi/drivers/ni_65xx.c | 25 | 
4 files changed, 21 insertions, 28 deletions
| diff --git a/drivers/iio/amplifiers/ad8366.c b/drivers/iio/amplifiers/ad8366.c index d0a79a4bce1c..ba6f6a91dfff 100644 --- a/drivers/iio/amplifiers/ad8366.c +++ b/drivers/iio/amplifiers/ad8366.c @@ -185,10 +185,8 @@ static int ad8366_remove(struct spi_device *spi)  	iio_device_unregister(indio_dev); -	if (!IS_ERR(reg)) { +	if (!IS_ERR(reg))  		regulator_disable(reg); -		regulator_put(reg); -	}  	return 0;  } diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c index 8e84cd522e49..f95c6979efd8 100644 --- a/drivers/iio/industrialio-core.c +++ b/drivers/iio/industrialio-core.c @@ -852,7 +852,6 @@ static void iio_dev_release(struct device *device)  		iio_device_unregister_trigger_consumer(indio_dev);  	iio_device_unregister_eventset(indio_dev);  	iio_device_unregister_sysfs(indio_dev); -	iio_device_unregister_debugfs(indio_dev);  	ida_simple_remove(&iio_ida, indio_dev->id);  	kfree(indio_dev); @@ -1087,6 +1086,7 @@ void iio_device_unregister(struct iio_dev *indio_dev)  	if (indio_dev->chrdev.dev)  		cdev_del(&indio_dev->chrdev); +	iio_device_unregister_debugfs(indio_dev);  	iio_disable_all_buffers(indio_dev); diff --git a/drivers/iio/magnetometer/st_magn_core.c b/drivers/iio/magnetometer/st_magn_core.c index e8d2849cc81d..cab3bc7494a2 100644 --- a/drivers/iio/magnetometer/st_magn_core.c +++ b/drivers/iio/magnetometer/st_magn_core.c @@ -29,9 +29,9 @@  #define ST_MAGN_NUMBER_DATA_CHANNELS		3  /* DEFAULT VALUE FOR SENSORS */ -#define ST_MAGN_DEFAULT_OUT_X_L_ADDR		0X04 -#define ST_MAGN_DEFAULT_OUT_Y_L_ADDR		0X08 -#define ST_MAGN_DEFAULT_OUT_Z_L_ADDR		0X06 +#define ST_MAGN_DEFAULT_OUT_X_H_ADDR		0X03 +#define ST_MAGN_DEFAULT_OUT_Y_H_ADDR		0X07 +#define ST_MAGN_DEFAULT_OUT_Z_H_ADDR		0X05  /* FULLSCALE */  #define ST_MAGN_FS_AVL_1300MG			1300 @@ -117,16 +117,16 @@  static const struct iio_chan_spec st_magn_16bit_channels[] = {  	ST_SENSORS_LSM_CHANNELS(IIO_MAGN,  			BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE), -			ST_SENSORS_SCAN_X, 1, IIO_MOD_X, 's', IIO_LE, 16, 16, -			ST_MAGN_DEFAULT_OUT_X_L_ADDR), +			ST_SENSORS_SCAN_X, 1, IIO_MOD_X, 's', IIO_BE, 16, 16, +			ST_MAGN_DEFAULT_OUT_X_H_ADDR),  	ST_SENSORS_LSM_CHANNELS(IIO_MAGN,  			BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE), -			ST_SENSORS_SCAN_Y, 1, IIO_MOD_Y, 's', IIO_LE, 16, 16, -			ST_MAGN_DEFAULT_OUT_Y_L_ADDR), +			ST_SENSORS_SCAN_Y, 1, IIO_MOD_Y, 's', IIO_BE, 16, 16, +			ST_MAGN_DEFAULT_OUT_Y_H_ADDR),  	ST_SENSORS_LSM_CHANNELS(IIO_MAGN,  			BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_SCALE), -			ST_SENSORS_SCAN_Z, 1, IIO_MOD_Z, 's', IIO_LE, 16, 16, -			ST_MAGN_DEFAULT_OUT_Z_L_ADDR), +			ST_SENSORS_SCAN_Z, 1, IIO_MOD_Z, 's', IIO_BE, 16, 16, +			ST_MAGN_DEFAULT_OUT_Z_H_ADDR),  	IIO_CHAN_SOFT_TIMESTAMP(3)  }; diff --git a/drivers/staging/comedi/drivers/ni_65xx.c b/drivers/staging/comedi/drivers/ni_65xx.c index 3ba4c5712dff..853f62b2b1a9 100644 --- a/drivers/staging/comedi/drivers/ni_65xx.c +++ b/drivers/staging/comedi/drivers/ni_65xx.c @@ -369,28 +369,23 @@ static int ni_65xx_dio_insn_bits(struct comedi_device *dev,  {  	const struct ni_65xx_board *board = comedi_board(dev);  	struct ni_65xx_private *devpriv = dev->private; -	unsigned base_bitfield_channel; -	const unsigned max_ports_per_bitfield = 5; +	int base_bitfield_channel;  	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); -	for (j = 0; j < max_ports_per_bitfield; ++j) { -		const unsigned port_offset = -			ni_65xx_port_by_channel(base_bitfield_channel) + j; -		const unsigned port = -			sprivate(s)->base_port + port_offset; -		unsigned base_port_channel; +	for (port_offset = ni_65xx_port_by_channel(base_bitfield_channel); +	     port_offset <= last_port_offset; port_offset++) { +		unsigned port = sprivate(s)->base_port + port_offset; +		int base_port_channel = port_offset * ni_65xx_channels_per_port;  		unsigned port_mask, port_data, port_read_bits; -		int bitshift; -		if (port >= ni_65xx_total_num_ports(board)) +		int bitshift = base_port_channel - base_bitfield_channel; + +		if (bitshift >= 32)  			break; -		base_port_channel = port_offset * ni_65xx_channels_per_port;  		port_mask = data[0];  		port_data = data[1]; -		bitshift = base_port_channel - base_bitfield_channel; -		if (bitshift >= 32 || bitshift <= -32) -			break;  		if (bitshift > 0) {  			port_mask >>= bitshift;  			port_data >>= bitshift; | 
