tree e2dbc92c1f75633e5cfe4a68845be8f56572fef4
parent 97b0b6ca4c0f0f964d3c6918301ca45353ef8bc5
parent e0203255415844d73b5f4bec9bc72903c8e49d8d
author Greg Kroah-Hartman <gregkh@linuxfoundation.org> 1382907774 -0700
committer Greg Kroah-Hartman <gregkh@linuxfoundation.org> 1382907774 -0700
mergetag object e0203255415844d73b5f4bec9bc72903c8e49d8d
 type commit
 tag iio-for-3.13e
 tagger Jonathan Cameron <jic23@kernel.org> 1382900509 +0000
 
 Fifth round of IIO new drivers, cleanups and functionality for the 3.13 cycle.
 
 New Driver
 * Freescale mag3110 magnetometer driver.
 
 New functionality
 * Add LPS001WP support to the ST pressure driver.
 * Allow the max1363 driver to use only smbus functions for 8 bit devices. This
   allows the driver to be used when more extensive i2c support is not
   available.
 
 Cleanups
 * Fix incorrect description of unit conversions in ak8975.
 * Switch to pr_err in industrialio-core.c instead of direct printk calls.
 * Some simple redundant error handling removal patches.
 * Trivial warning suppression by adding brackets to a sizeof call.
 * Drop redundant of_match_ptr casts in drivers that are dependent on
   OF supporting being present.  The only purpose of the of_match_ptr
   wrapper was to make stubbing out of the relevant structures trivial.
 
 Fixes
 * Make MXS_LRADC depend on INPUT to avoid compile failures. This fixes an
   issue introduced in the previous pull in this cycle.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.22 (GNU/Linux)
 
 iQIcBAABAgAGBQJSbWN/AAoJEFSFNJnE9BaIlVgP/2Tq5rfAfM3ErvHY5GMuSiRi
 VTMntdvQ4YVqMln8ZZy70p5mAeLtI84Q5d4/qBihPNiBrDT7YMr0CoSiOv+JaJxc
 Nn4cjMGV8Y7TokH6gXD96Ye8AvS1nnxgytJLBbELOMvBsm5yORQKYMjCqBFHV2Ka
 4BoLCKmX9HeISDcJvPB3B+/rSThzJnzBo10bv+7Uv9HM90WskBtR3xjQVpr+RV1L
 VTfELYOiTfaPMt57hDct5V7G6hsBMvIZqHqC9yq3Q+IesJE0euYdSpqRV9EznJv7
 EcmJL6S5Pkzds3PU2bnjqUQWb1BRwwVEpwkoWUzJ/5kYmgmo1vCQOW2Tr6s39JSy
 GcOEBBvruVCf1e9DuJYQYx25f04ceE52XuS3f6Q90W4UsDXFO+PphEf5dapE/ca8
 3+71tnZeb/VBHyZ7Oor43jkGVhsQs5+rIJpcN5UFV2MKX9hwnTvdA2AgxdqM5Bzt
 a5KVWPs5OUHNJKNw9Cu0F17Vzdlqh+2ac6gCIIv1TGltJ8GSRIfsIRJ56lRUVyUP
 ZGssnvbTLzq+ZdzaMTgDtJdz9CNOr9yQqQEZ2rFE9gASI8/Lw/EGNDVjK+vpNst8
 57IS1H0RO//I96WB0U8Ni0EdLlgsdGISTHkspj/JMNMcSisS94+tuK1rHHAw/j83
 2AxEhNOQewA/6ZRT329X
 =GCqU
 -----END PGP SIGNATURE-----

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

Jonathan writes:

Fifth round of IIO new drivers, cleanups and functionality for the 3.13 cycle.

New Driver
* Freescale mag3110 magnetometer driver.

New functionality
* Add LPS001WP support to the ST pressure driver.
* Allow the max1363 driver to use only smbus functions for 8 bit devices. This
  allows the driver to be used when more extensive i2c support is not
  available.

Cleanups
* Fix incorrect description of unit conversions in ak8975.
* Switch to pr_err in industrialio-core.c instead of direct printk calls.
* Some simple redundant error handling removal patches.
* Trivial warning suppression by adding brackets to a sizeof call.
* Drop redundant of_match_ptr casts in drivers that are dependent on
  OF supporting being present.  The only purpose of the of_match_ptr
  wrapper was to make stubbing out of the relevant structures trivial.

Fixes
* Make MXS_LRADC depend on INPUT to avoid compile failures. This fixes an
  issue introduced in the previous pull in this cycle.
