diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-04 15:22:31 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-04 15:22:31 -0400 |
| commit | 8eb6dcf9d2b15bb1ac066d378e503f79efcbe65c (patch) | |
| tree | f3da1aeb272f2f1038c08bc9cc8f39d0cd4d4af1 | |
| parent | eca8258be3e60c88383aa439751d3e2069b56241 (diff) | |
| parent | dce5bdfe8fc1e3b49fa6fcf21e07bb12360e1b98 (diff) | |
Merge tag 'staging-4.0-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging
Pull staging driver fixes from Greg KH:
"Here are some staging driver fixes, well, really all just IIO driver
fixes, for 4.0-rc6. They fix issues that have been reported with
these drivers.
All of these patches have been in linux-next for a while"
* tag 'staging-4.0-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
iio: imu: Use iio_trigger_get for indio_dev->trig assignment
iio: adc: vf610: use ADC clock within specification
iio/adc/cc10001_adc.c: Fix !HAS_IOMEM build
iio: core: Fix double free.
iio:inv-mpu6050: Fix inconsistency for the scale channel
staging: iio: dummy: Fix undefined symbol build error
iio: inv_mpu6050: Clear timestamps fifo while resetting hardware fifo
staging: iio: hmc5843: Set iio name property in sysfs
iio: bmc150: change sampling frequency
iio: fix drivers that check buffer->scan_mask
| -rw-r--r-- | drivers/iio/accel/bma180.c | 2 | ||||
| -rw-r--r-- | drivers/iio/accel/bmc150-accel.c | 20 | ||||
| -rw-r--r-- | drivers/iio/accel/kxcjk-1013.c | 2 | ||||
| -rw-r--r-- | drivers/iio/adc/Kconfig | 3 | ||||
| -rw-r--r-- | drivers/iio/adc/at91_adc.c | 5 | ||||
| -rw-r--r-- | drivers/iio/adc/ti_am335x_adc.c | 3 | ||||
| -rw-r--r-- | drivers/iio/adc/vf610_adc.c | 91 | ||||
| -rw-r--r-- | drivers/iio/gyro/bmg160.c | 2 | ||||
| -rw-r--r-- | drivers/iio/imu/adis_trigger.c | 2 | ||||
| -rw-r--r-- | drivers/iio/imu/inv_mpu6050/inv_mpu_core.c | 56 | ||||
| -rw-r--r-- | drivers/iio/imu/inv_mpu6050/inv_mpu_ring.c | 25 | ||||
| -rw-r--r-- | drivers/iio/imu/kmx61.c | 2 | ||||
| -rw-r--r-- | drivers/iio/industrialio-core.c | 5 | ||||
| -rw-r--r-- | drivers/iio/industrialio-event.c | 1 | ||||
| -rw-r--r-- | drivers/iio/proximity/sx9500.c | 2 | ||||
| -rw-r--r-- | drivers/staging/iio/Kconfig | 1 | ||||
| -rw-r--r-- | drivers/staging/iio/magnetometer/hmc5843_core.c | 1 |
17 files changed, 132 insertions, 91 deletions
diff --git a/drivers/iio/accel/bma180.c b/drivers/iio/accel/bma180.c index 1096da327130..75c6d2103e07 100644 --- a/drivers/iio/accel/bma180.c +++ b/drivers/iio/accel/bma180.c | |||
| @@ -659,7 +659,7 @@ static irqreturn_t bma180_trigger_handler(int irq, void *p) | |||
| 659 | 659 | ||
| 660 | mutex_lock(&data->mutex); | 660 | mutex_lock(&data->mutex); |
| 661 | 661 | ||
| 662 | for_each_set_bit(bit, indio_dev->buffer->scan_mask, | 662 | for_each_set_bit(bit, indio_dev->active_scan_mask, |
| 663 | indio_dev->masklength) { | 663 | indio_dev->masklength) { |
| 664 | ret = bma180_get_data_reg(data, bit); | 664 | ret = bma180_get_data_reg(data, bit); |
| 665 | if (ret < 0) { | 665 | if (ret < 0) { |
diff --git a/drivers/iio/accel/bmc150-accel.c b/drivers/iio/accel/bmc150-accel.c index 066d0c04072c..75567fd457dc 100644 --- a/drivers/iio/accel/bmc150-accel.c +++ b/drivers/iio/accel/bmc150-accel.c | |||
| @@ -168,14 +168,14 @@ static const struct { | |||
| 168 | int val; | 168 | int val; |
| 169 | int val2; | 169 | int val2; |
| 170 | u8 bw_bits; | 170 | u8 bw_bits; |
| 171 | } bmc150_accel_samp_freq_table[] = { {7, 810000, 0x08}, | 171 | } bmc150_accel_samp_freq_table[] = { {15, 620000, 0x08}, |
| 172 | {15, 630000, 0x09}, | 172 | {31, 260000, 0x09}, |
| 173 | {31, 250000, 0x0A}, | 173 | {62, 500000, 0x0A}, |
| 174 | {62, 500000, 0x0B}, | 174 | {125, 0, 0x0B}, |
| 175 | {125, 0, 0x0C}, | 175 | {250, 0, 0x0C}, |
| 176 | {250, 0, 0x0D}, | 176 | {500, 0, 0x0D}, |
| 177 | {500, 0, 0x0E}, | 177 | {1000, 0, 0x0E}, |
| 178 | {1000, 0, 0x0F} }; | 178 | {2000, 0, 0x0F} }; |
| 179 | 179 | ||
| 180 | static const struct { | 180 | static const struct { |
| 181 | int bw_bits; | 181 | int bw_bits; |
| @@ -840,7 +840,7 @@ static int bmc150_accel_validate_trigger(struct iio_dev *indio_dev, | |||
| 840 | } | 840 | } |
| 841 | 841 | ||
| 842 | static IIO_CONST_ATTR_SAMP_FREQ_AVAIL( | 842 | static IIO_CONST_ATTR_SAMP_FREQ_AVAIL( |
| 843 | "7.810000 15.630000 31.250000 62.500000 125 250 500 1000"); | 843 | "15.620000 31.260000 62.50000 125 250 500 1000 2000"); |
| 844 | 844 | ||
| 845 | static struct attribute *bmc150_accel_attributes[] = { | 845 | static struct attribute *bmc150_accel_attributes[] = { |
| 846 | &iio_const_attr_sampling_frequency_available.dev_attr.attr, | 846 | &iio_const_attr_sampling_frequency_available.dev_attr.attr, |
| @@ -986,7 +986,7 @@ static irqreturn_t bmc150_accel_trigger_handler(int irq, void *p) | |||
| 986 | int bit, ret, i = 0; | 986 | int bit, ret, i = 0; |
| 987 | 987 | ||
| 988 | mutex_lock(&data->mutex); | 988 | mutex_lock(&data->mutex); |
| 989 | for_each_set_bit(bit, indio_dev->buffer->scan_mask, | 989 | for_each_set_bit(bit, indio_dev->active_scan_mask, |
| 990 | indio_dev->masklength) { | 990 | indio_dev->masklength) { |
| 991 | ret = i2c_smbus_read_word_data(data->client, | 991 | ret = i2c_smbus_read_word_data(data->client, |
| 992 | BMC150_ACCEL_AXIS_TO_REG(bit)); | 992 | BMC150_ACCEL_AXIS_TO_REG(bit)); |
diff --git a/drivers/iio/accel/kxcjk-1013.c b/drivers/iio/accel/kxcjk-1013.c index 567de269cc00..1a6379525fa4 100644 --- a/drivers/iio/accel/kxcjk-1013.c +++ b/drivers/iio/accel/kxcjk-1013.c | |||
| @@ -956,7 +956,7 @@ static irqreturn_t kxcjk1013_trigger_handler(int irq, void *p) | |||
| 956 | 956 | ||
| 957 | mutex_lock(&data->mutex); | 957 | mutex_lock(&data->mutex); |
| 958 | 958 | ||
| 959 | for_each_set_bit(bit, indio_dev->buffer->scan_mask, | 959 | for_each_set_bit(bit, indio_dev->active_scan_mask, |
| 960 | indio_dev->masklength) { | 960 | indio_dev->masklength) { |
| 961 | ret = kxcjk1013_get_acc_reg(data, bit); | 961 | ret = kxcjk1013_get_acc_reg(data, bit); |
| 962 | if (ret < 0) { | 962 | if (ret < 0) { |
diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig index 202daf889be2..46379b1fb25b 100644 --- a/drivers/iio/adc/Kconfig +++ b/drivers/iio/adc/Kconfig | |||
| @@ -137,7 +137,8 @@ config AXP288_ADC | |||
| 137 | 137 | ||
| 138 | config CC10001_ADC | 138 | config CC10001_ADC |
| 139 | tristate "Cosmic Circuits 10001 ADC driver" | 139 | tristate "Cosmic Circuits 10001 ADC driver" |
| 140 | depends on HAS_IOMEM || HAVE_CLK || REGULATOR | 140 | depends on HAVE_CLK || REGULATOR |
| 141 | depends on HAS_IOMEM | ||
| 141 | select IIO_BUFFER | 142 | select IIO_BUFFER |
| 142 | select IIO_TRIGGERED_BUFFER | 143 | select IIO_TRIGGERED_BUFFER |
| 143 | help | 144 | help |
diff --git a/drivers/iio/adc/at91_adc.c b/drivers/iio/adc/at91_adc.c index ff61ae55dd3f..8a0eb4a04fb5 100644 --- a/drivers/iio/adc/at91_adc.c +++ b/drivers/iio/adc/at91_adc.c | |||
| @@ -544,7 +544,6 @@ static int at91_adc_configure_trigger(struct iio_trigger *trig, bool state) | |||
| 544 | { | 544 | { |
| 545 | struct iio_dev *idev = iio_trigger_get_drvdata(trig); | 545 | struct iio_dev *idev = iio_trigger_get_drvdata(trig); |
| 546 | struct at91_adc_state *st = iio_priv(idev); | 546 | struct at91_adc_state *st = iio_priv(idev); |
| 547 | struct iio_buffer *buffer = idev->buffer; | ||
| 548 | struct at91_adc_reg_desc *reg = st->registers; | 547 | struct at91_adc_reg_desc *reg = st->registers; |
| 549 | u32 status = at91_adc_readl(st, reg->trigger_register); | 548 | u32 status = at91_adc_readl(st, reg->trigger_register); |
| 550 | int value; | 549 | int value; |
| @@ -564,7 +563,7 @@ static int at91_adc_configure_trigger(struct iio_trigger *trig, bool state) | |||
| 564 | at91_adc_writel(st, reg->trigger_register, | 563 | at91_adc_writel(st, reg->trigger_register, |
| 565 | status | value); | 564 | status | value); |
| 566 | 565 | ||
| 567 | for_each_set_bit(bit, buffer->scan_mask, | 566 | for_each_set_bit(bit, idev->active_scan_mask, |
| 568 | st->num_channels) { | 567 | st->num_channels) { |
| 569 | struct iio_chan_spec const *chan = idev->channels + bit; | 568 | struct iio_chan_spec const *chan = idev->channels + bit; |
| 570 | at91_adc_writel(st, AT91_ADC_CHER, | 569 | at91_adc_writel(st, AT91_ADC_CHER, |
| @@ -579,7 +578,7 @@ static int at91_adc_configure_trigger(struct iio_trigger *trig, bool state) | |||
| 579 | at91_adc_writel(st, reg->trigger_register, | 578 | at91_adc_writel(st, reg->trigger_register, |
| 580 | status & ~value); | 579 | status & ~value); |
| 581 | 580 | ||
| 582 | for_each_set_bit(bit, buffer->scan_mask, | 581 | for_each_set_bit(bit, idev->active_scan_mask, |
| 583 | st->num_channels) { | 582 | st->num_channels) { |
| 584 | struct iio_chan_spec const *chan = idev->channels + bit; | 583 | struct iio_chan_spec const *chan = idev->channels + bit; |
| 585 | at91_adc_writel(st, AT91_ADC_CHDR, | 584 | at91_adc_writel(st, AT91_ADC_CHDR, |
diff --git a/drivers/iio/adc/ti_am335x_adc.c b/drivers/iio/adc/ti_am335x_adc.c index 2e5cc4409f78..a0e7161f040c 100644 --- a/drivers/iio/adc/ti_am335x_adc.c +++ b/drivers/iio/adc/ti_am335x_adc.c | |||
| @@ -188,12 +188,11 @@ static int tiadc_buffer_preenable(struct iio_dev *indio_dev) | |||
| 188 | static int tiadc_buffer_postenable(struct iio_dev *indio_dev) | 188 | static int tiadc_buffer_postenable(struct iio_dev *indio_dev) |
| 189 | { | 189 | { |
| 190 | struct tiadc_device *adc_dev = iio_priv(indio_dev); | 190 | struct tiadc_device *adc_dev = iio_priv(indio_dev); |
| 191 | struct iio_buffer *buffer = indio_dev->buffer; | ||
| 192 | unsigned int enb = 0; | 191 | unsigned int enb = 0; |
| 193 | u8 bit; | 192 | u8 bit; |
| 194 | 193 | ||
| 195 | tiadc_step_config(indio_dev); | 194 | tiadc_step_config(indio_dev); |
| 196 | for_each_set_bit(bit, buffer->scan_mask, adc_dev->channels) | 195 | for_each_set_bit(bit, indio_dev->active_scan_mask, adc_dev->channels) |
| 197 | enb |= (get_adc_step_bit(adc_dev, bit) << 1); | 196 | enb |= (get_adc_step_bit(adc_dev, bit) << 1); |
| 198 | adc_dev->buffer_en_ch_steps = enb; | 197 | adc_dev->buffer_en_ch_steps = enb; |
| 199 | 198 | ||
diff --git a/drivers/iio/adc/vf610_adc.c b/drivers/iio/adc/vf610_adc.c index 8ec353c01d98..e63b8e76d4c3 100644 --- a/drivers/iio/adc/vf610_adc.c +++ b/drivers/iio/adc/vf610_adc.c | |||
| @@ -141,9 +141,13 @@ struct vf610_adc { | |||
| 141 | struct regulator *vref; | 141 | struct regulator *vref; |
| 142 | struct vf610_adc_feature adc_feature; | 142 | struct vf610_adc_feature adc_feature; |
| 143 | 143 | ||
