Staging fixes for 3.12-rc4
Here are 4 tiny staging and iio driver fixes for 3.12-rc4. Nothing major, just some small fixes for reported issues. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.21 (GNU/Linux) iEYEABECAAYFAlJQTFkACgkQMUfUDdst+ynmmACcDHkGRZ6um7GTusOcDcddk+Mu wJIAoKBkk7gDESTvBPJRXsHl8GjIV+C4 =H+5r -----END PGP SIGNATURE----- Merge tag 'staging-3.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging 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
This commit is contained in:
commit
20fa786763
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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)
|
||||
};
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue
Block a user