am 1536efd3: am 7106b08e: DO NOT MERGE - volume_listener: fix release

* commit '1536efd3864d745782e05aa92ebe48a5c327d79f':
  DO NOT MERGE - volume_listener: fix release
diff --git a/hal/Android.mk b/hal/Android.mk
index 0bb29b5..a51fac7 100644
--- a/hal/Android.mk
+++ b/hal/Android.mk
@@ -64,6 +64,10 @@
     LOCAL_SRC_FILES += audio_extn/hfp.c
 endif
 
+ifeq ($(strip $(AUDIO_FEATURE_SUPPORTED_EXTERNAL_BT)),true)
+    LOCAL_CFLAGS += -DEXTERNAL_BT_SUPPORTED
+endif
+
 ifeq ($(strip $(AUDIO_FEATURE_NO_AUDIO_OUT)),true)
     LOCAL_CFLAGS += -DNO_AUDIO_OUT
 endif
diff --git a/hal/audio_extn/hfp.c b/hal/audio_extn/hfp.c
index a108730..bfeb6e7 100644
--- a/hal/audio_extn/hfp.c
+++ b/hal/audio_extn/hfp.c
@@ -71,7 +71,11 @@
 {
     int32_t vol, ret = 0;
     struct mixer_ctl *ctl;
+#ifdef EXTERNAL_BT_SUPPORTED
+    const char *mixer_ctl_name = "PRI AUXPCM LOOPBACK Volume";
+#else
     const char *mixer_ctl_name = "Internal HFP RX Volume";
+#endif
 
     ALOGV("%s: entry", __func__);
     ALOGD("%s: (%f)\n", __func__, value);
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 6cb46e2..011a6b8 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -29,6 +29,7 @@
 #include <linux/msm_audio.h>
 
 #define MIXER_XML_PATH "/system/etc/mixer_paths.xml"
+#define MIXER_XML_PATH_WCD9330 "/system/etc/mixer_paths_wcd9330.xml"
 #define LIB_ACDB_LOADER "libacdbloader.so"
 #define AUDIO_DATA_BLOCK_MIXER_CTL "HDMI EDID"
 #define CVD_VERSION_MIXER_CTL "CVD Version"
@@ -945,7 +946,15 @@
 
         ALOGD("%s: snd_card_name: %s", __func__, snd_card_name);
 
-        adev->audio_route = audio_route_init(snd_card_num, MIXER_XML_PATH);
+        if (!strncmp(snd_card_name, "msm8226-tomtom-snd-card",
+                     sizeof("msm8226-tomtom-snd-card"))) {
+            ALOGD("%s: Call MIXER_XML_PATH_WCD9330", __func__);
+            adev->audio_route = audio_route_init(snd_card_num,
+                                                 MIXER_XML_PATH_WCD9330);
+        } else {
+            adev->audio_route = audio_route_init(snd_card_num, MIXER_XML_PATH);
+        }
+
         if (!adev->audio_route) {
             ALOGE("%s: Failed to init audio route controls, aborting.", __func__);
             goto init_failed;
diff --git a/hal/msm8974/platform.h b/hal/msm8974/platform.h
index c1f901c..6368af7 100644
--- a/hal/msm8974/platform.h
+++ b/hal/msm8974/platform.h
@@ -203,18 +203,36 @@
 #define LOWLATENCY_PCM_DEVICE 15
 #define VOICE_VSID  0x10C01000
 
+#ifdef PLATFORM_MSM8x26
+#define VOICE_CALL_PCM_DEVICE 2
+#define VOICE2_CALL_PCM_DEVICE 14
+#define VOLTE_CALL_PCM_DEVICE 17
+#define QCHAT_CALL_PCM_DEVICE 18
+#define VOWLAN_CALL_PCM_DEVICE 30
+#elif PLATFORM_MSM8084
+#define VOICE_CALL_PCM_DEVICE 20
+#define VOICE2_CALL_PCM_DEVICE 25
+#define VOLTE_CALL_PCM_DEVICE 21
+#define QCHAT_CALL_PCM_DEVICE 33
+#define VOWLAN_CALL_PCM_DEVICE -1
+#else
 #define VOICE_CALL_PCM_DEVICE 2
 #define VOICE2_CALL_PCM_DEVICE 22
 #define VOLTE_CALL_PCM_DEVICE 14
 #define QCHAT_CALL_PCM_DEVICE 20
 #define VOWLAN_CALL_PCM_DEVICE 36
+#endif
 
 #define AFE_PROXY_PLAYBACK_PCM_DEVICE 7
 #define AFE_PROXY_RECORD_PCM_DEVICE 8
 
 #define HFP_PCM_RX 5
 #ifdef PLATFORM_MSM8x26
-#define HFP_SCO_RX 28
+#ifdef EXTERNAL_BT_SUPPORTED
+#define HFP_SCO_RX 10 // AUXPCM Hostless
+#else
+#define HFP_SCO_RX 28 // INT_HFP_BT Hostless
+#endif
 #define HFP_ASM_RX_TX 29
 #else
 #define HFP_SCO_RX 23