aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/iio
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-03-04 14:26:18 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2017-03-04 14:26:18 -0500
commit91aff98b79f10bf38c0d51b2d8538ecca35f916e (patch)
tree32236b647c22c9f3f05d52d1ece14a88b920653c /drivers/iio
parent33a8b3e99dc68abfe25e140144ad268e70660be3 (diff)
parenta45e47f4b342884dcf9e40a530033f64c379ffc7 (diff)
Merge tag 'staging-4.11-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging
Pull staging/IIO driver fixes from Greg KH: "Here are a few small staging and IIO driver fixes for issues that showed up after the big set if changes you merged last week. Nothing major, just small bugs resolved in some IIO drivers, a lustre allocation fix, and some RaspberryPi driver fixes for reported problems, as well as a MAINTAINERS entry update. All of these have been in linux-next for a week with no reported issues" * tag 'staging-4.11-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: staging: fsl-mc: fix warning in DT ranges parser MAINTAINERS: Remove Noralf Trønnes as fbtft maintainer staging: vchiq_2835_arm: Make cache-line-size a required DT property staging: bcm2835/mmal-vchiq: unlock on error in buffer_from_host() staging/lustre/lnet: Fix allocation size for sv_cpt_data iio: adc: xilinx: Fix error handling iio: 104-quad-8: Fix off-by-one error when addressing flag register iio: adc: handle unknow of_device_id data
Diffstat (limited to 'drivers/iio')
-rw-r--r--drivers/iio/adc/rcar-gyroadc.c4
-rw-r--r--drivers/iio/adc/xilinx-xadc-core.c6
-rw-r--r--drivers/iio/counter/104-quad-8.c2
3 files changed, 7 insertions, 5 deletions
diff --git a/drivers/iio/adc/rcar-gyroadc.c b/drivers/iio/adc/rcar-gyroadc.c
index 0c44f72c32a8..018ed360e717 100644
--- a/drivers/iio/adc/rcar-gyroadc.c
+++ b/drivers/iio/adc/rcar-gyroadc.c
@@ -336,7 +336,7 @@ static int rcar_gyroadc_parse_subdevs(struct iio_dev *indio_dev)
336 struct device_node *child; 336 struct device_node *child;
337 struct regulator *vref; 337 struct regulator *vref;
338 unsigned int reg; 338 unsigned int reg;
339 unsigned int adcmode, childmode; 339 unsigned int adcmode = -1, childmode;
340 unsigned int sample_width; 340 unsigned int sample_width;
341 unsigned int num_channels; 341 unsigned int num_channels;
342 int ret, first = 1; 342 int ret, first = 1;
@@ -366,6 +366,8 @@ static int rcar_gyroadc_parse_subdevs(struct iio_dev *indio_dev)
366 channels = rcar_gyroadc_iio_channels_3; 366 channels = rcar_gyroadc_iio_channels_3;
367 num_channels = ARRAY_SIZE(rcar_gyroadc_iio_channels_3); 367 num_channels = ARRAY_SIZE(rcar_gyroadc_iio_channels_3);
368 break; 368 break;
369 default:
370 return -EINVAL;
369 } 371 }
370 372
371 /* 373 /*
diff --git a/drivers/iio/adc/xilinx-xadc-core.c b/drivers/iio/adc/xilinx-xadc-core.c
index 0a6beb3d99cb..56cf5907a5f0 100644
--- a/drivers/iio/adc/xilinx-xadc-core.c
+++ b/drivers/iio/adc/xilinx-xadc-core.c
@@ -1208,7 +1208,7 @@ static int xadc_probe(struct platform_device *pdev)
1208 1208
1209 ret = xadc->ops->setup(pdev, indio_dev, irq); 1209 ret = xadc->ops->setup(pdev, indio_dev, irq);
1210 if (ret) 1210 if (ret)
1211 goto err_free_samplerate_trigger; 1211 goto err_clk_disable_unprepare;
1212 1212
1213 ret = request_irq(irq, xadc->ops->interrupt_handler, 0, 1213 ret = request_irq(irq, xadc->ops->interrupt_handler, 0,
1214 dev_name(&pdev->dev), indio_dev); 1214 dev_name(&pdev->dev), indio_dev);
@@ -1268,6 +1268,8 @@ static int xadc_probe(struct platform_device *pdev)
1268 1268
1269err_free_irq: 1269err_free_irq:
1270 free_irq(irq, indio_dev); 1270 free_irq(irq, indio_dev);
1271err_clk_disable_unprepare:
1272 clk_disable_unprepare(xadc->clk);
1271err_free_samplerate_trigger: 1273err_free_samplerate_trigger:
1272 if (xadc->ops->flags & XADC_FLAGS_BUFFERED) 1274 if (xadc->ops->flags & XADC_FLAGS_BUFFERED)
1273 iio_trigger_free(xadc->samplerate_trigger); 1275 iio_trigger_free(xadc->samplerate_trigger);
@@ -1277,8 +1279,6 @@ err_free_convst_trigger:
1277err_triggered_buffer_cleanup: 1279err_triggered_buffer_cleanup:
1278 if (xadc->ops->flags & XADC_FLAGS_BUFFERED) 1280 if (xadc->ops->flags & XADC_FLAGS_BUFFERED)
1279 iio_triggered_buffer_cleanup(indio_dev); 1281 iio_triggered_buffer_cleanup(indio_dev);
1280err_clk_disable_unprepare:
1281 clk_disable_unprepare(xadc->clk);
1282err_device_free: 1282err_device_free:
1283 kfree(indio_dev->channels); 1283 kfree(indio_dev->channels);
1284 1284
diff --git a/drivers/iio/counter/104-quad-8.c b/drivers/iio/counter/104-quad-8.c
index a5913e97945e..f9b8fc9ae13f 100644
--- a/drivers/iio/counter/104-quad-8.c
+++ b/drivers/iio/counter/104-quad-8.c
@@ -76,7 +76,7 @@ static int quad8_read_raw(struct iio_dev *indio_dev,
76 return IIO_VAL_INT; 76 return IIO_VAL_INT;
77 } 77 }
78 78
79 flags = inb(base_offset); 79 flags = inb(base_offset + 1);
80 borrow = flags & BIT(0); 80 borrow = flags & BIT(0);
81 carry = !!(flags & BIT(1)); 81 carry = !!(flags & BIT(1));
82 82