aboutsummaryrefslogtreecommitdiffstats
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
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
-rw-r--r--MAINTAINERS1
-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
-rw-r--r--drivers/staging/fsl-mc/bus/fsl-mc-bus.c22
-rw-r--r--drivers/staging/lustre/lnet/selftest/rpc.c2
-rw-r--r--drivers/staging/media/platform/bcm2835/mmal-vchiq.c7
-rw-r--r--drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c8
8 files changed, 29 insertions, 23 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index 6f68cefa11e2..fa0e8da55f18 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -5034,7 +5034,6 @@ F: lib/fault-inject.c
5034 5034
5035FBTFT Framebuffer drivers 5035FBTFT Framebuffer drivers
5036M: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 5036M: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
5037M: Noralf Trønnes <noralf@tronnes.org>
5038S: Maintained 5037S: Maintained
5039F: drivers/staging/fbtft/ 5038F: drivers/staging/fbtft/
5040 5039
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
diff --git a/drivers/staging/fsl-mc/bus/fsl-mc-bus.c b/drivers/staging/fsl-mc/bus/fsl-mc-bus.c
index 47acb0a29842..3be5f25ff113 100644
--- a/drivers/staging/fsl-mc/bus/fsl-mc-bus.c
+++ b/drivers/staging/fsl-mc/bus/fsl-mc-bus.c
@@ -588,8 +588,7 @@ static int parse_mc_ranges(struct device *dev,
588 int *paddr_cells, 588 int *paddr_cells,
589 int *mc_addr_cells, 589 int *mc_addr_cells,
590 int *mc_size_cells, 590 int *mc_size_cells,
591 const __be32 **ranges_start, 591 const __be32 **ranges_start)
592 u8 *num_ranges)
593{ 592{
594 const __be32 *prop; 593 const __be32 *prop;
595 int range_tuple_cell_count; 594 int range_tuple_cell_count;
@@ -602,8 +601,6 @@ static int parse_mc_ranges(struct device *dev,
602 dev_warn(dev, 601 dev_warn(dev,
603 "missing or empty ranges property for device tree node '%s'\n", 602 "missing or empty ranges property for device tree node '%s'\n",
604 mc_node->name); 603 mc_node->name);
605
606 *num_ranges = 0;
607 return 0; 604 return 0;
608 } 605 }
609 606
@@ -630,8 +627,7 @@ static int parse_mc_ranges(struct device *dev,
630 return -EINVAL; 627 return -EINVAL;
631 } 628 }
632 629
633 *num_ranges = ranges_len / tuple_len; 630 return ranges_len / tuple_len;
634 return 0;
635} 631}
636 632
637static int get_mc_addr_translation_ranges(struct device *dev, 633static int get_mc_addr_translation_ranges(struct device *dev,
@@ -639,7 +635,7 @@ static int get_mc_addr_translation_ranges(struct device *dev,
639 **ranges, 635 **ranges,
640 u8 *num_ranges) 636 u8 *num_ranges)
641{ 637{
642 int error; 638 int ret;
643 int paddr_cells; 639 int paddr_cells;
644 int mc_addr_cells; 640 int mc_addr_cells;
645 int mc_size_cells; 641 int mc_size_cells;
@@ -647,16 +643,16 @@ static int get_mc_addr_translation_ranges(struct device *dev,
647 const __be32 *ranges_start; 643 const __be32 *ranges_start;
648 const __be32 *cell; 644 const __be32 *cell;
649 645
650 error = parse_mc_ranges(dev, 646 ret = parse_mc_ranges(dev,
651 &paddr_cells, 647 &paddr_cells,
652 &mc_addr_cells, 648 &mc_addr_cells,
653 &mc_size_cells, 649 &mc_size_cells,
654 &ranges_start, 650 &ranges_start);
655 num_ranges); 651 if (ret < 0)
656 if (error < 0) 652 return ret;
657 return error;
658 653
659 if (!(*num_ranges)) { 654 *num_ranges = ret;
655 if (!ret) {
660 /* 656 /*
661 * Missing or empty ranges property ("ranges;") for the 657 * Missing or empty ranges property ("ranges;") for the
662 * 'fsl,qoriq-mc' node. In this case, identity mapping 658 * 'fsl,qoriq-mc' node. In this case, identity mapping
diff --git a/drivers/staging/lustre/lnet/selftest/rpc.c b/drivers/staging/lustre/lnet/selftest/rpc.c
index 92cd4113cf75..87fe366f8f70 100644
--- a/drivers/staging/lustre/lnet/selftest/rpc.c
+++ b/drivers/staging/lustre/lnet/selftest/rpc.c
@@ -255,7 +255,7 @@ srpc_service_init(struct srpc_service *svc)
255 svc->sv_shuttingdown = 0; 255 svc->sv_shuttingdown = 0;
256 256
257 svc->sv_cpt_data = cfs_percpt_alloc(lnet_cpt_table(), 257 svc->sv_cpt_data = cfs_percpt_alloc(lnet_cpt_table(),
258 sizeof(*svc->sv_cpt_data)); 258 sizeof(**svc->sv_cpt_data));
259 if (!svc->sv_cpt_data) 259 if (!svc->sv_cpt_data)
260 return -ENOMEM; 260 return -ENOMEM;
261 261
diff --git a/drivers/staging/media/platform/bcm2835/mmal-vchiq.c b/drivers/staging/media/platform/bcm2835/mmal-vchiq.c
index f0639ee6c8b9..fdfb6a620a43 100644
--- a/drivers/staging/media/platform/bcm2835/mmal-vchiq.c
+++ b/drivers/staging/media/platform/bcm2835/mmal-vchiq.c
@@ -397,8 +397,10 @@ buffer_from_host(struct vchiq_mmal_instance *instance,
397 397
398 /* get context */ 398 /* get context */
399 msg_context = get_msg_context(instance); 399 msg_context = get_msg_context(instance);
400 if (msg_context == NULL) 400 if (!msg_context) {
401 return -ENOMEM; 401 ret = -ENOMEM;
402 goto unlock;
403 }
402 404
403 /* store bulk message context for when data arrives */ 405 /* store bulk message context for when data arrives */
404 msg_context->u.bulk.instance = instance; 406 msg_context->u.bulk.instance = instance;
@@ -454,6 +456,7 @@ buffer_from_host(struct vchiq_mmal_instance *instance,
454 456
455 vchi_service_release(instance->handle); 457 vchi_service_release(instance->handle);
456 458
459unlock:
457 mutex_unlock(&instance->bulk_mutex); 460 mutex_unlock(&instance->bulk_mutex);
458 461
459 return ret; 462 return ret;
diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c
index e6241fb5cfa6..3aeffcb9c87e 100644
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c
@@ -121,8 +121,14 @@ int vchiq_platform_init(struct platform_device *pdev, VCHIQ_STATE_T *state)
121 if (err < 0) 121 if (err < 0)
122 return err; 122 return err;
123 123
124 (void)of_property_read_u32(dev->of_node, "cache-line-size", 124 err = of_property_read_u32(dev->of_node, "cache-line-size",
125 &g_cache_line_size); 125 &g_cache_line_size);
126
127 if (err) {
128 dev_err(dev, "Missing cache-line-size property\n");
129 return -ENODEV;
130 }
131
126 g_fragments_size = 2 * g_cache_line_size; 132 g_fragments_size = 2 * g_cache_line_size;
127 133
128 /* Allocate space for the channels in coherent memory */ 134 /* Allocate space for the channels in coherent memory */