Merge 84c99e289809314609ff5c1bb90b8e9b71676cae on remote branch

Change-Id: Ia122671df19a56fd9b67ccfb55a2299bbb275b55
diff --git a/resource_manager/inc/ResourceManager.h b/resource_manager/inc/ResourceManager.h
index 77b75ae..a16e844 100644
--- a/resource_manager/inc/ResourceManager.h
+++ b/resource_manager/inc/ResourceManager.h
@@ -944,6 +944,8 @@
     void unlockGraph() { mGraphMutex.unlock(); };
     void lockActiveStream() { mActiveStreamMutex.lock(); };
     void unlockActiveStream() { mActiveStreamMutex.unlock(); };
+    void lockResourceManagerMutex() {mResourceManagerMutex.lock();};
+    void unlockResourceManagerMutex() {mResourceManagerMutex.unlock();};
     void getSharedBEActiveStreamDevs(std::vector <std::tuple<Stream *, uint32_t>> &activeStreamDevs,
                                      int dev_id);
     bool compareSharedBEStreamDevAttr(std::vector <std::tuple<Stream *, uint32_t>> &sharedBEStreamDev,
diff --git a/session/src/Session.cpp b/session/src/Session.cpp
index 3213362..7235640 100644
--- a/session/src/Session.cpp
+++ b/session/src/Session.cpp
@@ -692,7 +692,8 @@
              }
 
              if ((PAL_DEVICE_OUT_SPEAKER == dAttr.id) &&
-                  (2 == dAttr.config.ch_info.channels)) {
+                  (2 == dAttr.config.ch_info.channels) &&
+                  (strcmp(dAttr.custom_config.custom_key, "mspp") != 0)) {
                  /* Get DevicePP MFC MIID and configure to match to device config */
                  /* This has to be done after sending all mixer controls and
                   * before connect
diff --git a/stream/src/Stream.cpp b/stream/src/Stream.cpp
index 3a3e8a8..355d35e 100644
--- a/stream/src/Stream.cpp
+++ b/stream/src/Stream.cpp
@@ -836,7 +836,9 @@
         PAL_ERR(LOG_TAG, "Sound card offline, status %d", status);
         goto exit;
     }
+    rm->lockResourceManagerMutex();
     status = session->getTimestamp(stime);
+    rm->unlockResourceManagerMutex();
     if (0 != status) {
         PAL_ERR(LOG_TAG, "Failed to get session timestamp status %d", status);
         if (errno == -ENETRESET &&
diff --git a/stream/src/StreamCompress.cpp b/stream/src/StreamCompress.cpp
index 57a2b3e..a0d4a1c 100644
--- a/stream/src/StreamCompress.cpp
+++ b/stream/src/StreamCompress.cpp
@@ -991,7 +991,6 @@
         if (0 != status) {
             PAL_ERR(LOG_TAG, "session setParameters for rotation failed with status %d",
                     status);
-            goto exit;
         }
     }
 
diff --git a/stream/src/StreamPCM.cpp b/stream/src/StreamPCM.cpp
index f8995af..deff268 100644
--- a/stream/src/StreamPCM.cpp
+++ b/stream/src/StreamPCM.cpp
@@ -1321,7 +1321,6 @@
             if (0 != status) {
                 PAL_ERR(LOG_TAG, "session setParameters for rotation failed with status %d",
                         status);
-                goto exit;
             }
         }