pal: Use increase/decrease StreamUserCounter to protect getTimestamp

1) Pcm Offload write takes 80ms and held agm session obj lock for 80ms,
   and if getTimestamp comes during this period, it is blocked by
   agm session obj lock.
2) getTimestamp for all streams is protected by resourceManager lock
   and active stream lock.
3) Active stream lock will block LL get timestamp and writing.
4) LL underrun happened.

Fix it by using increase/decrease StreamUserCounter to protect getTimestamp

Change-Id: Ib985fe26f5ec34b0e8a739bb3984d4f78e69128c
(cherry picked from commit 81a451c0462e6d5bf5966425bc7b89a029a58f0e)
diff --git a/Pal.cpp b/Pal.cpp
index 46b3b86..e0fc84f 100644
--- a/Pal.cpp
+++ b/Pal.cpp
@@ -892,13 +892,19 @@
     }
 
     rm->lockActiveStream();
-    if (rm->isActiveStream(stream_handle)) {
-        s =  reinterpret_cast<Stream *>(stream_handle);
-        status = s->getTimestamp(stime);
-    } else {
-        PAL_ERR(LOG_TAG, "stream handle in stale state.\n");
+    s =  reinterpret_cast<Stream *>(stream_handle);
+    status = rm->increaseStreamUserCounter(s);
+    if (0 != status) {
+        rm->unlockActiveStream();
+        PAL_ERR(LOG_TAG, "failed to increase stream user count");
+        return status;
     }
     rm->unlockActiveStream();
+    status = s->getTimestamp(stime);
+
+    rm->lockActiveStream();
+    rm->decreaseStreamUserCounter(s);
+    rm->unlockActiveStream();
 
     if (0 != status) {
         PAL_ERR(LOG_TAG, "pal_get_timestamp failed with status %d\n", status);