audio/msm8660 : Implement low power audio in Audio HAL

Implement AudioSessionOutLPA for low power audio

(cherry picked from commit 7d4fa69ebba9353081a90dee5f8f405f9b97e86b)

Change-Id: Ic0698913a08e8f1b95c6de66a6b8208b8bf3b8d9
audio/msm8660: Enable VOIP calls

(cherry picked from commit 77181488d93f4de9dda4db2f98b3abb4fa4c6151)

Change-Id: I7ab64190f88eb4d1f428799dbff6cbe0342231ae
audio/msm8660: Fix to use low power audio session for MP3 and AAC clips

- MP3 and AAC files are failed to play through low power audio.
- Due to incorrect check, audio session for low power audio is not
created and failed to play the clips.
- Added proper check to create audio session for low power audio clips.

(cherry picked from commit 24687411e6d9ee0aa8a996d7e6389faa5ece44d3)

Change-Id: I9e8f4647fa2de1e2cb586b90995740dd72ef04be
audio/msm8660: Add ANC headset support

- Add ANC headset support in policy manager
- Add ANC device profile

(cherry picked from commit 9bd64ad6f3de9ddb1002971af5208b1c23c05469)

Change-Id: I60205237e1cde3bae5eb34a7ff7ee058fa89cc58
audio/msm8660: Fix for native crash during LPA swith to BT.

- During swith the Reset() fruntion of AudioSessionOutLPA is getting
  called twice this is resulting in NULL pointer dereference.
- Fix is to avoid calling reset twice, it will get called for
  AudioSessionOutLPA::stop() and that should be enough, also
  add a check to avoid NULL pointer de-refrence.

(cherry picked from commit 7e511659ce90138b880475b4fd8ff20dc24ffa2e)

Change-Id: I054101a3cb322d71c96a496e9f45459fc025683f
audio/msm8660: Fix for LPA playback stops  when suspend happens

-On suspend, LPA playback stops
-Suspend event handling stops the LPA driver
-Ignore suspend event when LPA playback is not pause.

(cherry picked from commit c11df1d6bb4825437e856441f43e4ab1d4f39cac)

Change-Id: I9db361989c34bc025e68a5db372f211120830777
audio/msm8660: Add FM RX and RX A2DP devices to enable FM recording

(cherry picked from commit 86c84f278f0d10eb05ab37d7168ba937c0d3acb2)

Conflicts:

	msm8660/audio_policy.conf

Change-Id: Ic559025187a381a62075e04921681acc8e3be914
audio/msm8660: Fix audio routing issue during cam corder

- After cam corder recording, voice call is not routing to
  wired headset even if it is connected.
- When cam corder recording starts device switch to handset,
  and when it stops also remaining on same device, because
  active device is not updated based on policy after cam corder
  stops recording.
- Update the active device based on policy after cam corder
  recording and switch to higher priority device if available.

CRs-Fixed: 398301
(cherry picked from commit ad59eae61b2c3a5d98416d7164923651b52bdb7e)

Change-Id: If9c78942cd7fe473366e09b73030ae3a6e208335