diff options
| author | dianlujitao <dianlujitao@gmail.com> | 2017-01-03 13:14:19 +0800 |
|---|---|---|
| committer | Faiz Authar <faizauthar@gmail.com> | 2017-02-06 17:25:40 +0700 |
| commit | 4441174912eb24b819b7f76c7873a1cf23f8fc2b (patch) | |
| tree | 57a0dc19261c7db728d0361f8341242c46b6935e | |
| parent | 5901a6817d5186280245146b1889f8296d0a0bb8 (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.cpp | 14 |
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; } |
