]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
Merge tag 'staging-4.11-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 4 Mar 2017 19:26:18 +0000 (11:26 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 4 Mar 2017 19:26:18 +0000 (11:26 -0800)
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

MAINTAINERS
drivers/iio/adc/rcar-gyroadc.c
drivers/iio/adc/xilinx-xadc-core.c
drivers/iio/counter/104-quad-8.c
drivers/staging/fsl-mc/bus/fsl-mc-bus.c
drivers/staging/lustre/lnet/selftest/rpc.c
drivers/staging/media/platform/bcm2835/mmal-vchiq.c
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c

index 6f68cefa11e225189b3fb525fb6fe62f113f6c2d..fa0e8da55f18beee4448d2e08a398fa488d68ced 100644 (file)
@@ -5034,7 +5034,6 @@ F:        lib/fault-inject.c
 
 FBTFT Framebuffer drivers
 M:     Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-M:     Noralf Trønnes <noralf@tronnes.org>
 S:     Maintained
 F:     drivers/staging/fbtft/
 
index 0c44f72c32a8592abd674410368e48e42aa77a13..018ed360e717cd619e89844225db1f374e1c2536 100644 (file)
@@ -336,7 +336,7 @@ static int rcar_gyroadc_parse_subdevs(struct iio_dev *indio_dev)
        struct device_node *child;
        struct regulator *vref;
        unsigned int reg;
-       unsigned int adcmode, childmode;
+       unsigned int adcmode = -1, childmode;
        unsigned int sample_width;
        unsigned int num_channels;
        int ret, first = 1;
@@ -366,6 +366,8 @@ static int rcar_gyroadc_parse_subdevs(struct iio_dev *indio_dev)
                        channels = rcar_gyroadc_iio_channels_3;
                        num_channels = ARRAY_SIZE(rcar_gyroadc_iio_channels_3);
                        break;
