Headset: Ability to hang-up a call from a wired audio headset

Address OPO_52.
The KEY_MEDIA and KEY_VOLUMEUP are mapped to multiple buttons.
That will confuse the input class driver when one button is
pressed while others are released. Fuse all buttons with same
function to one will fix the problem.

Change-Id: Ife63602e68d0fad2813821f0c7e0b6d78cc5d878
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
ASoC: wcd9xxx: Set chopper settings for UHQA mode

UHQA (Ultra High Quality Audio) requires chopper to set the
frequency to the actual frequency. Change enables chopper
to set the frequency to half for all audio streams
with different sampling rates and 24-bits per sample
other than UHQA mode.

CRs-Fixed: 722714
Change-Id: I7dbf2629c37f0139af67c8491a49197bb85cd315
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
ASoC: msm: qdsp6v2: Fix for cmd status overwrite

There is a race condition between offload callback thread
and HAL thread which can cause an eos ack notification to
be overwritten by a stop command request. Fix this by
using separate status vars for commands originating from
different thread contexts

Change-Id: I87dc0e34f4c50d48a25f4d7eaccd876b2ae827f0
Signed-off-by: Haynes Mathew George <hgeorge@codeaurora.org>
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
msm8974: Stop breaking the whole system

 * Deep breath............

   .....

 * Carveout allocations must be inside a memory { } stanza.

Change-Id: Ica240acec74acfd2180182d7a2725889452af5f6
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
Squash 'enhance power efficiency' patches

Series of patches from NVIDIA on some critical blocking
code paths to allow the CPU to relax instead of busy spinning
thus lowering the load_average and lowering power consumption.

Signed-off-by: Sumit Singh <sumsingh@nvidia.com>
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
x9076: Disable CABC when brightness is over 225

* Same logic as the non-QHD panels

Change-Id: I2edb0f4607bc2b03587ef980acebc2399f671702
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
cpufreq: cpu-boost: we can hit a small performance loss by not queuing input works less than 150ms apart when our default input work duration is only 40ms, so use that 40ms as a magic value instead of the 150ms minimum interval.

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
msm8974: oppo: Enable display partial update feature

 * Need to set the proper alignment and fix userspace parsing of
   panel attributes to get this working.
 * Enable for both JDI and Truly variants to save power.

Change-Id: I3c528c5c59029e500856979a3208d2fb8f039fa8

Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
msm8974: Fix a screen corruption issue

 * Diogo noticed that Facebook's popups were leaving artifacts
   when you moved them around.
 * Adjust the partial-update ROI alignment to compensate for
   this case.

Change-Id: I2f57b0b17596dabdae89b173e0b932959ceb1db4
Signed-off-by: franciscofranco <franciscofranco.1990@gmail.com>
Revert "msm8974: Fix a screen corruption issue"

This reverts commit 9b6a9e84fbaf77a709b7591535b550c0bc577dd8.
Revert "msm8974: oppo: Enable display partial update feature"

This reverts commit 6b192ba3c09c719ca4278c70424bae28987c023a.
def: Add xbox controller support as module
namespace: Restrict slave mountspace so Dalvik apps can mount system-wide volumes (Variant 2)

--> version without remounting on /mnt/shell/emulated !!!

Android 4.2 implements multi-user storage using per-process mount
namespaces.  Everything under "/" (the entire filesystem hierarchy) is
marked as a recursive-slave mountspace for all zygote instances.  This is
done so that user-storage sandbox mounts under /storage/emulated are hidden
from other apps and users.

Unfortunately this means that any Dalvik app (actually, any program whose
clone/fork ancestry includes a Dalvik zygote, which is everything except
services spawned directly from init) cannot mount system-wide volumes.
Thus, apps like CifsManager are effectively broken in Android 4.2, since
its cifs mounts are only visible to the CifsManager app itself.  All other
apps see empty mountpoints instead of the mounted volume.  Furthermore,
Linux provides no provision for a process to "escape" a recursive-slave
mountspace in versions prior to Linux 3.8 (setns syscall).

Here, we restrict rootfs-slave calls to /storage (and, due to a possible
kernel bug, /mnt/shell/emulated) so that Dalvik apps can mount system-wide
volumes elsewhere (with appropriate permission, as in earlier versions of
Android), while retaining full multi-user storage compatibility.  It is
made available as a kernel-based workaround for instances where libdvm can
not be modified.

This change requires that a tmpfs volume is mounted as /storage in init.rc.
If this volume is unavailable, then we falls back to the previous behavior
of marking the entire filesystem hierarchy as slave.

*** Do not commit to CyanogenMod Project kernels, as a similar workaround
    for this problem is patched in Zygote/Dalvik/libdvm instead.  ***
def: fs update
fs: Add exFat support version 1.2.7 (Samsung OSRC)
fs: Add exFat support version 1.2.9 (kitkat source drop)
random: increase entropy levels (both read and write)
def: add exfat support
USB: gadget: mtp: Fix hang in ioctl(MTP_RECEIVE_FILE) for WritePartialObject

In receive_file_work, we now queue reads with length rounded up to
max packet size rather than mtp_rx_req_len.
Otherwise the read request will never complete.

Signed-off-by: Mike Lockwood <lockwood@google.com>
build: update script