resolve merge conflicts of 1366cabc3d to stage-aosp-master. am: 8c64904f61
am: ceff2b0c0e

* commit 'ceff2b0c0e8ec0a9e28148f47d7d305937ef6bcf':
  qcom: audio: Fix missed msm8974 flags
diff --git a/Android.mk b/Android.mk
index 1e26411..ab0ad17 100644
--- a/Android.mk
+++ b/Android.mk
@@ -1,14 +1,16 @@
-ifneq ($(filter msm8960 msm8226 msm8x26 msm8974 msm8x74 msm8x84 msm8084 msm8992 msm8994,$(TARGET_BOARD_PLATFORM)),)
+# TODO:  Find a better way to separate build configs for ADP vs non-ADP devices
+ifneq ($(TARGET_BOARD_AUTO),true)
+  ifneq ($(filter msm8960 msm8226 msm8x26 msm8974 msm8x74 msm8x84 msm8084 msm8992 msm8994,$(TARGET_BOARD_PLATFORM)),)
 
-MY_LOCAL_PATH := $(call my-dir)
+    MY_LOCAL_PATH := $(call my-dir)
 
-ifeq ($(BOARD_USES_LEGACY_ALSA_AUDIO),true)
-include $(MY_LOCAL_PATH)/legacy/Android.mk
-else
-include $(MY_LOCAL_PATH)/hal/Android.mk
-include $(MY_LOCAL_PATH)/voice_processing/Android.mk
-include $(MY_LOCAL_PATH)/visualizer/Android.mk
-include $(MY_LOCAL_PATH)/post_proc/Android.mk
-endif
-
+    ifeq ($(BOARD_USES_LEGACY_ALSA_AUDIO),true)
+      include $(MY_LOCAL_PATH)/legacy/Android.mk
+    else
+      include $(MY_LOCAL_PATH)/hal/Android.mk
+      include $(MY_LOCAL_PATH)/voice_processing/Android.mk
+      include $(MY_LOCAL_PATH)/visualizer/Android.mk
+      include $(MY_LOCAL_PATH)/post_proc/Android.mk
+    endif
+  endif
 endif
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 6747b05..a72ca53 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -844,8 +844,14 @@
         break;
     }
 
-    ALOGV("%s: pcm_prepare start", __func__);
-    pcm_prepare(in->pcm);
+    ALOGV("%s: pcm_prepare", __func__);
+    ret = pcm_prepare(in->pcm);
+    if (ret < 0) {
+        ALOGE("%s: pcm_prepare returned %d", __func__, ret);
+        pcm_close(in->pcm);
+        in->pcm = NULL;
+        goto error_open;
+    }
 
     audio_extn_perf_lock_release();
 
@@ -1203,10 +1209,16 @@
             }
             break;
         }
-        ALOGV("%s: pcm_prepare start", __func__);
-        if (pcm_is_ready(out->pcm))
-            pcm_prepare(out->pcm);
-
+        ALOGV("%s: pcm_prepare", __func__);
+        if (pcm_is_ready(out->pcm)) {
+            ret = pcm_prepare(out->pcm);
+            if (ret < 0) {
+                ALOGE("%s: pcm_prepare returned %d", __func__, ret);
+                pcm_close(out->pcm);
+                out->pcm = NULL;
+                goto error_open;
+            }
+        }
     } else {
         out->pcm = NULL;
         out->compr = compress_open(adev->snd_card, out->pcm_device_id,