FM Radio: Add support for FM Radio in Android

Creating interface and framework for using FM Radio
RX and TX from different vendors.

Change-Id: I1a71aed01bfffdddfabf1cdfbfa3707cb1ed016b
Signed-off-by: Benn Porscke <benn.porscke@stericsson.com>

Conflicts:
	include/system/audio.h
fmradio: cleanup QCOM_HARDWARE/STE_FM defs and ifdef

Change-Id: I00b5e6536511b3bedee6105bf010ee2b5f2e36ac
qcom-fm: audio: Add support for FM feature

-Define audio stream for FM
-Define audio source for FM RX and FM RX A2DP

Change-Id: If24e4c32916f6614e3367b4c9f2cd828562e0347

Conflicts:
	include/system/audio.h
system/core: New stream type and flag for incall music delivery

- Add new stream type and flag for incall music delivery

Change-Id: I54d0d820d2dbb888d2e0cebdca63be2856eb00d8
system/core: Add tunnel format frame size

Add tunnel mode formats frame sizes to audio.h. This ensures frame
size definition in one place.

Change-Id: Ia01cb4cba003e538a53aaa18330ef860367859c1

Conflicts:
	include/system/audio.h
audio: Add support tunnel mode recording

Support for tunnel recording

Change-Id: I8e4a4ce4cde23296beb783c7d678db1fa8936af1
audio: add EVRCWB EVRCB to supported audio formats

 compressed format should also include EVRCWB and EVRCB

 CRs-Fixed: 516138

Change-Id: I64f40d3380cb4fa055e0c3d79db3acf57929405c
system/core: Add support for EVRCNW audio format

This change is needed to support EVRCNW audio format.

Change-Id: I161c2c24ca764ed291f59d17d0a2be443818a7aa
Fix audio flags ifdeffing for qcom

Change-Id: I8183eaabe9ca9951f06256dfc761617f7c38b3d4

Conflicts:
	include/system/audio.h
Revert "qcom-fm: audio: Add support for FM feature"

This reverts commit efa61acad6d546bac3f4886d38ff932eda4807a2.

Change-Id: I1c12a4ffb4ffdefe82b1c45fefa27ef079c71ac2
Revert "fmradio: cleanup QCOM_HARDWARE/STE_FM defs and ifdef"

This reverts commit c88de9fab033c4428f38a2be50ddb97eea66b8b9.

Change-Id: Iaf802c5af7256068a7d80cda53afca3b467748a6
Revert "FM Radio: Add support for FM Radio in Android"

This reverts commit 1e07014af2319f08c128c7702251c42e71742edb.

Change-Id: Ife5d06b4b4d65635d8c0d4d191392eb55f313243
system/core: Add MSM specific formats, devices and channels.

- Add support for MSM formats, devices and channels

Change-Id: I0f613e25ae7e5bafa126ab582551807711ab9db6
(cherry picked from commit 3535a5eafaa700ae58d44c43c4491f3fbb90e060)
(cherry picked from commit d725c0473b0c7f51d157b8722131ed7b45f878d7)
(cherry picked from commit 8d43d24d91e7bcc8daef40c6e9f99fd8dcd23266)
audio: Fix submix output device check.

-AUDIO_DEVICE_IN_FM_RX is incorrectly matched
 with AUDIO_DEVICE_OUT_REMOTE_SUBMIX because
 method audio_is_remote_submix_device is not
 checking for AUDIO_DEVICE_BIT_IN.

-Fix is to add AUDIO_DEVICE_BIT_IN while doing
 the check for AUDIO_DEVICE_OUT_REMOTE_SUBMIX.

CRs-Fixed: 566837

Change-Id: I47ca3bd151da848a444d4bcf83a56e866f20d4f7
(cherry picked from commit f8573b76d6c03e1a9eff34e093056a810f898509)
(cherry picked from commit ae982a488c68e0cd06622e7ee7a31fddb1f4d131)
audio: remove QCOM_FM_ENABLED ifdefs

* CM is using a different ifdef here that enables these by default.

Change-Id: I07249d1c3555446238d846901481b13634967aab
audio: Expose a few things previously under QCOM_HARDWARE

 * Allow everyone to use a few of these device types without
   setting QCOM_HARDWARE. Currently there is qute a mess due
   to the way QC is handling branches, when we figure out a
   good solution this can be reverted.

Change-Id: I75447a21ad1cf26e9683d2eac488a1b1238e5adb
Fix the build for devices with ICS/MR0_AUDIO_BLOB

The previous commit only exposed AUDIO_DEVICE_IN_ANC_HEADSET
and AUDIO_DEVICE_IN_PROXY if not defining this.

Change-Id: I7b644bb022f32fd978a85e003a97cbf27a17c809