camera: ois: update aw86006 driver to v0.5.0.8

[detail]
Fix ois firmware repeat upgrade.

Change-Id: I4339b96ef4303fe49a6b1a91e38007d15d3057b4
Signed-off-by: liuwang2 <liuwang2@lenovo.com>
Reviewed-on: https://gerrit.mot.com/2284812
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Tested-by: Jira Key
Reviewed-by: <zhaoxy41@motorola.com>
Reviewed-by: <chenlj26@motorola.com>
Reviewed-by: Shuo Wang <wangsh18@motorola.com>
Reviewed-by: Zhichao Chen <chenzc2@motorola.com>
Submit-Approved: Jira Key
This commit is contained in:
liuwang2 2022-05-31 15:02:46 +08:00 • committed by zhaoji1
commit 4cd14f3235
2 changed files with 9 additions and 8 deletions

View file

@ -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);

View file

@ -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 {