From 61ebef6832840c7ad73c6101e2ea58bbd18433a0 Mon Sep 17 00:00:00 2001 From: liuwang2 Date: Wed, 1 Jun 2022 17:08:45 +0800 Subject: [PATCH] camera: actuator: add retry when actuator apply setting failed [detail] Retry 5 times if actuator apply setting failed. Change-Id: I31a7583d8c2b0bd506a85e6f6cb4a81f82c36232 Signed-off-by: liuwang2 Reviewed-on: https://gerrit.mot.com/2285973 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Zhichao Chen Submit-Approved: Jira Key --- .../cam_actuator/cam_actuator_core.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/cam_sensor_module/cam_actuator/cam_actuator_core.c b/drivers/cam_sensor_module/cam_actuator/cam_actuator_core.c index 3d318d1ff30f..a92aa16fed54 100644 --- a/drivers/cam_sensor_module/cam_actuator/cam_actuator_core.c +++ b/drivers/cam_sensor_module/cam_actuator/cam_actuator_core.c @@ -163,8 +163,17 @@ static int32_t cam_actuator_i2c_modes_util( uint32_t i, size; if (i2c_list->op_code == CAM_SENSOR_I2C_WRITE_RANDOM) { - rc = camera_io_dev_write(io_master_info, - &(i2c_list->i2c_settings)); + // if meet cci fail, retry 5 times, each time dealy 1.5ms. + for (i = 0; i < 5; i++) { + rc = camera_io_dev_write(io_master_info, + &(i2c_list->i2c_settings)); + + if (rc >= 0) + break; + + usleep_range(1000, 1500); + } + if (rc < 0) { CAM_ERR(CAM_ACTUATOR, "Failed to random write I2C settings: %d",