alsa_sound: Make low-latency audio feature optional

 * This requires a baseband update on most devices, so make it optional.

Change-Id: I0be3b6d0c19c26663c9ce8a26d5769a8940b318c
alsa_sound: Fix defaults when low-latency audio is disabled

 * Use original buffer size and playback latencies.

Change-Id: I65b4c80e0ee935ee77de3ef38b66dc5fb7ec4100
audio: add flag to only set min buffersize instead of min and max

Sony MSM8960 devices expect to only get min buffersize instead of
min and max size.

Change-Id: I8e4db2b32592ebe5a2945bf2b3c311f2467f8814
audio: Don't build if TARGET_QCOM_AUDIO_VARIANT is set

 * To allow us to provide the Qualcomm enhanced audio HAL for
   devices that want to use it.

Change-Id: I01f8241eb1137d5937dace32d0859484a3d31fcf
Merge branch 'jb-mr1-release' of https://android.googlesource.com/platform/hardware/qcom/audio into aosp
Merge tag 'android-4.3_r2.1' into cm-10.2

Android 4.3 release 2.1

Conflicts:
	Android.mk

Change-Id: I614e2625c0a791174ea26199dceb635f0a4682d4
Use HEADSET Tx if mic_type isn't analog and Rx device is HEADPHONES

Some devices require a different tx device when in_call and
headphones are inserted. While DMIC Endfire is the correct Tx
device for Earpiece Rx, choosing DMIC Endfire when Rx is
HEADPHONES will kill CSD. This patch will affect devices
without analog microphones, as set by the 'persist.audio.handset.mic'
property.

Change-Id: I109ddfd029bb0696db7dd1cb95eb14b253e04d61
Merge tag 'android-4.4_r1' into cm-11.0

Android 4.4 Release 1.0

Conflicts:
	hal/audio_hw.c
hal: Support for anc/aanc/proxy audio features

Added support for  anc/aanc/proxy audio features

Change-Id: Id6ebdb9094635563cfafce9dc1d3449efe25bda4
hal: Support for usb audio features

Added support for usb audio feature and
related proxy device support

Change-Id: Ia64e9eff20fbbada6f08795686cdbc0ba462bafb
hal: Fix audio playback issue on USB headset

- Start music playback on USB headset. The playback is stopped
  after 3sec.
- A touch tone is played through low latency output path,  while
  selecting the song in the music app. This output goes to standy
  after 3sec. So the disable_snd_device() is called to reduce the
  ref count on usb headset device by 1. At this point the music
  playback (deep-buffer path) is still active. But the current
  implementation has uncondtionally calls usb_stop_playback()
  which results music playback to stop.
- Fix by ensuring the usb_stop_playback is called only when the
  device ref count goes to 0.
- Fix related minor stabilty issues

Change-Id: I979423458738e68da45973751cd918d4c1a924ea
CRs-Fixed: 572048
hal: USB audio support for msm8960

Change-Id: Ib3229c44056daa0bfcbdb6b14d9f93b374951930
Merge tag 'android-4.4.1_r1' into HEAD

Android 4.4.1 Release 1
hal: Fix issues with USB audio after disconnect

 * Stop the USB audio thread when the refcnt goes to zero.
 * Fix tracking of multiple soundcards.

Change-Id: Ia24dbcfcbcc855cde32c57dbbeb6d07af8f4cce8
hal: Correct the multi-channel output usecase selection

Both Multi-channel output on HDMI and Compress offload playback on
HDMI use cases request for a stream with AUDIO_OUTPUT_FLAG_DIRECT.
The current logic would then result selection MULTI_CH usecase.
Fix this by checking for complete match of flags to select the
use case.

Change-Id: I66df94af6c3b837a6c8054282364e1acf78e6e0f
hal: fix channel mask for m-ch offload playback

- Update channel mask with compress parameters for
  compress offload playback on HDMI device

Change-Id: I89263f56923588fcb906facfd4ae9ebf95203743
audio: Re-arrange member var initializations

Rearrange initializations of some stream_out member
variables to prevent possible uninitialized use.

CRs-Fixed: 587676
Change-Id: I7018f38f29a19b130185b285f4acf22219e4228c
hal: Use deep buffer output as primary

- The audio content in video clips, YouTube content, etc
  are being rendered through low latency path as it was
  set as default output profile. This results more power
  consumption for video playback.
- Fix this using deep buffer path as default one and use
  low latency path only for those audio tracks that
  request with AUDIO_OUTPUT_FLAG_FAST.

Change-Id: I52fafa0ec2a312bc4383c813497830e6ded071bc
CRs-Fixed: 570389

hal: Avoid duplicate primary outputs

open_output_stream API expects the default usecase to
be returned if other usecases are unavailable or unusable.
However, the output returned in this default case must be
the default primary if it exists.

 * cyanogen: This behavior is off by default.

Change-Id: Ie5cc53f077358d7039d62b09b29edb58c213bc08
hal: Disable gapless offload playback by default.

-Set the property-audio.offload.gapless.enabled to true to enable
 gapless playback by default.
-Set mixer control to the driver to decide if gapless playback needs
 to be used or not
-If gapless playback is not enabled then partial drain from HAL is
 treated as full drain.

Change-Id: Id7f4967fe528bab9097c3f609058276ec02174e1
hal: set gapless metadata for compress  offload playback

-If any of the  metadata parameters are set from the framework.
 set the gapless metadata to one.

CRs-Fixed: 588353
Change-Id: I66a79d3f64515d108585527496a754c06a441560