18 Sep, 2016

1 commit

  • Check for iio_info structures that are only stored in the info field of a
    iio_dev structure. This field is declared const, so iio_info structures
    that have this property can be declared as const also.

    The semantic patch that makes this change is as follows:
    (http://coccinelle.lip6.fr/)

    //
    @r disable optional_qualifier@
    identifier i;
    position p;
    @@
    static struct iio_info i@p = { ... };

    @ok@
    identifier r.i;
    struct iio_dev e;
    position p;
    @@
    e.info = &i@p;

    @bad@
    position p != {r.p,ok.p};
    identifier r.i;
    struct iio_info e;
    @@
    e@i@p

    @depends on !bad disable optional_qualifier@
    identifier r.i;
    @@
    static
    +const
    struct iio_info i = { ... };
    //

    The result of size on this file before the change is:
    text data bss dec hex filename
    1245 344 0 1589 635
    drivers/iio/gyro/ssp_gyro_sensor.o

    and after the change it is:
    text data bss dec hex filename
    1397 192 0 1589 635
    drivers/iio/gyro/ssp_gyro_sensor.o

    Signed-off-by: Julia Lawall
    Signed-off-by: Jonathan Cameron

    Julia Lawall
     

03 Jul, 2016

1 commit

  • The filter frequency and sample rate have a fixed relationship.
    Only the filter frequency is unique, however.
    Currently the driver ignores the filter settings for 32 Hz and
    64 Hz.

    This patch adds the necessary callbacks to be able to configure
    and read the filter setting from sysfs.

    Signed-off-by: Steffen Trumtrar
    Signed-off-by: Jonathan Cameron

    Steffen Trumtrar
     

01 Jul, 2016

1 commit

  • Adds a new per-device sysfs attribute "current_timestamp_clock" to allow
    userspace to select a particular POSIX clock for buffered samples and
    events timestamping.

    Following clocks, as listed in clock_gettime(2), are supported:
    CLOCK_REALTIME, CLOCK_MONOTONIC, CLOCK_MONOTONIC_RAW,
    CLOCK_REALTIME_COARSE, CLOCK_MONOTONIC_COARSE, CLOCK_BOOTTIME and
    CLOCK_TAI.

    Signed-off-by: Gregor Boirie
    Acked-by: Sanchayan Maity
    Signed-off-by: Jonathan Cameron

    Gregor Boirie
     

20 Jun, 2016

1 commit


10 Jun, 2016

1 commit

  • …iio into staging-next

    Jonathan writes:

    First round of IIO new device support, features and cleanups for the 4.8 cycle.

    New device support
    * ads1015
    - add ads1115 support
    * bma220 accelerometer
    - new driver
    - triggered buffer support.
    * bmc150
    - add bmm150 support.
    * bmp280
    - bme280 support with addition of humidity channel.
    * max5487 potentiometer
    - new driver
    * MMA7660FC accelerometer.
    - New driver
    * st-pressure
    - support for the lps22hb
    * loop trigger.
    - This one is *nasty* but we have real applications (parrot drones) where
    it is useful. The trigger basically spins as hard as it can firing off
    a new trigger each time all triggered devices come back to say they are
    done. It doesn't hang a machine even when doing it on a dummy driver.
    A lot nicer than having this implemented within lots of device drivers
    anyway.

    Core stuff
    * Add support to create IIO devices via configfs (similar to we did for
    triggers a while back) + docs.
    * New channel types
    - IIO_ELECTRICAL_CONDUCTIVITY
    * Couple of MAINTAINERS patches to list the device tree bindings.
    * Make trigger ops structure non optional (comment fix). It hasn't been for
    an awful long time, but that's not what the description said.

    New features
    * ak8975
    - support adapters that are limited to byte data only by allowing the
    emulated block read i2c function that was recently introduced.
    * atlas-ph
    - support atlas-ec (electrical conductivity sensor)
    * bmi160
    - add available frequency and scale attributes to make the driver
    more user friendly (and avoid having to read the datasheet to know
    what will work).
    * dummy
    - move creation to configfs interface. It's not real hardware so we
    are not that worried about the ABI breakage ;)
    * mma8452
    - oversampling ration support
    * nau7802
    - expose available gains to make life easier for userspace.
    * st-sensors
    - allow use of emulation for SMBus block reads as all the st parts support
    it.
    * ti-ads1015
    - list datasheet names to allow their use by inkernel consumers.
    * Various module alias additions to help auto probing. Drop one redundant one
    as well.

    Cleanups
    * ad7266, ad7476, ad7887, ad7923, ad799x
    - use direct mode claim function rather than open coding it during sensor
    read (prevents switching on buffers mid read).
    * ad7793, ad7791
    - use direct mode claim to prevent frequency changes when buffers running.
    * afe440x - These are ABI breaking but the driver requires custom userspace
    code to do anything useful anyway and that is still being written and under
    control of TI. Ultimately we may have other libraries to do pulse
    oximetry with these devices but we aren't aware of any yet.
    - kernel-doc format fixes
    - drop ifdef fun around of_match_ptr - it's not worth the mess to save
    a tiny amount of space.
    - drop some unnecessary register initializations.
    - drop the weird locked gain modes as they gain us nothing (can just set
    all gains separately).
    - remove handling of offset attributes seeing as no channels actually have
    them (oops)
    - Drop the LED3 input channel as it's an alias for ALED2.
    - *big one* remove channel names - an experiment that turned out to not
    make sense - see patch for details.
    - use regmap fields to clean up code.
    - tie the tia gain stages to appropriate channels in the ABI as that is
    what they really effect. Same with the LED currents.
    - cleanout some unused defines and fix a missnamed one.
    * atlas-ph
    - reorganise to allow support of other similar parts.
    * bmc150
    - document supported chips in kconfig help.
    * jsa1212
    - drop an unneeded i2c functionality check for functionality the driver
    doesn't use.
    * mxs-lradc
    - simply touch screen registration code.
    - remove the touch screen unregister as all devm based now.
    - disable only those channels that are masked in hardware stop (others
    are already dealt with elsewhere)
    * st-sensors
    - unexport st_sensors_get_buffer_element as nothing outside the st-sensors
    core driver uses it.
    - fix handling of failure to start up regulators.
    * tpl0102
    - drop an i2c functionality test for features that aren't needed.
    * ti-am335x
    - use variable name rather than type in sizeof for clarity.
    - use SIMPLE_DEV_PM_OPS helper macro to tidy up a bit.

    Tools
    * Add install / uninstall to makefile. Someone cares, so presumably
    some people will find it useful!
    * generic_buffer
    - rename to iio_generic_buffer to line up with other tools.
    - handle cleanup when receiving signals
    - Add a --device-num option and a --trigger-num option rather than
    relying on naming which doesn't work if you have two of the same part.

    Greg Kroah-Hartman
     

