Initial commit for new target - msmfalcon

Add intial commit to support build for msmfalcon.

CRs-Fixed: 1044042
Change-Id: Iac2f3e1d53c03864098cb7e074d4e7e8a2332290
diff --git a/hal/Android.mk b/hal/Android.mk
index cf8533c..83787e3 100644
--- a/hal/Android.mk
+++ b/hal/Android.mk
@@ -35,13 +35,16 @@
 endif
 endif
 
-ifneq ($(filter msm8916 msm8909 msm8952 msm8937 thorium msm8953 msmgold,$(TARGET_BOARD_PLATFORM)),)
+ifneq ($(filter msm8916 msm8909 msm8952 msm8937 thorium msm8953 msmgold msmfalcon,$(TARGET_BOARD_PLATFORM)),)
   AUDIO_PLATFORM = msm8916
   MULTIPLE_HW_VARIANTS_ENABLED := true
   LOCAL_CFLAGS := -DPLATFORM_MSM8916
 ifneq ($(filter msm8909,$(TARGET_BOARD_PLATFORM)),)
   LOCAL_CFLAGS := -DPLATFORM_MSM8909
 endif
+ifneq ($(filter msmfalcon,$(TARGET_BOARD_PLATFORM)),)
+  LOCAL_CFLAGS := -DPLATFORM_MSMFALCON
+endif
 endif
 
 LOCAL_SRC_FILES := \
diff --git a/hal/audio_extn/hfp.c b/hal/audio_extn/hfp.c
index 1fba5c6..5a45b80 100644
--- a/hal/audio_extn/hfp.c
+++ b/hal/audio_extn/hfp.c
@@ -49,7 +49,7 @@
 #define HFP_RX_VOLUME     "SEC AUXPCM LOOPBACK Volume"
 #elif defined PLATFORM_MSM8996
 #define HFP_RX_VOLUME     "PRI AUXPCM LOOPBACK Volume"
-#elif defined PLATFORM_MSMCOBALT
+#elif defined (PLATFORM_MSMCOBALT) || defined (PLATFORM_MSMFALCON)
 #define HFP_RX_VOLUME     "SLIMBUS_7 LOOPBACK Volume"
 #else
 #define HFP_RX_VOLUME     "Internal HFP RX Volume"
diff --git a/hal/msm8916/hw_info.c b/hal/msm8916/hw_info.c
index 07a060f..1d10ded 100644
--- a/hal/msm8916/hw_info.c
+++ b/hal/msm8916/hw_info.c
@@ -285,8 +285,20 @@
         hw_info->snd_devices = NULL;
         hw_info->num_snd_devices = 0;
         strlcpy(hw_info->dev_extn, "", sizeof(hw_info->dev_extn));
+    } else if (!strcmp(snd_card_name, "msmfalcon-snd-card-mtp")) {
+        strlcpy(hw_info->type, "", sizeof(hw_info->type));
+        strlcpy(hw_info->name, "msmfalcon", sizeof(hw_info->name));
+        hw_info->snd_devices = NULL;
+        hw_info->num_snd_devices = 0;
+        strlcpy(hw_info->dev_extn, "", sizeof(hw_info->dev_extn));
+    } else if (!strcmp(snd_card_name, "msmfalcon-tasha-snd-card")) {
+        strlcpy(hw_info->type, "", sizeof(hw_info->type));
+        strlcpy(hw_info->name, "msmfalcon", sizeof(hw_info->name));
+        hw_info->snd_devices = NULL;
+        hw_info->num_snd_devices = 0;
+        strlcpy(hw_info->dev_extn, "", sizeof(hw_info->dev_extn));
     } else {
-        ALOGW("%s: Not an 8x16/8909/8917/8937/8939/8940/8952/8953 device", __func__);
+        ALOGW("%s: Not an 8x16/8909/8917/8937/8939/8940/8952/8953/falcon device", __func__);
     }
 
     hw_info->is_wsa_combo_suppported = false;
@@ -306,7 +318,7 @@
         strstr(snd_card_name, "msm8909") || strstr(snd_card_name, "msm8952") ||
         strstr(snd_card_name, "msm8976") || strstr(snd_card_name, "msm8953") ||
         strstr(snd_card_name, "msm8937") || strstr(snd_card_name, "msm8917") ||
-        strstr(snd_card_name, "msm8940") ) {
+        strstr(snd_card_name, "msm8940") || strstr(snd_card_name, "msmfalcon")) {
         ALOGV("8x16 - variant soundcard");
         update_hardware_info_8x16(hw_info, snd_card_name);
     } else {
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 40f26de..82f1934 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -819,7 +819,9 @@
          !strncmp(snd_card_name, "msm8953-tasha-snd-card",
                   sizeof("msm8953-tasha-snd-card")) ||
          !strncmp(snd_card_name, "msm8953-tashalite-snd-card",
-                  sizeof("msm8953-tashalite-snd-card")))
+                  sizeof("msm8953-tashalite-snd-card")) ||
+         !strncmp(snd_card_name, "msmfalcon-tasha-snd-card",
+                  sizeof("msmfalcon-tasha-snd-card")))
      {
          ALOGI("%s: snd_card_name: %s",__func__,snd_card_name);
          is_external_codec = true;
@@ -1107,6 +1109,13 @@
         msm_device_to_be_id = msm_device_to_be_id_internal_codec;
         msm_be_id_array_len  =
             sizeof(msm_device_to_be_id_internal_codec) / sizeof(msm_device_to_be_id_internal_codec[0]);
+    } else if (!strncmp(snd_card_name, "msmfalcon-tasha-snd-card",
+                 sizeof("msmfalcon-tasha-snd-card"))) {
+        strlcpy(mixer_xml_path, MIXER_XML_PATH_WCD9335,
+                sizeof(MIXER_XML_PATH_WCD9335));
+        msm_device_to_be_id = msm_device_to_be_id_external_codec;
+        msm_be_id_array_len  =
+            sizeof(msm_device_to_be_id_external_codec) / sizeof(msm_device_to_be_id_external_codec[0]);
     } else {
         strlcpy(mixer_xml_path, MIXER_XML_PATH,
                 sizeof(MIXER_XML_PATH));
diff --git a/hal/msm8916/platform.h b/hal/msm8916/platform.h
index 9c2be1a..7c877b5 100644
--- a/hal/msm8916/platform.h
+++ b/hal/msm8916/platform.h
@@ -289,7 +289,11 @@
 #define COMPRESS_VOIP_CALL_PCM_DEVICE 3
 
 /* Define macro for Internal FM volume mixer */
+#ifdef PLATFORM_MSMFALCON
+#define FM_RX_VOLUME "SLIMBUS_8 LOOPBACK Volume"
+#else
 #define FM_RX_VOLUME "Internal FM RX Volume"
+#endif
 
 #define LOWLATENCY_PCM_DEVICE 12
 #define EC_REF_RX "I2S_RX"