+               default:
+                       return -EINVAL;
                }
 
                /*
index 0a6beb3d99cbc741697203181070be72cd8cba17..56cf5907a5f010e30a73ce3e8fadaea692ca0c95 100644 (file)
@@ -1208,7 +1208,7 @@ static int xadc_probe(struct platform_device *pdev)
 
        ret = xadc->ops->setup(pdev, indio_dev, irq);
        if (ret)
-               goto err_free_samplerate_trigger;
+               goto err_clk_disable_unprepare;
 
        ret = request_irq(irq, xadc->ops->interrupt_handler, 0,
                        dev_name(&pdev->dev), indio_dev);
@@ -1268,6 +1268,8 @@ static int xadc_probe(struct platform_device *pdev)
 
 err_free_irq:
        free_irq(irq, indio_dev);
+err_clk_disable_unprepare:
+       clk_disable_unprepare(xadc->clk);
 err_free_samplerate_trigger:
        if (xadc->ops->flags & XADC_FLAGS_BUFFERED)
                iio_trigger_free(xadc->samplerate_trigger);
@@ -1277,8 +1279,6 @@ err_free_convst_trigger:
 err_triggered_buffer_cleanup:
        if (xadc->ops->flags & XADC_FLAGS_BUFFERED)
                iio_triggered_buffer_cleanup(indio_dev);
-err_clk_disable_unprepare:
-       clk_disable_unprepare(xadc->clk);
 err_device_free:
        kfree(indio_dev->channels);
 
index a5913e97945eb6b5f26a418a71852fe086e6cd42..f9b8fc9ae13fc7dae0301120d20f38b287693efe 100644 (file)
@@ -76,7 +76,7 @@ static int quad8_read_raw(struct iio_dev *indio_dev,
                        return IIO_VAL_INT;
                }
 
-               flags = inb(base_offset);
+               flags = inb(base_offset + 1);
                borrow = flags & BIT(0);
                carry = !!(flags & BIT(1));
 
index 47acb0a298422a8f4c6a35881a54fe882a22fc50..3be5f25ff11306eca0a8e8a6afd014e7bb2128f0 100644 (file)
@@ -588,8 +588,7 @@ static int parse_mc_ranges(struct device *dev,
                           int *paddr_cells,
                           int *mc_addr_cells,
                           int *mc_size_cells,
-                          const __be32 **ranges_start,
-                          u8 *num_ranges)
+                          const __be32 **ranges_start)
 {
        const __be32 *prop;
        int range_tuple_cell_count;
@@ -602,8 +601,6 @@ static int parse_mc_ranges(struct device *dev,
                dev_warn(dev,
                         "missing or empty ranges property for device tree node '%s'\n",
                         mc_node->name);
-
-               *num_ranges = 0;
                return 0;
        }
 
@@ -630,8 +627,7 @@ static int parse_mc_ranges(struct device *dev,
                return -EINVAL;
        }
 
-       *num_ranges = ranges_len / tuple_len;
-       return 0;
+       return ranges_len / tuple_len;
 }
 
 static int get_mc_addr_translation_ranges(struct device *dev,
@@ -639,7 +635,7 @@ static int get_mc_addr_translation_ranges(struct device *dev,
                                                **ranges,
                                          u8 *num_ranges)
 {
-       int error;
+       int ret;
        int paddr_cells;
        int mc_addr_cells;
        int mc_size_cells;
@@ -647,16 +643,16 @@ static int get_mc_addr_translation_ranges(struct device *dev,
        const __be32 *ranges_start;
        const __be32 *cell;
 
-       error = parse_mc_ranges(dev,
+       ret = parse_mc_ranges(dev,
                                &paddr_cells,
                                &mc_addr_cells,
                                &mc_size_cells,
-                               &ranges_start,
-                               num_ranges);
-       if (error < 0)
-               return error;
+                               &ranges_start);
+       if (ret < 0)
+               return ret;
 
-       if (!(*num_ranges)) {
+       *num_ranges = ret;
+       if (!ret) {
                /*
                 * Missing or empty ranges property ("ranges;") for the
                 * 'fsl,qoriq-mc' node. In this case, identity mapping
index 92cd4113cf75e96b138157332c1549e7a2ed41a0..87fe366f8f70312df1c571aa2c6ee240b7c2cdc5 100644 (file)
@@ -255,7 +255,7 @@ srpc_service_init(struct srpc_service *svc)
        svc->sv_shuttingdown = 0;
 
        svc->sv_cpt_data = cfs_percpt_alloc(lnet_cpt_table(),
-                                           sizeof(*svc->sv_cpt_data));
+                                           sizeof(**svc->sv_cpt_data));
        if (!svc->sv_cpt_data)
                return -ENOMEM;
 
index f0639ee6c8b9984872aaefc9d277300f6ca2f9fc..fdfb6a620a4314ad201ba0f3b09a1de09259d4eb 100644 (file)
@@ -397,8 +397,10 @@ buffer_from_host(struct vchiq_mmal_instance *instance,
 
        /* get context */
        msg_context = get_msg_context(instance);
-       if (msg_context == NULL)
-               return -ENOMEM;
+       if (!msg_context) {
+               ret = -ENOMEM;
+               goto unlock;
+       }
 
        /* store bulk message context for when data arrives */
        msg_context->u.bulk.instance = instance;
@@ -454,6 +456,7 @@ buffer_from_host(struct vchiq_mmal_instance *instance,
 
        vchi_service_release(instance->handle);
 
+unlock:
        mutex_unlock(&instance->bulk_mutex);
 
        return ret;
index e6241fb5cfa6953155aff49c17a919b398173f78..3aeffcb9c87e91d0be902bf851d38bb8b2550ebb 100644 (file)
@@ -121,8 +121,14 @@ int vchiq_platform_init(struct platform_device *pdev, VCHIQ_STATE_T *state)
        if (err < 0)
                return err;
 
-       (void)of_property_read_u32(dev->of_node, "cache-line-size",
+       err = of_property_read_u32(dev->of_node, "cache-line-size",
                                   &g_cache_line_size);
+
+       if (err) {
+               dev_err(dev, "Missing cache-line-size property\n");
+               return -ENODEV;
+       }
+
        g_fragments_size = 2 * g_cache_line_size;
 
        /* Allocate space for the channels in coherent memory */