30 May, 2016

1 commit

  • commit 98ad8b41f58dff6b30713d7f09ae3834b8df7ded
    ("iio: st_sensors: verify interrupt event to status") caused
    a regression when reading ST sensors from a HRTimer trigger
    rather than the intrinsic interrupts: the HRTimer may
    trigger faster than the sensor provides new values, and
    as the check against new values available as a cause of
    the interrupt trigger was done in the poll function,
    this would bail out of the HRTimer interrupt with
    IRQ_NONE.

    So clearly we need to only check the new values available
    from the proper interrupt handler and not from the poll
    function, which should rather just read the raw values
    from the registers, put them into the buffer and be happy.

    To achieve this: switch the ST Sensors over to using a true
    threaded interrupt handler.

    In the interrupt thread, check if new values are available,
    else yield to the (potential) next device on the same
    interrupt line to check the registers. If the interrupt
    was ours, proceed to poll the values.

    Instead of relying on iio_trigger_generic_data_rdy_poll() as
    a top half to wake up the thread that polls the sensor for
    new data, have the thread call iio_trigger_poll_chained()
    after determining that is is the proper source of the
    interrupt. This is modelled on drivers/iio/accel/mma8452.c
    which is already using a properly threaded interrupt handler.

    In order to get the same precision in timestamps as
    previously, where samples would be timestamped in the
    poll function pf->timestamp when calling
    iio_trigger_generic_data_rdy_poll() we introduce a
    local timestamp in the sensor data, set it in the top half
    (fastpath) of the interrupt handler and provide that to the
    core when calling iio_push_to_buffers_with_timestamp().

    Additionally: if the active scanmask is not set for the
    sensor no IRQs should be enabled and we need to bail out
    with IRQ_NONE. This can happen if spurious IRQs fire when
    installing the threaded interrupt handler.

    Tested with hard interrupt triggers on LIS331DL, then also
    tested with hrtimers on the same sensor by creating a 75Hz
    HRTimer and using it to poll the sensor.

    Signed-off-by: Linus Walleij
    Cc: Giuseppe Barba
    Cc: Denis Ciocca
    Reported-by: Crestez Dan Leonard
    Tested-by: Crestez Dan Leonard
    Tested-by: Jonathan Cameron
    Fixes: 97865fe41322 ("iio: st_sensors: verify interrupt event to status")
    Signed-off-by: Jonathan Cameron

    Linus Walleij
     

