msm: Fix for audio loss during WLAN & LTE call handover

Current APR implementation doesn't support session based
multiple service registrations. The apr_deregister()
function sets the destination and client IDs to zero, if
deregister is called for a single service instance.
Fix this by registering for dummy services in voice SVC
driver.

Signed-off-by: Karthik Reddy Katta <a_katta@codeaurora.org>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
msm: vidc: flush queued work during device suspend

This change flushes any queued work related to power collapse,
once the device is power suspended.
There are applications which do not destroy video instance
on suspending the device. For such applications, if the device
is power suspended, video driver does not prepare venus for
power collapse.
Considerable power saving is observed by power collapsing
venus before the device goes in suspend state.

Signed-off-by: Vikash Garodia <vgarodia@codeaurora.org>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
ASoC: msm: Disable async mode for AFE proxy

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
lowmemorykiller: Account for highmem during kswapd reclaim

Currently most memory reclaim is done through kswapd.
Since kswapd uses a gfp mask of GFP_KERNEL, and because
the lowmemorykiller is zone aware, the lowmemorykiller will
ignore highmem most of the time.
This results in the lowmemorykiller being overly aggressive.

The fix to this issue is to allow the lowmemorykiller to
count highmem when being called by the kswapd if the lowmem
watermarks are satisfied.

Signed-off-by: Liam Mark <lmark@codeaurora.org>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>