tree f8099e682afb9ef30d3770700c28b8cc8a042711
parent 4a226ec97d797f4be486aab93458fc56a7d4de8c
parent d0ab92d63cd6df4c47d93940bd5e4e7737fa4909
author Mark Brown <broonie@linaro.org> 1407166265 +0100
committer Mark Brown <broonie@linaro.org> 1407166265 +0100
mergetag object d0ab92d63cd6df4c47d93940bd5e4e7737fa4909
 type commit
 tag asoc-v3.16-rc5
 tagger Mark Brown <broonie@linaro.org> 1405986189 +0100
 
 ASoC: Fixes for v3.16
 
 A bigger batch of changes than I would like as I didn't send any for a
 few weeks without noticing how many had built up.  They are almost all
 driver specific though, larger changes are:
 
  - Fixes to the newly added Baytrail/MAX98090 which look like some QA
    was missed on the microphone detection.
  - Deletion of some erroniously listed audio formats for Haswell.
  - Fix debugfs creation in the core so that we don't try to generate
    multiple directories with the same name, relatively large textually
    but simple to inspect by eye and test.
  - A couple of bugfixes for the rcar driver one of which which involves
    a bit of code motion to move initailisation of some hardware out of
    common paths into device specific ones.
  - Ensure both channels are powered up for mono outputs on Arizona
    devices, involving some simple data tables listing the outputs and a
    loop over them.
  - A couple of fixes to save and restore information on suspended and
    idle Samsung I2S controllers.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJTzafVAAoJELSic+t+oim9Vc8P/i3uOg6gc29twadHjPRxAQtH
 SYoL54ZB8Uu1yhODkKY3OoWNTGLT0RnCLnvtV4n7nGEAYLNcVmMFk8bHdrAocK0v
 2dfoo3bBgvnHsqDr2FO1c/qAXJ5UtQcIsib1lSynsgTOQSidio19yhJ6AE+wbLDQ
 WkfSuM2uqDI0SB3FYLvMYlV23j3mO/cVeYAa+fnjNJ769NijXGF9PJTals8XMYXi
 spvIJIjt8Z0J/WYKEtOx8zTVGFYlJ2hImWIm2Zbph1MlwEcclc1kcY/3xpMz8Rug
 fBb/h+aVkolV5I9uLOl+woGXZyzZbP4ConOnUWtyDn8kKmQx/TBybl4ZdD1ji8Dx
 VEvVRPAjnhb4y4ENSY1XTFGqrPHDCBp2WyR2X2Gb12hFjMQIceZwZ1wTfXMNALFN
 JSBkNjlxZf8GliGT5MUlqnfjzYLnlHcDW1EQLJLwrqga3lofvJIlqsI2hwoEC2CO
 9kHxJhJbwpkN8AArHT+Sgpds3EuIVTXlhdPUIvrlJvn8Xw0CQ8YTvT7R/dIna/NK
 44shkS6YXbWWSstaqAonl30ntiMVaRO97XZsrTUww+YAHkAZkNoCQMKf1pfHSyfN
 dKj3XAUe0x9daI/oar4S984FlQR24pdhw02B8eL1jNXFpn0cLKBCHaWogV8V/jMy
 8ioU3Qj7YPIlXI2haDZQ
 =aqRS
 -----END PGP SIGNATURE-----

Merge tag 'asoc-v3.16-rc5' into asoc-linus

ASoC: Fixes for v3.16

A bigger batch of changes than I would like as I didn't send any for a
few weeks without noticing how many had built up.  They are almost all
driver specific though, larger changes are:

 - Fixes to the newly added Baytrail/MAX98090 which look like some QA
   was missed on the microphone detection.
 - Deletion of some erroniously listed audio formats for Haswell.
 - Fix debugfs creation in the core so that we don't try to generate
   multiple directories with the same name, relatively large textually
   but simple to inspect by eye and test.
 - A couple of bugfixes for the rcar driver one of which which involves
   a bit of code motion to move initailisation of some hardware out of
   common paths into device specific ones.
 - Ensure both channels are powered up for mono outputs on Arizona
   devices, involving some simple data tables listing the outputs and a
   loop over them.
 - A couple of fixes to save and restore information on suspended and
   idle Samsung I2S controllers.

# gpg: Signature made Tue 22 Jul 2014 00:52:53 BST using RSA key ID 7EA229BD
# gpg: Good signature from "Mark Brown <broonie@sirena.org.uk>"
# gpg:                 aka "Mark Brown <broonie@debian.org>"
# gpg:                 aka "Mark Brown <broonie@kernel.org>"
# gpg:                 aka "Mark Brown <broonie@tardis.ed.ac.uk>"
# gpg:                 aka "Mark Brown <broonie@linaro.org>"
# gpg:                 aka "Mark Brown <Mark.Brown@linaro.org>"
