aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordianlujitao <dianlujitao@gmail.com>2017-01-03 13:14:19 +0800
committerFaiz Authar <faizauthar@gmail.com>2017-02-06 17:25:40 +0700
commit4441174912eb24b819b7f76c7873a1cf23f8fc2b (patch)
tree57a0dc19261c7db728d0361f8341242c46b6935e
parent5901a6817d5186280245146b1889f8296d0a0bb8 (diff)
ferrari: camera: Hax torch in a better way
* Solution based on https://github.com/LineageOS/android_device_motorola_clark/commit/c64959e31394bc6841e6f2d47264180b4f840d70 Change-Id: I91fd077ab6593ede8ab3be2e61c6c57149d98b73
-rw-r--r--camera/QCamera2/HAL/QCamera2Factory.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/camera/QCamera2/HAL/QCamera2Factory.cpp b/camera/QCamera2/HAL/QCamera2Factory.cpp
index 11c6088..647abd8 100644
--- a/camera/QCamera2/HAL/QCamera2Factory.cpp
+++ b/camera/QCamera2/HAL/QCamera2Factory.cpp
@@ -157,6 +157,8 @@ int QCamera2Factory::cameraDeviceOpen(int camera_id,
struct hw_device_t **hw_device)
{
int rc = NO_ERROR;
+ int cameraretry = 0;
+
if (camera_id < 0 || camera_id >= mNumOfCameras)
return BAD_VALUE;
@@ -165,7 +167,17 @@ int QCamera2Factory::cameraDeviceOpen(int camera_id,
ALOGE("Allocation of hardware interface failed");
return NO_MEMORY;
}
- rc = hw->openCamera(hw_device);
+
+ while (cameraretry < 3) {
+ rc = hw->openCamera(hw_device);
+ if (rc == NO_ERROR)
+ break;
+
+ cameraretry++;
+ ALOGV("%s: open failed - retrying attempt %d",__FUNCTION__, cameraretry);
+ sleep(2);
+ }
+
if (rc != NO_ERROR) {
delete hw;
}