From 4cd14f3235cdc5a918b7958140f13dee35aa7a1d Mon Sep 17 00:00:00 2001 From: liuwang2 Date: Tue, 31 May 2022 15:02:46 +0800 Subject: [PATCH] camera: ois: update aw86006 driver to v0.5.0.8 [detail] Fix ois firmware repeat upgrade. Change-Id: I4339b96ef4303fe49a6b1a91e38007d15d3057b4 Signed-off-by: liuwang2 Reviewed-on: https://gerrit.mot.com/2284812 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Reviewed-by: Reviewed-by: Shuo Wang Reviewed-by: Zhichao Chen Submit-Approved: Jira Key --- drivers/cam_sensor_module/cam_ois/cam_ois_aw86006.c | 13 +++++++------ drivers/cam_sensor_module/cam_ois/cam_ois_aw86006.h | 4 ++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/cam_sensor_module/cam_ois/cam_ois_aw86006.c b/drivers/cam_sensor_module/cam_ois/cam_ois_aw86006.c index b4e47d1afb4d..bd2ae0bbe4c6 100644 --- a/drivers/cam_sensor_module/cam_ois/cam_ois_aw86006.c +++ b/drivers/cam_sensor_module/cam_ois/cam_ois_aw86006.c @@ -47,7 +47,7 @@ #include "cam_packet_util.h" #include "cam_ois_aw86006.h" -#define AW86006_DRIVER_VERSION "v0.5.0.4" +#define AW86006_DRIVER_VERSION "v0.5.0.8" #define AW86006_FW_NAME "mot_aw86006.prog" const char fw_check_str[] = { 'A', 'W', 'I', 'N', 'I', 'C', 0, 0 }; @@ -1172,6 +1172,7 @@ int aw86006_firmware_update(struct cam_ois_ctrl_t *o_ctrl, const struct firmware *fw) { int ret = OIS_ERROR; + int i = 0; uint8_t standby_flag = 0; AW_LOGI("enter"); @@ -1191,10 +1192,11 @@ int aw86006_firmware_update(struct cam_ois_ctrl_t *o_ctrl, } mdelay(AW_RESET_DELAY); /* run app after reset */ /* Get standby flag */ - ret = aw86006_get_standby_flag(o_ctrl, &standby_flag); - if (ret != OIS_SUCCESS) { - AW_LOGE("get standby flag failed"); - goto err_get_standby_flg; + for (i = 0; i < AW_ERROR_LOOP; i++) { + aw86006_get_standby_flag(o_ctrl, &standby_flag); + if (standby_flag == AW_IC_STANDBY) + break; + mdelay(AW_RESET_DELAY); } if (standby_flag == AW_IC_STANDBY) { @@ -1212,7 +1214,6 @@ int aw86006_firmware_update(struct cam_ois_ctrl_t *o_ctrl, AW_LOGE("fw update failed, ret: %d", ret); } -err_get_standby_flg: err_reset: err_fw_check: release_firmware(fw); diff --git a/drivers/cam_sensor_module/cam_ois/cam_ois_aw86006.h b/drivers/cam_sensor_module/cam_ois/cam_ois_aw86006.h index 5e5128e47fe2..527153c4f8a7 100644 --- a/drivers/cam_sensor_module/cam_ois/cam_ois_aw86006.h +++ b/drivers/cam_sensor_module/cam_ois/cam_ois_aw86006.h @@ -133,8 +133,8 @@ enum soc_enum { SOC_ERASE_BLOCK_DELAY = 8, SOC_WRITE_BLOCK_HEAD = 13, SOC_WRITE_BLOCK_DELAY = 1000, /* us */ - SOC_READ_BLOCK_DELAY = 2000, /* us */ - SOC_CONNECT_DELAY = 2000, /* us */ + SOC_READ_BLOCK_DELAY = 200, /* us */ + SOC_CONNECT_DELAY = 200, /* us */ }; enum soc_flash_event {