Merge "hal: Add support for ferrum(8909) sound cards"
diff --git a/Android.mk b/Android.mk
index 094165e..4216d51 100644
--- a/Android.mk
+++ b/Android.mk
@@ -1,4 +1,4 @@
-ifneq ($(filter mpq8092 msm8960 msm8226 msm8x26 msm8610 msm8974 msm8x74 apq8084 msm8916 msm8994,$(TARGET_BOARD_PLATFORM)),)
+ifneq ($(filter mpq8092 msm8960 msm8226 msm8x26 msm8610 msm8974 msm8x74 apq8084 msm8916 msm8994 ferrum,$(TARGET_BOARD_PLATFORM)),)
 
 MY_LOCAL_PATH := $(call my-dir)
 
diff --git a/hal/Android.mk b/hal/Android.mk
index 39e5458..33af61c 100644
--- a/hal/Android.mk
+++ b/hal/Android.mk
@@ -26,10 +26,13 @@
 endif
 endif
 
-ifneq ($(filter msm8916,$(TARGET_BOARD_PLATFORM)),)
+ifneq ($(filter msm8916 ferrum,$(TARGET_BOARD_PLATFORM)),)
   AUDIO_PLATFORM = msm8916
   MULTIPLE_HW_VARIANTS_ENABLED := true
   LOCAL_CFLAGS := -DPLATFORM_MSM8916
+ifneq ($(filter ferrum,$(TARGET_BOARD_PLATFORM)),)
+  LOCAL_CFLAGS := -DPLATFORM_MSM8909
+endif
 endif
 
 LOCAL_SRC_FILES := \
diff --git a/hal/msm8916/hw_info.c b/hal/msm8916/hw_info.c
index 723881f..7a2ee02 100644
--- a/hal/msm8916/hw_info.c
+++ b/hal/msm8916/hw_info.c
@@ -173,8 +173,14 @@
         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, "msm8909-snd-card")) {
+        strlcpy(hw_info->type, "", sizeof(hw_info->type));
+        strlcpy(hw_info->name, "msm8909", 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/8939 device", __func__);
+        ALOGW("%s: Not an  8x16/8939/8909 device", __func__);
     }
 }
 
@@ -184,7 +190,8 @@
 
     hw_info = malloc(sizeof(struct hardware_info));
 
-    if(strstr(snd_card_name, "msm8x16") || strstr(snd_card_name, "msm8939")) {
+    if (strstr(snd_card_name, "msm8x16") || strstr(snd_card_name, "msm8939") ||
+        strstr(snd_card_name, "msm8909")) {
         ALOGV("8x16 - variant soundcard");
         update_hardware_info_8x16(hw_info, snd_card_name);
     } else {