Camera: hook up dumpState path to dumpsys
Test: try dumpsys on walleye
Bug: 71394073
Change-Id: I9617332c01002c5675bd98c5fc21aac31f1027c4
diff --git a/services/camera/libcameraservice/common/CameraProviderManager.cpp b/services/camera/libcameraservice/common/CameraProviderManager.cpp
index ae3bbc1..2ff200d 100644
--- a/services/camera/libcameraservice/common/CameraProviderManager.cpp
+++ b/services/camera/libcameraservice/common/CameraProviderManager.cpp
@@ -643,6 +643,14 @@
dprintf(fd, " API2 camera characteristics:\n");
info2.dump(fd, /*verbosity*/ 2, /*indentation*/ 4);
}
+
+ dprintf(fd, "== Camera HAL device %s (v%d.%d) dumpState: ==\n", device->mName.c_str(),
+ device->mVersion.get_major(), device->mVersion.get_minor());
+ res = device->dumpState(fd);
+ if (res != OK) {
+ dprintf(fd, " <Error dumping device %s state: %s (%d)>\n",
+ device->mName.c_str(), strerror(-res), res);
+ }
}
return OK;
}
@@ -908,6 +916,17 @@
return OK;
}
+status_t CameraProviderManager::ProviderInfo::DeviceInfo1::dumpState(int fd) const {
+ native_handle_t* handle = native_handle_create(1,0);
+ handle->data[0] = fd;
+ hardware::Return<Status> s = mInterface->dumpState(handle);
+ native_handle_delete(handle);
+ if (!s.isOk()) {
+ return INVALID_OPERATION;
+ }
+ return mapToStatusT(s);
+}
+
CameraProviderManager::ProviderInfo::DeviceInfo3::DeviceInfo3(const std::string& name,
const metadata_vendor_id_t tagId, const std::string &id,
uint16_t minorVersion,
@@ -1011,6 +1030,17 @@
return isBackwardCompatible;
}
+status_t CameraProviderManager::ProviderInfo::DeviceInfo3::dumpState(int fd) const {
+ native_handle_t* handle = native_handle_create(1,0);
+ handle->data[0] = fd;
+ auto ret = mInterface->dumpState(handle);
+ native_handle_delete(handle);
+ if (!ret.isOk()) {
+ return INVALID_OPERATION;
+ }
+ return OK;
+}
+
status_t CameraProviderManager::ProviderInfo::DeviceInfo3::getCameraCharacteristics(
CameraMetadata *characteristics) const {
if (characteristics == nullptr) return BAD_VALUE;
diff --git a/services/camera/libcameraservice/common/CameraProviderManager.h b/services/camera/libcameraservice/common/CameraProviderManager.h
index e82282f..0f1f07b 100644
--- a/services/camera/libcameraservice/common/CameraProviderManager.h
+++ b/services/camera/libcameraservice/common/CameraProviderManager.h
@@ -293,6 +293,7 @@
virtual status_t setTorchMode(bool enabled) = 0;
virtual status_t getCameraInfo(hardware::CameraInfo *info) const = 0;
virtual bool isAPI1Compatible() const = 0;
+ virtual status_t dumpState(int fd) const = 0;
virtual status_t getCameraCharacteristics(CameraMetadata *characteristics) const {
(void) characteristics;
return INVALID_OPERATION;
@@ -326,6 +327,7 @@
virtual status_t getCameraInfo(hardware::CameraInfo *info) const override;
//In case of Device1Info assume that we are always API1 compatible
virtual bool isAPI1Compatible() const override { return true; }
+ virtual status_t dumpState(int fd) const override;
DeviceInfo1(const std::string& name, const metadata_vendor_id_t tagId,
const std::string &id, uint16_t minorVersion,
const hardware::camera::common::V1_0::CameraResourceCost& resourceCost,
@@ -343,6 +345,7 @@
virtual status_t setTorchMode(bool enabled) override;
virtual status_t getCameraInfo(hardware::CameraInfo *info) const override;
virtual bool isAPI1Compatible() const override;
+ virtual status_t dumpState(int fd) const override;
virtual status_t getCameraCharacteristics(
CameraMetadata *characteristics) const override;