29 May, 2016

1 commit


27 Apr, 2016

1 commit

  • …iio into staging-testing

    Jonathan writes:

    2nd set of new device support, features and cleanup for IIO in the 4.7 cycle.

    Bit of a bumper set for new drivers but plenty of other stuff here as well!

    New device support
    * ad5592R ADC/DAC
    - new driver supporting ad5592r and ad5593r combined ADC/DAC and gpio chips.
    * Aosong am2315 relative humidity
    - new driver with triggered buffer support in follow up patch.
    * bmi160 imu
    - new driver
    * bmp280
    - bmp180 support - note there is support in the misc/bmp085 driver. Intent
    is to remove that driver long term.
    * invensense mpu6050
    - cleanup leading to explicit support of mpu9150 with a good few cleanups
    along the way.
    * Hope RF hp03 pressure and temperature sensor.
    - new driver
    * maxim DS1803 potentiometer
    - new driver
    * maxim max44000 light and proximity sensor
    - new driver built in a series of steps to support pretty much everything.
    * ROHM BH1780 light sensor
    - new driver. There is an existing driver in misc that this is pretty much
    intended to replace. The discussion on whether to support the non standard
    interface of that driver is some way is continuing.
    * st-gyro
    - lsm9ds0-gyro. The accel/magn side of this will take a while longer as
    extensions to the st library are needed for cases where two types of sensor
    share a single i2c address.
    * ti-adc081c
    - support the adc101c and adc121c
    * Vishay VEML6070 UV sensor
    - new driver.

    New features
    * core
    - devm_ APIs for channel_get and channel_get_all. The first user of these
    is the generic ADC based thermal driver. As it is going through the
    thermal tree these will be picked up as a patch to that next cycle as that
    is how the author preferred to do it.
    - mounting matrix support. This new core support allows devices to provide
    to userspace (typically from the device tree) allowing compensation for how
    the sensor is mounted on the device. First examples are on UAVs but it
    has a more mundane use on typical phone where the chip may be on the front
    or the back of the circuit board and soldered at any angle. Includes
    support for this ABI in ak8975 (which has an older interface, now
    deprecated) and mpu6050.
    * tools
    - add a -a option to enable all available channels in generic_buffer sample.
    Makes it somewhat easier to use.
    * adis library and drivers
    - support manual self test flag clearing. This has technically been broken
    for a very long time - result is an offset on readings as the applied field
    is on all the time.
    * ak8975
    - triggered buffer support
    * bmc150
    - spi support (including splitting the driver into core and i2c parts)
    * bmp280
    - oversampling support.
    * dht11
    - improved logging - useful to debug timing issues on this quirky device.
    * st-sensors
    - read each channel invidivually as not all support the optimization of
    reading in bulk. This is technically a fix, but will need to be backported
    if desired.
    - support open drain and shared interrupts.
    * ti-adc081c
    - triggered buffer support.

    Cleanups
    * inkern
    - white space fix.
    * ad7606
    - use the iio_device_claim_direct_mode call rather than open coding equiv.
    * ad799x
    - white space fix.
    * ad9523
    - unsigned -> unsigned int
    * apds9660
    - brace location tidying up.
    - silence an uninitialized variable warning.
    * ak8975
    - else and brace on same line fix.
    * at91_adc
    - white space fixes.
    * bmc150
    - use regmap stored copy of the device pointer rather than having an
    additional copy.
    * bmg160
    - use regmap stored copy of the device pointer rather than having an
    additional copy.
    * hid-sensors
    - white space fixes.
    * mcp3422
    - white space fix.
    * mma7455
    - use regmap to retrieve the device struct rather than carrying another copy
    in the private data.
    * ms_sensors
    - white space fix.
    * mxs-lradc
    - move current bindings out of staging - some will be shortly deprecated but
    the reality is that we have device trees out there using them so they will
    need to be supported for some time. They accidentally got left behind
    when the driver graduated from staging.
    - white space cleanup.
    - set INPUT_PROP_DIRECT.
    - move ts config into a better function.
    - move the STMP reset out of the ADC init.
    * vf610_adc
    - case label indenting fix.

    Greg Kroah-Hartman
     

