hal: Add support for SDA845

Add support for SDA845 with an I2S configuration.

Change-Id: Ic0b087fff02fa65f289b836d4a9f6ebc7a9993a6
diff --git a/hal/msm8974/hw_info.c b/hal/msm8974/hw_info.c
index 4b70fb7..26c92ec 100644
--- a/hal/msm8974/hw_info.c
+++ b/hal/msm8974/hw_info.c
@@ -425,6 +425,20 @@
     ALOGW("%s: Not a msmnile device", __func__);
 }
 
+static void  update_hardware_info_sda845(struct hardware_info *hw_info, const char *snd_card_name)
+{
+    if (!strncmp(snd_card_name, "sda845-tavil-i2s-snd-card", sizeof("sda845-tavil-i2s-snd-card"))) {
+        strlcpy(hw_info->type, " mtp", sizeof(hw_info->type));
+        strlcpy(hw_info->name, "sda845", sizeof(hw_info->name));
+        hw_info->snd_devices = NULL;
+        hw_info->num_snd_devices = 0;
+        hw_info->is_stereo_spkr = false;
+        strlcpy(hw_info->dev_extn, "", sizeof(hw_info->dev_extn));
+    } else {
+        ALOGW("%s: Not a sda845 device", __func__);
+    }
+}
+
 static void  update_hardware_info_sdx(struct hardware_info *hw_info __unused, const char *snd_card_name __unused)
 {
     ALOGW("%s: Not a sdx device", __func__);
@@ -592,6 +606,9 @@
     } else if (strstr(snd_card_name, "pahu")) {
         ALOGV("MSMNILE - variant soundcard");
         update_hardware_info_msmnile(hw_info, snd_card_name);
+    } else if (strstr(snd_card_name, "sda845")) {
+        ALOGV("SDA845 - variant soundcard");
+        update_hardware_info_sda845(hw_info, snd_card_name);
     } else {
         ALOGE("%s: Unsupported target %s:",__func__, snd_card_name);
         free(hw_info);
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 10de9b6..b106ae7 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -1337,7 +1337,9 @@
         !strncmp(snd_card_name, "apq8096-tasha-i2c-snd-card",
                  sizeof("apq8096-tasha-i2c-snd-card")) ||
         !strncmp(snd_card_name, "sdx-tavil-i2s-snd-card",
-                 sizeof("sdx-tavil-i2s-snd-card"))){
+                 sizeof("sdx-tavil-i2s-snd-card")) ||
+        !strncmp(snd_card_name, "sda845-tavil-i2s-snd-card",
+                 sizeof("sda845-tavil-i2s-snd-card"))) {
         plat_data->is_i2s_ext_modem = true;
     }
     ALOGV("%s, is_i2s_ext_modem:%d soundcard name is %s",__func__,
@@ -2299,8 +2301,10 @@
     property_get("ro.baseband", baseband, "");
     if ((!strncmp("apq8084", platform, sizeof("apq8084")) ||
         !strncmp("msm8996", platform, sizeof("msm8996")) ||
-        !strncmp("sdx", platform, sizeof("sdx"))) &&
-        !strncmp("mdm", baseband, (sizeof("mdm")-1))) {
+        !strncmp("sdx", platform, sizeof("sdx")) ||
+        !strncmp("sdm845", platform, sizeof("sdm845"))) &&
+        ( !strncmp("mdm", baseband, (sizeof("mdm")-1)) ||
+          !strncmp("sdx", baseband, (sizeof("sdx")-1)))) {
          my_data->csd = open_csd_client(my_data->is_i2s_ext_modem);
     } else {
          my_data->csd = NULL;