Legacy QCOM audio does not support ext functions

Change-Id: Ia8d8062aa011044d93683b884f59432b03822c6a

Author:    Kevin Bruckert <agrabren@yahoo.com>

	modified:   msm8660/AudioHardware.cpp
alsa_sound: Enhance support for dock audio.

- Adds SND_USE_CASE_DEV_DOCK to properly route audio based on
device's alsa use case definitions.
    - Ringtones always play on the device speaker, in case
    you have it docked, but your stereo turned off.
    - All other sounds get routed based on whether the dock
    is the configured output device based on DeviceSettings.

- Uses the new BOARD_HAVE_DOCK_USBAUDIO option to set
DOCK_USBAUDIO for rerouting to new dock use case.

Change-Id: Ib78907e376c852f4d2e30133c6eb34964a15d406
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: I88f9abd07b6f5de04b7ee32b5610946730c55ab9
audio/msm8660: Fix to avoid routing in voice call

-If a device selected for media playback is other than the
current active device selected to route voice call, routing
is switched to that device.
-Avoid routing in such cases if device to route is different from
current device for voice call.

Change-Id: I6d4e7a667b1949a5bc45e19c2f7b3a4555b6bbfe
CRs-Fixed: 397595
audio/msm8660: LPA Audio HAL fixes for suspend and eos issue

-LPA playback reset is not called at end of clip as eos
from HAL doesn't gets generated if last write buffer
size is zero.
Fix this by posting eos to observer if bytes to write is zero.

-After suspend resume, playback of paused lpa clip is not
resumed if tried to play the clip.
Added isDriverStarted variable to maintain states of driver.

-Driver flush is not triggered sometimes during paused state
 and at the end of clips while LPA Player is waiting on fsync.
 This results in fsync to be blocked indefinitely and ANR is
 observed.
 Fix this problem by calling driver flush explicitly and pause
 the session if stream is in paused state

-If last buffer is written immediately after flush the last
 buffer is skipped and eos is triggered. The song doesn't
 switch to next clip because of this problem
 Fix this problem by triggering eos if last buffer is written
 immediately after flush

Change-Id: Id57cf830a411c199e1923f38740bbe0862eab7df
audio/msm8660: Fix the issue of voice call when HDMI connected

- Voice call is not working when HDMI cable is connected.
- When HDMI is connected getDeviceForStrategy is picking
  up HDMI rx as active device, because of this voice call
  is not working.
- Avoid updating the HDMI as active output device, when
  strategy is STRATGY_PHONE.

CRs-Fixed: 384324
(cherry picked from commit 815e0bfe786a4c7fca0bb4880b56519471dde386)

Change-Id: I76cf12ca0449569a83f5188e8b30db08ff86f584
audio/msm8660: Add support for audio effects for LPA clips

Change-Id: I04587005e2ec3b89ce933a607d1603c4766687d0
Merge remote-tracking branch 'cyan/jellybean' into jellybean