24 Apr, 2016

1 commit


20 Apr, 2016

2 commits

  • Driver includes struct regmap and struct device in its global data.
    Remove the struct device and use regmap API to retrieve device info.

    Patch created using Coccinelle plus manual edits.

    Signed-off-by: Alison Schofield
    Reviewed-by: Srinivas Pandruvada
    Signed-off-by: Jonathan Cameron

    Alison Schofield
     
  • This makes all ST sensor drivers check that they actually have
    new data available for the requested channel(s) before claiming
    an IRQ, by reading the status register (which is conveniently
    the same for all ST sensors) and check that the channel has new
    data before proceeding to read it and fill the buffer.

    This way sensors can share an interrupt line: it can be flaged
    as shared and then the sensor that did not fire will return
    NO_IRQ, and the sensor that fired will handle the IRQ and
    return IRQ_HANDLED.

    Cc: Giuseppe Barba
    Cc: Denis Ciocca
    Signed-off-by: Linus Walleij
    Signed-off-by: Jonathan Cameron

    Linus Walleij
     

12 Apr, 2016

1 commit


03 Apr, 2016

5 commits

  • When reading gyroscope axes using iio buffers, the values
    returned are always 0. In the interrupt handler, the return
    value of the read operation is returned to the user instead
    of the value read. Return the value read to the user.

    This is also fixed in commit 82d8e5da1a33 ("iio:
    accel: bmg160: optimize transfers in trigger handler").

    Signed-off-by: Irina Tirdea
    Cc:
    Signed-off-by: Jonathan Cameron

    Irina Tirdea
     
  • For big endian platforms, reading the axes will return
    invalid values.

    The device stores each axis value in a 16 bit little
    endian register. The driver uses regmap_read_bulk to get
    the axis value, resulting in a 16 bit little endian value.
    This needs to be converted to cpu endianness to work
    on big endian platforms.

    Fix endianness for big endian platforms by converting
    the values for the axes read from little endian to
    cpu.

    This is also partially fixed in commit 82d8e5da1a33 ("iio:
    accel: bmg160: optimize transfers in trigger handler").

    Signed-off-by: Irina Tirdea
    Cc:
    Signed-off-by: Jonathan Cameron

    Irina Tirdea
     
  • Commit 845c877009cf014b ("i2c / ACPI: Assign IRQ for devices that have
    GpioInt automatically") automatically assigns the first ACPI GPIO
    interrupt in client->irq, so we can remove the probing code from
    drivers that use only one interrupt.

    Commit 0f0796509c07c1c7 ("iio: remove gpio interrupt probing from drivers
    that use a single interrupt") removes gpio interrupt probing from most
    drivers. This patch cleans the remaining ones.

    Signed-off-by: Irina Tirdea
    Signed-off-by: Jonathan Cameron

    Irina Tirdea
     
  • Some i2c busses (e.g.: Synopsys DesignWare I2C adapter) need to
    enable/disable the bus at each i2c transfer and must wait for
    the enable/disable to happen before sending the data.

    When reading data in the trigger handler, the bmg160 gyro driver does
    one bus transfer for each axis. This has an impact on the frequency
    of the accelerometer at high sample rates due to additional delays
    introduced by the bus at each transfer.

    Reading all axis values in one bus transfer reduces the delays
    introduced by the bus.

    Signed-off-by: Irina Tirdea
    Signed-off-by: Jonathan Cameron

    Irina Tirdea
     
  • Use available_scan_masks to allow the iio core to select
    the data to send to userspace depending on which axes are
    enabled, instead of doing this in the driver's interrupt
    handler.

    Signed-off-by: Irina Tirdea
    Signed-off-by: Jonathan Cameron

    Irina Tirdea
     

10 Jan, 2016

1 commit

  • Most ST MEMS Sensors that support interrupts can also handle sending
    an active low interrupt, i.e. going from high to low on data ready
    (or other interrupt) and thus triggering on a falling edge to the
    interrupt controller.

    Set up logic to inspect the interrupt line we get for a sensor: if
    it is triggering on rising edge, leave everything alone, but if it
    triggers on falling edges, set up active low, and if unsupported
    configurations appear: warn with errors and reconfigure the interrupt
    to a rising edge, which all interrupt generating sensors support.

    Create a local header for st_sensors_core.h to share functions
    between the sensor core and the trigger setup code.

    Cc: Giuseppe Barba
    Cc: Denis Ciocca
    Signed-off-by: Linus Walleij
    Signed-off-by: Jonathan Cameron

    Linus Walleij
     

02 Dec, 2015

1 commit

  • …iio into staging-next

    Jonathan writes:

    First set of new device support, features and cleanups for IIO in the 4.5 cycle

    Usual mixed bag, but the big item perhaps in this series is the DMA buffer
    support added by Lars-Peter Clausen. It's been in the works for a long time
    and it will be interesting to see what hardware support shows up now that
    this is available.

    New core features + associate cleanup.
    * Add generic DMA buffer infrastructure
    * Add a DMAengine framework based buffer
    Also associated minor changes.
    - Set the device buffer watermark based on the minimum watermark for all
    attached buffers rather than just the 'primary' one.
    - iio_buffer_init - only set the watermark default if one hasn't already
    been provided. This allows simple support for devices with a fixed
    watermark.
    - read only attribute for watermark on fixed watermark devices.
    - add explicit buffer enable/disable callbacks to allow the buffer to
    do more than trivial actions when it is being turned on and off.
    * IIO_VAL_INT support in write_raw_get_fmt function.

    New device support
    * Freescale MMA7455/7456L accelerometers
    * Memsic MXC6255XC accelerometer
    * ST lis2dh12 accelerometer
    * TI ADS8688 ADC
    * TI Palamas (twl6035/7) gpadc

    New driver features
    * mma8452
    - support either of the available interrupt pins to cope with the case
    where board layout has lead to a particular one being connected.

    Staging graduation
    * Dummy driver
    - this driver acts as both an example and a test device for those with
    out hardware to develop userspace code against.

    Cleanups and minor bits and bobs.
    * treewide
    - Sort out the ordering of iio_device_register/unregister vs runtime
    pm function calls so that it's all nice and consistent and not race
    prone.
    - Check sscanf return values. None of the cases will actually happen as
    the strings are supplied internally, but best to be consistent on this.
    * ad7780
    - switch over to the gpio descriptor interface and remove the now unused
    platform data which gets rid of a header entirely.
    * ad7793
    - drop a pointless else statement.
    * at91_adc
    - Swap kmalloc_array in for a kmalloc doing the same job.
    * dummy
    - get rid of some commented out lines that snuck in during the move of
    the driver.
    * lm3533-als
    - Print an error message on provision of an invalid resistance.
    * mcp320x
    - Add compatible strings with vendor prefix and deprecate those with
    no vendor prefix.
    * mxs-lradc
    - Use BIT macro in various places rather than shifted ones.
    * pa12203001
    - Power off the chip if the registration fails.
    * pulsedlight-lidar-lite
    - add runtime PM support.
    * xilinx XADC
    - constify an iio_buffer_setup_ops structure.

    Greg Kroah-Hartman
     

08 Nov, 2015

2 commits

  • This patch fixes the checkpatch warnings:
    WARNING: unchecked sscanf return value

    Signed-off-by: Ioana Ciornei
    Acked-by: Lars-Peter Clausen
    Signed-off-by: Jonathan Cameron

    Ioana Ciornei
     
  • At probe, runtime pm should be setup before registering the sysfs interface so
    that all the power attributes are accurate and functional when registering.
    Also, when removing the device we should unregister first to make sure
    that the interfaces that may result in wakeups are no longer available.

    Fix this behaviour for the following drivers: bmc150, bmg160, kmx61,
    kxcj-1013, mma9551, mma9553, rpr0521.

    Signed-off-by: Adriana Reus
    Signed-off-by: Jonathan Cameron

    Adriana Reus
     

06 Nov, 2015

1 commit

  • Pull spi updates from Mark Brown:
    "Quite a lot of activity in SPI this cycle, almost all of it in drivers
    with a few minor improvements and tweaks in the core.

    - Updates to pxa2xx to support Intel Broxton and multiple chip selects.
    - Support for big endian in the bcm63xx driver.
    - Multiple slave support for the mt8173
    - New driver for the auxiliary SPI controller in bcm2835 SoCs.
    - Support for Layerscale SoCs in the Freescale DSPI driver"

    * tag 'spi-v4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (87 commits)
    spi: pxa2xx: Rework self-initiated platform data creation for non-ACPI
    spi: pxa2xx: Add support for Intel Broxton
    spi: pxa2xx: Detect number of enabled Intel LPSS SPI chip select signals
    spi: pxa2xx: Add output control for multiple Intel LPSS chip selects
    spi: pxa2xx: Use LPSS prefix for defines that are Intel LPSS specific
    spi: Add DSPI support for layerscape family
    spi: ti-qspi: improve ->remove() callback
    spi/spi-xilinx: Fix race condition on last word read
    spi: Drop owner assignment from spi_drivers
    spi: Add THIS_MODULE to spi_driver in SPI core
    spi: Setup the master controller driver before setting the chipselect
    spi: dw: replace magic constant by DW_SPI_DR
    spi: mediatek: mt8173 spi multiple devices support
    spi: mediatek: handle controller_data in mtk_spi_setup
    spi: mediatek: remove mtk_spi_config
    spi: mediatek: Update document devicetree bindings to support multiple devices
    spi: fix kernel-doc warnings about missing return desc in spi.c
    spi: fix kernel-doc warnings about missing return desc in spi.h
    spi: pxa2xx: Align a few defines
    spi: pxa2xx: Save other reg_cs_ctrl bits when configuring chip select
    ...

    Linus Torvalds
     

28 Oct, 2015

1 commit


01 Sep, 2015

2 commits


16 Aug, 2015

5 commits


13 Aug, 2015

1 commit


08 Aug, 2015

2 commits


24 Jul, 2015

1 commit


12 Jul, 2015

1 commit


25 May, 2015

1 commit

  • …/iio into staging-next

    Jonathan writes:

    Second set of new driver, functionality and cleanups for IIO in the 4.2 cycle.

    Core functionality
    * i and q modifiers from quadrature channels.
    * IIO_CHAN_INFO_OVERSAMPLING_RATIO added.
    * High pass filter attributes added to mirror the existing low pass filter
    ones.

    Core cleanups
    * Make IIO tools building more cross compiler friendly.
    * Substantial rework of the function __iio_update_buffers to greatly simplify
    a hideously evolved function.

    New drivers and support
    * ACPI0008 ambient light sensor driver. This one has been around a long time to
    will be good to finally get it into mainline.
    * Berlin SOC ADC support.
    * BMC150 magnetometer. The accelerometer in the same package has been supported
    for quite some time, so good to have this half as well.
    * m62332 DAC driver
    * MEMSIC MMC35420 magnetometer.
    * ROHM BH1710 and similar ambient light sensors.
    * Sensortek STK3310 light sensor.
    * Sensortek STK8312 accelerometer.
    * Sensortek STK8BA50 accelerometer.
    * ti-adc128s052 gains support form the adc122s021 2 channel ADC.

    Driver cleanups and functionality.
    * Allow various drivers to compile with !GPIOLIB if COMPILE_TEST enabled.
    * bmc150 - decouple trigger from buffer to allow other triggers to be used.
    * bmg160 - decouple trigger from buffer to allow other triggers to be used.
    Fix a trivial unused field.
    * Constify a load of platform_device_id structures.
    * inv_mpu6050 - device tree bindings.
    * hid-sensors - fix a memory leak during probe if certain errors occur.
    * ltr501 - illuminance channel derived (in an non obvious fashion) from the
    intensity channels.
    * ltr501 - fix a boundary check on the proximity threshold.
    * mlx90614 - drop a pointless return.
    * mma8452 - Debugfs register access and fix a bug that had no effect (by
    coincidence)
    * ti_am335x_adc - add device tree bindings for sample-delay, open-delay and
    averaging. The ideal settings for these tend to be board design specific.

    Greg Kroah-Hartman
     

17 May, 2015

3 commits


14 May, 2015

1 commit

  • …l/git/jic23/iio into staging-linus

    Jonathan writes:

    The usual mixed bag of fixes for IIO in the 4.1 cycle.

    Second version of this pull request as a small fix to a fix turned
    up before Greg pulled it for a cc10001 patch near the top of the tree.

    One core fix

    * Set updated for a iio kfifo was incorrectly set to false during a failed
    update, resulting in atttempts to repeat the failed operation appearing
    to succeed.

    This time I've decided to list the driver fixes in alphabetical order rather
    than 'randomly'.

    * axp288_adc - a recent change added a check for valid info masks when
    reading channels from consumer drivers.
    * bmp280 - temperature compensation was failing to read the tfine value, hence
    causing a temperature of 0 to always be returned and incorrect presure
    measurements.
    * cc10001 - Fix channel number mapping when some channels are reserved for
    remote CPUs. Fix an issue with the use of the power-up/power-down register
    (basically wrong polarity). Fix an issue due to the missinterpretting the
    return value from regulator_get_voltage. Add a delay before the start bit
    as recommended for the hardware to avoid data corruption.
    * hid pressure - fix channel spec of modfiied, but no modifier (which makes no
    sense!)
    * hid proximity - fix channel spec of modified, but no modifier (which makes
    no sense!). Fix a memory leak in the probe function.
    * mcp320x - occasional incorrect readings on dma using spi busses due to
    cacheline corruption. Fixed by forcing ___cacheline_aligned for the buffers.
    * mma9551 - buffer overrun fix (miss specified maximum length of buffers)
    * mma9553 - endian fix on status message. Add an enable element for activity
    channel. Input checking for activity period to avoid rather unpredictable
    results.
    * spmi-vadc - fix an overflow in the output value normalization seen on some
    boards.
    * st-snesors - oops due to use of a mutex that is not yet initialized during
    probe.
    * xilinx adc - Some wrong register addresses, a wrong address for vccaux
    channel, incorrect scale on VREFP and incorrect sign on VREFN.

    Greg Kroah-Hartman