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