Camera: patching camera service for treble

Bug: 30985004
Change-Id: Idf3ec26abb6b10a0e3839e301e84c8b05ac165c5
diff --git a/services/camera/libcameraservice/common/CameraProviderManager.cpp b/services/camera/libcameraservice/common/CameraProviderManager.cpp
index 8b27c67..cb965b6 100644
--- a/services/camera/libcameraservice/common/CameraProviderManager.cpp
+++ b/services/camera/libcameraservice/common/CameraProviderManager.cpp
@@ -427,8 +427,7 @@
 }
 
 status_t CameraProviderManager::ProviderInfo::dump(int fd, const Vector<String16>&) const {
-    dprintf(fd, "    %s: v%d.%d, %zu devices:\n", mProviderName.c_str(),
-            mInterface->version.get_major(), mInterface->version.get_minor(), mDevices.size());
+    dprintf(fd, "    %s: %zu devices:\n", mProviderName.c_str(), mDevices.size());
 
     for (auto& device : mDevices) {
         dprintf(fd, "        %s: Resource cost: %d\n", device->mName.c_str(),
@@ -450,7 +449,7 @@
     sp<StatusListener> listener;
     std::string id;
     {
-        std::lock_guard<std::mutex> lock(mManager->mInterfaceMutex);
+        std::lock_guard<std::mutex> lock(mManager->mStatusListenerMutex);
         bool known = false;
         for (auto& deviceInfo : mDevices) {
             if (deviceInfo->mName == cameraDeviceName) {
@@ -487,7 +486,7 @@
     sp<StatusListener> listener;
     std::string id;
     {
-        std::lock_guard<std::mutex> lock(mManager->mInterfaceMutex);
+        std::lock_guard<std::mutex> lock(mManager->mStatusListenerMutex);
         bool known = false;
         for (auto& deviceInfo : mDevices) {
             if (deviceInfo->mName == cameraDeviceName) {
diff --git a/services/camera/libcameraservice/common/CameraProviderManager.h b/services/camera/libcameraservice/common/CameraProviderManager.h
index 345863c..641dab4 100644
--- a/services/camera/libcameraservice/common/CameraProviderManager.h
+++ b/services/camera/libcameraservice/common/CameraProviderManager.h
@@ -194,6 +194,8 @@
     // All private members, unless otherwise noted, expect mInterfaceMutex to be locked before use
     mutable std::mutex mInterfaceMutex;
 
+    // the status listener update callbacks will lock mStatusMutex
+    mutable std::mutex mStatusListenerMutex;
     wp<StatusListener> mListener;
     ServiceInteractionProxy* mServiceProxy;