diff options
author | Mansoor Aftab <maftab@codeaurora.org> | 2015-03-19 15:04:52 -0700 |
---|---|---|
committer | Zhijun He <zhijunhe@google.com> | 2015-03-26 09:54:11 -0700 |
commit | f07bf6e8347d9d4ae3f536bb0a2d6d8725f7e02f (patch) | |
tree | 5b34b701c42582063630543207b4eba4bc37bfd9 | |
parent | 6a34b0d90938f808b052db880301156debda9c90 (diff) | |
download | hammerhead-lollipop-mr1-wfc-release.tar.gz |
mm-camera-interface: Retry in case of timeoutsandroid-5.1.1_r5android-5.1.1_r28android-5.1.1_r22android-5.1.1_r17android-5.1.1_r12lollipop-mr1-wfc-release
Incase of delayed daemon start there is possibility of
timeout, HAL should re-attempt in those cases to allow
time for daemon to start.
Bug: 19565773
Change-Id: I1920fb32652e944ca599efef7801045b60c42ca8
-rw-r--r-- | camera/QCamera2/stack/mm-camera-interface/src/mm_camera.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/camera/QCamera2/stack/mm-camera-interface/src/mm_camera.c b/camera/QCamera2/stack/mm-camera-interface/src/mm_camera.c index 89dc2de..72c7f53 100644 --- a/camera/QCamera2/stack/mm-camera-interface/src/mm_camera.c +++ b/camera/QCamera2/stack/mm-camera-interface/src/mm_camera.c @@ -252,14 +252,15 @@ int32_t mm_camera_open(mm_camera_obj_t *my_obj) do{ n_try--; + errno = 0; my_obj->ctrl_fd = open(dev_name, O_RDWR | O_NONBLOCK); CDBG("%s: ctrl_fd = %d, errno == %d", __func__, my_obj->ctrl_fd, errno); - if((my_obj->ctrl_fd >= 0) || (errno != EIO) || (n_try <= 0 )) { + if((my_obj->ctrl_fd >= 0) || (errno != EIO && errno != ETIMEDOUT) || (n_try <= 0 )) { CDBG_HIGH("%s: opened, break out while loop", __func__); break; } - CDBG_HIGH("%s:failed with I/O error retrying after %d milli-seconds", - __func__, sleep_msec); + ALOGE("%s:Failed with %s error, retrying after %d milli-seconds", + __func__, strerror(errno), sleep_msec); usleep(sleep_msec * 1000); }while (n_try > 0); |