tree 248a625b23335acbd5ca4b55eb136fe0dc8ba0aa
parent 6a5971d8fea1f4a8c33dfe0cec6a1c490f0c9cde
parent 7bcb57cde66c19df378f3468ea342166a8a4504d
author Linus Torvalds <torvalds@linux-foundation.org> 1355263184 -0800
committer Linus Torvalds <torvalds@linux-foundation.org> 1355263184 -0800
mergetag object 7bcb57cde66c19df378f3468ea342166a8a4504d
 type commit
 tag staging-3.8-rc1
 tagger Greg Kroah-Hartman <gregkh@linuxfoundation.org> 1355253797 -0800
 
 Staging driver tree merge for 3.8-rc1
 
 Here's the big staging tree merge for 3.8-rc1
 
 There's a lot of patches in here, the majority being the comedi rework/cleanup
 that has been ongoing and is causing a huge reduction in overall code size,
 which is amazing to watch.  We also removed some older drivers (telephony and
 rts_pstor), and added a new one (fwserial which also came in through the tty
 tree due to tty api changes, take that one if you get merge conflicts.)
 
 The iio and ipack drivers are moving out of the staging area into their
 own part of the kernel as they have been cleaned up sufficiently and are
 working well.
 
 Overall, again a reduction of code:
  768 files changed, 31887 insertions(+), 82166 deletions(-)
 
 All of this has been in the linux-next tree for a while.
 
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.19 (GNU/Linux)
 
 iEYEABECAAYFAlDHiRkACgkQMUfUDdst+ykyCgCglEbrWzevtCOl+C2KAmIR+Jnt
 qUsAoLOXYeQq1aadxzqh3tK+ytlMrWd1
 =Ync9
 -----END PGP SIGNATURE-----

Merge tag 'staging-3.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging

Pull staging driver tree merge from Greg Kroah-Hartman:
 "Here's the big staging tree merge for 3.8-rc1

  There's a lot of patches in here, the majority being the comedi
  rework/cleanup that has been ongoing and is causing a huge reduction
  in overall code size, which is amazing to watch.  We also removed some
  older drivers (telephony and rts_pstor), and added a new one (fwserial
  which also came in through the tty tree due to tty api changes, take
  that one if you get merge conflicts.)

  The iio and ipack drivers are moving out of the staging area into
  their own part of the kernel as they have been cleaned up sufficiently
  and are working well.

  Overall, again a reduction of code:
   768 files changed, 31887 insertions(+), 82166 deletions(-)

  All of this has been in the linux-next tree for a while.

  Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>"

* tag 'staging-3.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (1298 commits)
  iio: imu: adis16480: remove duplicated include from adis16480.c
  iio: gyro: adis16136: remove duplicated include from adis16136.c
  iio:imu: adis16480: show_firmware() buffer too small
  iio:gyro: adis16136: divide by zero in write_frequency()
  iio: adc: Add Texas Instruments ADC081C021/027 support
  iio:ad7793: Add support for the ad7796 and ad7797
  iio:ad7793: Add support for the ad7798 and ad7799
  staging:iio: Move ad7793 driver out of staging
  staging:iio:ad7793: Implement stricter id checking
  staging:iio:ad7793: Move register definitions from header to source
  staging:iio:ad7793: Rework regulator handling
  staging:iio:ad7793: Rework platform data
  staging:iio:ad7793: Use kstrtol instead of strict_strtol
  staging:iio:ad7793: Use usleep_range instead of msleep
  staging:iio:ad7793: Fix temperature scale
  staging:iio:ad7793: Fix VDD monitor scale
  staging: gdm72xx: unlock on error in init_usb()
  staging: panel: pass correct lengths to keypad_send_key()
  staging: comedi: addi_apci_2032: fix interrupt support
  staging: comedi: addi_apci_2032: move i_APCI2032_ConfigDigitalOutput()
  ...
