tree e8ca596b9a911221b2afd845bb5d66318fe2b0b3
parent 6d79bd5bb6c79a9dba4842040c9adf39e7806330
parent 4cd140bda6494543f1c1b0ccceceaa44b676eef6
author Greg Kroah-Hartman <gregkh@linuxfoundation.org> 1519117402 +0100
committer Greg Kroah-Hartman <gregkh@linuxfoundation.org> 1519117402 +0100
mergetag object 4cd140bda6494543f1c1b0ccceceaa44b676eef6
 type commit
 tag iio-fixes-for-4.16a
 tagger Jonathan Cameron <Jonathan.Cameron@huawei.com> 1519113363 +0000
 
 First round of IIO fixes for the 4.16 cycle.
 
 One nasty very old crash around polling for buffers that aren't there
 - though that can only cause effects on drivers that support events
 but not buffers.
 
 * buffer / kfifo handling in the core.
   - Check there is a buffer and return 0 from poll directly if there
     isn't.  Poll doesn't make sense in this circumstances, but best to close
     the hole.
 * ad5933
   - Change the marked buffer mode to a software buffer as the meaning of
     the hardware buffer label has long since changed and this uses a front
     end software buffer anyway.
 * ad7192
   - Fix the fact the external clock frequency was only set when using the
     internal clock which was less than helpful.
 * adis_lib
   - Initialize the trigger before requesting the interrupt.  Some newer
     parts can power up with interrupt generation enabled so ordering now
     matters.
 * aspeed-adc
   - Fix an errror handling path as labels and general ordering were wrong.
 * srf08
   - Fix a link error due to undefined devm_iio_triggered_buffer_setup.
 * stm32-adc
   - Fix error handling unwind squence in stm32h7_adc_enable.
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCAAvFiEEbilms4eEBlKRJoGxVIU0mcT0FogFAlqL2AcRHGppYzIzQGtl
 cm5lbC5vcmcACgkQVIU0mcT0Fogr1Q/9GfkUFQ+lpUaPmm+3HP1i5JriI7m/lVBy
 usFSf8NFdFn+V+ynaSwEjonsEETauCnOVeIsdMb2T7TOX/g3Trd8sv8ZwGEUWzMb
 SgNC65PMKJn7mwOpvcCiFKOc9SgF3u8u+WkdWbERWvc5CyCczAQVKuZ0aiaz0/8U
 nIc7Km/HMjyKGhH+BN/XPcppoGDb1p75sdun8oaro9pcitjn6Q3ny/n7toEbtpO+
 rbL+1+hLvGqsYN3AptrjDU//9ZE9w7FEVk45q8soTOtrBNGE+iF+OxXg13jWHIKm
 EgaztyJuNq1aof0h0ZLTZMumhchIodARiAmD39PzpTbdm9aEpgSvHlWHjrnD1OfI
 eSWSa4yQSPrua3rHhDVeecP0lnpWUVk31KGujbNSlSNfzceeT2uzHnODVakPQtlj
 Aa+H6N0M0Cftd8i+cMbHlfHfz2TNQDu3e/DkqQVgp9jB2NkYEU0xdynxbSaIDm/F
 PX9et2YD8+mLLxA1/Xv91J9I++5NANrx4qhcJXBAhvcZi4rkj1PT1sb1THSrOUst
 cnBcDaoRz7KuFIJAXqKnu16mFpyGqAj+iHhhv3SC7pFLxQfuFBsK/8MyMlfRKL5s
 ttSxudwuRH9FBbW6BlnbzaPlGje+DomFFn24qRFRTZlNQkB5XDqW3hqRqF/KRtb1
 +ZbO+sINGqM=
 =x9oo
 -----END PGP SIGNATURE-----

Merge tag 'iio-fixes-for-4.16a' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-linus

Jonathan writes:

First round of IIO fixes for the 4.16 cycle.

One nasty very old crash around polling for buffers that aren't there
- though that can only cause effects on drivers that support events
but not buffers.

* buffer / kfifo handling in the core.
  - Check there is a buffer and return 0 from poll directly if there
    isn't.  Poll doesn't make sense in this circumstances, but best to close
    the hole.
* ad5933
  - Change the marked buffer mode to a software buffer as the meaning of
    the hardware buffer label has long since changed and this uses a front
    end software buffer anyway.
* ad7192
  - Fix the fact the external clock frequency was only set when using the
    internal clock which was less than helpful.
* adis_lib
  - Initialize the trigger before requesting the interrupt.  Some newer
    parts can power up with interrupt generation enabled so ordering now
    matters.
* aspeed-adc
  - Fix an errror handling path as labels and general ordering were wrong.
* srf08
  - Fix a link error due to undefined devm_iio_triggered_buffer_setup.
* stm32-adc
  - Fix error handling unwind squence in stm32h7_adc_enable.
