tree 6d4fd5485c5919fd3ce96bd35055d2f07c10f3cf
parent cd3de83f147601356395b57a8673e9c5ff1e59d1
parent baa3c65298c089a9014b4e523a14ec2885cca1bc
author Greg Kroah-Hartman <gregkh@linuxfoundation.org> 1404859425 -0700
committer Greg Kroah-Hartman <gregkh@linuxfoundation.org> 1404859425 -0700
mergetag object baa3c65298c089a9014b4e523a14ec2885cca1bc
 type commit
 tag iio-fixes-for-3.16c
 tagger Jonathan Cameron <jic23@kernel.org> 1404851342 +0100
 
 Third round of iio fixes for the 3.16 cycle.
 
 * Lots of hid sensors component drivers had a bug due to a local variable
   whose name suggested it was returned from the read_raw function not
   infact being returned (ret vs ret_type).  Fixed and unused ret removed.
 * Block a possible race condition in tcs3472 by locking around some
   dependant i2c messages.
 * Fix bug in the am335x driver fifo setup that occurs if the final
   channel enabled takes certain values.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABAgAGBQJTvFSjAAoJEFSFNJnE9BaI+vAP/RKcPm9BiTV84cQDvMnxt5ks
 9Om08nBAobg/nv2K55yq6A6NslXiIQaSI8dLbGtPHfy2U1rGVnr1eDVFnjPZOfVN
 Jvg+RF6LZPoNrr5G4NxFFsRbs2wnWLWnPrJ45vJ9KzYzolV2iVHOTrxnZE5Z2Ry0
 dhm5B5sT2OzdPfloV+VeAtzfgqZs/A3aopRMrQ02v+xAI3IXiRa3A1axgpFjvw7u
 ZAeubLw2+FVFJFcSAheop/3FKp0LLxTJ7a88IvdtZ7cb/8rSUrIOLlIQ+Al1QoaU
 lOnxd8la6tpr9IWkpy3ahb6KZHtlhjg1fofCrk+DiMyGD9iudLan0CQCywttesUK
 ClA/nn9mYCdfE/9woNJjs8uGM1jIiKohrT8PZbPwWGk81T4kD3YzeonGSmFypWiX
 sAuoz9l/Gvfy2tLhhiwvCu15tW9ttBkKor2s49Q/uuLWjfFAsJCZXTWLBVDLxzqh
 BFtrLn4WLNm51NPqVaP4UwvSSPGQaNYr6mqnWQckMpjeS8sATezvH2I+frtqKqld
 8SiklAr2piBFj3edGXsTBji4XdsmDhX0oUPVTBuVv13GykC/2Q9I3v3aMTTEKcET
 CFswo3fTwYYSiTpvGh+JcmDeSEpPIOuxxv5gKpI/Pz4R9wbUPfa9dGw+ddA4GsKs
 vQqwzzoinkR/0vJOetSI
 =6qkW
 -----END PGP SIGNATURE-----

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

Jonathan writes:

Third round of iio fixes for the 3.16 cycle.

* Lots of hid sensors component drivers had a bug due to a local variable
  whose name suggested it was returned from the read_raw function not
  infact being returned (ret vs ret_type).  Fixed and unused ret removed.
* Block a possible race condition in tcs3472 by locking around some
  dependant i2c messages.
* Fix bug in the am335x driver fifo setup that occurs if the final
  channel enabled takes certain values.
