Merge tag 'iio-for-5.8c' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next

Jonathan writes:

Third set of IIO new device support, cleanups etc for the 5.8 cycle.

A rather late final set to pick up a couple of new drivers, a bunch
of cleanup and some fixes that can wait for the merge window.

In particularly I'd like to highlight the great core and driver
cleanup work that the Alex and the team at Analog devices are currently
doing.  Should see lots more of that in the next cycle give what is
currently under review.

This pull also has the first few fixes squashing a class of alignment
and small kernel data leak bugs that Lars-Peter Clausen picked up
on in a review.  Quite a few more of those to come.  They've been
there a long time so we aren't rushing the reviews.

New device support
* atlas ezo
  - new driver supporting this range of chemical and similar sensors
    with the odd interface of ascii strings over i2c.
* bma180
  - bma023, bma150 and smb380 support.  Note these are currently also
    supported by a driver in input which we will hopefully remove
    (eventually). There are Kconfig protections to avoid a clash
    in the meantime.
* vcnl3020
  - new driver for this proximity sensor.

Core change
* during buffer updates, change the current state variable before
  we actually call pre and post enable callbacks so drivers can know
  where we are going.  Note this is a precursor to only exposing
  one enable callback to drivers.  The (false) logic behind having two
  such callbacks has long been fixed, but only now is the mess getting
  cleaned up.

Features
* exynos adc.
  - add reporting of channels scale values.

Cleanups and minor fixes.
* core
  - drop now unused attrcount_orig variable.
* ad5360, ad5446, ad5449, ad5755, ad5761, ad5764, ad5380, ad5421,
  ad5592, ad5686 and vf610_dac
  - remove direct use of iio_dev->mlock from all these drivers.
    Its semantics used to be poorly defined, but now it is for core
    use only.  Removing it's use in drivers has been a long process
    of which this is the latest step!
* exynos_adc
  - drop a pointless check on the phy as the driver doesn't access it.
* ping
  - avoid a dance from iio_priv and iio_priv_to_dev back again by
    just passing the iio_dev into the functions.
* pms7003
  - alignment and potential data leak fix.
* sps30
  - alignment bug fix.

* tag 'iio-for-5.8c' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio: (31 commits)
  iio:chemical:pms7003: Fix timestamp alignment and prevent data leak.
  iio:chemical:sps30: Fix timestamp alignment
  iio: adc: stm32-adc: fix a wrong error message when probing interrupts
  iio: light: gp2ap002: Take runtime PM reference on light read
  iio: proximity: ping: pass reference to IIO device as param to ping_read()
  iio: dac: ad5592r-base: Replace indio_dev->mlock with own device lock
  iio: proximity: Add driver support for vcnl3020 proximity sensor
  dt-bindings: proximity: provide vcnl3020 device tree binding document
  iio: buffer: remove attrcount_orig var from sysfs creation
  iio: chemical: add atlas-ezo-sensor initial support
  dt-bindings: iio: chemical: add CO2 EZO module documentation
  iio: adc: exynos: Simplify Exynos7-specific init
  iio: adc: Add scaling support to exynos adc driver
  iio: __iio_update_buffers: Update mode before preenable/after postdisable
  iio: dac: vf610_dac: Replace indio_dev->mlock with own device lock
  iio: dac: ad5686: Replace indio_dev->mlock with own device lock
  iio: dac: ad5421: Replace indio_dev->mlock with own device lock
  iio: dac: ad5380: Replace indio_dev->mlock with own device lock
  iio: dac: ad5764: Replace indio_dev->mlock with own device lock
  iio: dac: ad5761: Replace indio_dev->mlock with own device lock
  ...