From 59915db63d785bdea8566be1d545e6cb00aae3fb Mon Sep 17 00:00:00 2001 From: zhuql3 Date: Thu, 23 Sep 2021 13:34:40 +0800 Subject: [PATCH] Berlin:add ois data type Fixed the issue that the submission milan ois bringup caused the Berlin tele sensor not work Change-Id: Ib77132b7ef9785f717bb95a51ba758ab7d761851 Signed-off-by: zhuql3 Reviewed-on: https://gerrit.mot.com/2074029 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: XiaoFeng Wang Reviewed-by: Xingyun Fu Reviewed-by: Zilong Zhang Reviewed-by: Qiang Guo Reviewed-by: Shanghui Zhang Reviewed-by: Long Cheng Reviewed-by: Zhichao Chen Submit-Approved: Jira Key --- drivers/cam_sensor_module/cam_ois/cam_ois_core.c | 5 +++-- drivers/cam_sensor_module/cam_ois/cam_ois_dev.h | 1 + include/uapi/camera/media/cam_sensor.h | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/cam_sensor_module/cam_ois/cam_ois_core.c b/drivers/cam_sensor_module/cam_ois/cam_ois_core.c index c40c8ee47cc4..4cde98f2ba6f 100644 --- a/drivers/cam_sensor_module/cam_ois/cam_ois_core.c +++ b/drivers/cam_sensor_module/cam_ois/cam_ois_core.c @@ -339,6 +339,7 @@ static int cam_ois_slaveInfo_pkt_parser(struct cam_ois_ctrl_t *o_ctrl, o_ctrl->ois_fw_txn_data_sz = ois_info->ois_fw_txn_data_sz; o_ctrl->ois_fw_inc_addr = ois_info->ois_fw_inc_addr; o_ctrl->ois_fw_addr_type = ois_info->ois_fw_addr_type; + o_ctrl->ois_fw_data_type = ois_info->ois_fw_data_type; memcpy(o_ctrl->ois_name, ois_info->ois_name, OIS_NAME_LEN); o_ctrl->ois_name[OIS_NAME_LEN - 1] = '\0'; o_ctrl->io_master_info.cci_client->retries = 3; @@ -396,7 +397,7 @@ static int cam_ois_fw_prog_download(struct cam_ois_ctrl_t *o_ctrl) txn_data_size = o_ctrl->ois_fw_txn_data_sz; i2c_reg_setting.addr_type = o_ctrl->ois_fw_addr_type; - i2c_reg_setting.data_type = CAMERA_SENSOR_I2C_TYPE_BYTE; + i2c_reg_setting.data_type = o_ctrl->ois_fw_data_type; i2c_reg_setting.delay = 0; txn_regsetting_size = sizeof(struct cam_sensor_i2c_reg_array) * txn_data_size; vaddr = vmalloc(txn_regsetting_size); @@ -476,7 +477,7 @@ static int cam_ois_fw_coeff_download(struct cam_ois_ctrl_t *o_ctrl) txn_data_size = o_ctrl->ois_fw_txn_data_sz; i2c_reg_setting.addr_type = o_ctrl->ois_fw_addr_type; - i2c_reg_setting.data_type = CAMERA_SENSOR_I2C_TYPE_BYTE; + i2c_reg_setting.data_type = o_ctrl->ois_fw_data_type; i2c_reg_setting.delay = 0; txn_regsetting_size = sizeof(struct cam_sensor_i2c_reg_array) * txn_data_size; vaddr = vmalloc(txn_regsetting_size); diff --git a/drivers/cam_sensor_module/cam_ois/cam_ois_dev.h b/drivers/cam_sensor_module/cam_ois/cam_ois_dev.h index 27eb1af573cc..af7473d413e9 100644 --- a/drivers/cam_sensor_module/cam_ois/cam_ois_dev.h +++ b/drivers/cam_sensor_module/cam_ois/cam_ois_dev.h @@ -141,6 +141,7 @@ struct cam_ois_ctrl_t { uint8_t ois_fw_txn_data_sz; uint8_t ois_fw_inc_addr; uint8_t ois_fw_addr_type; + uint8_t ois_fw_data_type; struct cam_ois_opcode opcode; }; diff --git a/include/uapi/camera/media/cam_sensor.h b/include/uapi/camera/media/cam_sensor.h index 9552d118387a..a4195326ea6c 100644 --- a/include/uapi/camera/media/cam_sensor.h +++ b/include/uapi/camera/media/cam_sensor.h @@ -143,6 +143,7 @@ struct cam_cmd_ois_info { __u8 ois_fw_txn_data_sz; __u8 ois_fw_inc_addr; __u8 ois_fw_addr_type; + __u8 ois_fw_data_type; char ois_name[MAX_OIS_NAME_SIZE]; struct cam_ois_opcode opcode; } __attribute__((packed));