git cherry-pick 0c67db4dd7884bad37edeaa7365f19de2366efee
wm8994_voodoo: remove delay on wm8994_write and reapply settings on WM8994_POWER_MANAGEMENT_1 change
sound-voodoo: Altered jack detection and sound fixes

Add T0 and M3 device conditionals to disable the call detection as we use a different register path over M0.
Use the android_switch mechanism for the jack detection as it is more reliable.
sound-soc: Boeffla sound engine
sound-soc: Custom sound control
sound-control: Fix band input and circumvent call detection
sound-control: Throw out several state variables, add new detection methods

Camera microphone levels with help of new MHS.
Further code cleanup and refactoring.
sound-control: Equalizer, mono fixes and branch prediction
Boeffla-Sound: Engine 1.6.0
Boeffla Sound: FM radio not available with LTE models

set #ifdef conditional to disable unused logic

Credits to faux123 for the proper exclusions using #ifdefs instead of just removing the FM radio related code
Add MHS, tool for simple media handling status reporting

Adds a small tool for reporting the status of, until now, the state of the MFC
hardware decoder and the camera, for use in other drivers.

To be expanded in the future with a proper notifier block architecture for
clean registration and callbacks to subscribing members.
 rwsem: steal writing sem for better performance

Commit 5a50508 changes to rwsem from mutex, caused aim7 fork_test
performance to dropped 50%. Yuanhan liu did an analysis, found it was
caused by strict sequential writing. Ingo suggest stealing sem writing from
front task in wait queue. https://lkml.org/lkml/2013/1/29/84

So does this patch.
In this patch, I just allow write stealing to happen when the first waiter
is also writer. The performance fully is now fully recovered.

Reported-by: lkp@linux.intel.com
Cc: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Alex Shi <alex.shi@intel.com>