diff --git a/selfdrive/camerad/cameras/camera_qcom.cc b/selfdrive/camerad/cameras/camera_qcom.cc index 29fecc2bb6..fa649cbecc 100644 --- a/selfdrive/camerad/cameras/camera_qcom.cc +++ b/selfdrive/camerad/cameras/camera_qcom.cc @@ -41,25 +41,9 @@ CameraInfo cameras_supported[CAMERA_ID_MAX] = { .frame_height = 1748, .frame_stride = 2912, .bayer = true, - .bayer_flip = 0, + .bayer_flip = 3, .hdr = true }, - [CAMERA_ID_IMX179] = { - .frame_width = 3280, - .frame_height = 2464, - .frame_stride = 4104, - .bayer = true, - .bayer_flip = 0, - .hdr = false - }, - [CAMERA_ID_S5K3P8SP] = { - .frame_width = 2304, - .frame_height = 1728, - .frame_stride = 2880, - .bayer = true, - .bayer_flip = 1, - .hdr = false - }, [CAMERA_ID_OV8865] = { .frame_width = 1632, .frame_height = 1224, @@ -94,27 +78,6 @@ static void camera_release_buffer(void* cookie, int buf_idx) { ioctl(s->isp_fd, VIDIOC_MSM_ISP_ENQUEUE_BUF, &s->ss[0].qbuf_info[buf_idx]); } -static void camera_init(VisionIpcServer *v, CameraState *s, int camera_id, int camera_num, - uint32_t pixel_clock, uint32_t line_length_pclk, - unsigned int max_gain, unsigned int fps, cl_device_id device_id, cl_context ctx, - VisionStreamType rgb_type, VisionStreamType yuv_type) { - s->camera_num = camera_num; - s->camera_id = camera_id; - - assert(camera_id < ARRAYSIZE(cameras_supported)); - s->ci = cameras_supported[camera_id]; - assert(s->ci.frame_width != 0); - - s->pixel_clock = pixel_clock; - s->line_length_pclk = line_length_pclk; - s->max_gain = max_gain; - s->fps = fps; - - s->self_recover = 0; - - s->buf.init(device_id, ctx, s, v, FRAME_BUF_COUNT, rgb_type, yuv_type, camera_release_buffer); -} - int sensor_write_regs(CameraState *s, struct msm_camera_i2c_reg_array* arr, size_t size, msm_camera_i2c_data_type data_type) { struct msm_camera_i2c_reg_setting out_settings = { .reg_setting = arr, @@ -201,6 +164,27 @@ static int ov8865_apply_exposure(CameraState *s, int gain, int integ_lines, int return err; } +static void camera_init(VisionIpcServer *v, CameraState *s, int camera_id, int camera_num, + uint32_t pixel_clock, uint32_t line_length_pclk, + unsigned int max_gain, unsigned int fps, cl_device_id device_id, cl_context ctx, + VisionStreamType rgb_type, VisionStreamType yuv_type) { + s->camera_num = camera_num; + s->camera_id = camera_id; + + assert(camera_id < ARRAYSIZE(cameras_supported)); + s->ci = cameras_supported[camera_id]; + assert(s->ci.frame_width != 0); + + s->pixel_clock = pixel_clock; + s->line_length_pclk = line_length_pclk; + s->max_gain = max_gain; + s->fps = fps; + s->self_recover = 0; + + s->apply_exposure = (camera_id == CAMERA_ID_IMX298) ? imx298_apply_exposure : ov8865_apply_exposure; + s->buf.init(device_id, ctx, s, v, FRAME_BUF_COUNT, rgb_type, yuv_type, camera_release_buffer); +} + cl_program build_conv_program(cl_device_id device_id, cl_context context, int image_w, int image_h, int filter_size) { char args[4096]; snprintf(args, sizeof(args), @@ -220,7 +204,6 @@ void cameras_init(VisionIpcServer *v, MultiCameraState *s, cl_device_id device_i // sensor is flipped in LP3 // IMAGE_ORIENT = 3 init_array_imx298[0].reg_data = 3; - cameras_supported[CAMERA_ID_IMX298].bayer_flip = 3; // 0 = ISO 100 // 256 = ISO 200 @@ -242,13 +225,11 @@ void cameras_init(VisionIpcServer *v, MultiCameraState *s, cl_device_id device_i #endif device_id, ctx, VISION_STREAM_RGB_BACK, VISION_STREAM_YUV_BACK); - s->road_cam.apply_exposure = imx298_apply_exposure; camera_init(v, &s->driver_cam, CAMERA_ID_OV8865, 1, /*pixel_clock=*/72000000, /*line_length_pclk=*/1602, /*max_gain=*/510, 10, device_id, ctx, VISION_STREAM_RGB_FRONT, VISION_STREAM_YUV_FRONT); - s->driver_cam.apply_exposure = ov8865_apply_exposure; s->sm = new SubMaster({"driverState"}); s->pm = new PubMaster({"roadCameraState", "driverCameraState", "thumbnail"}); @@ -309,11 +290,8 @@ static void set_exposure(CameraState *s, float exposure_frac, float gain_frac) { if (s->apply_exposure == ov8865_apply_exposure) { gain = 800 * gain_frac; // ISO - err = s->apply_exposure(s, gain, integ_lines, frame_length); - } else if (s->apply_exposure) { - err = s->apply_exposure(s, gain, integ_lines, frame_length); } - + err = s->apply_exposure(s, gain, integ_lines, frame_length); if (err == 0) { std::lock_guard lk(s->frame_info_lock); s->cur_gain = gain; @@ -395,8 +373,6 @@ static uint8_t* get_eeprom(int eeprom_fd, size_t *out_len) { } static void sensors_init(MultiCameraState *s) { - int err; - unique_fd sensorinit_fd; sensorinit_fd = open("/dev/v4l-subdev11", O_RDWR | O_NONBLOCK); assert(sensorinit_fd >= 0); @@ -443,7 +419,7 @@ static void sensors_init(MultiCameraState *s) { slave_info.power_setting_array.power_setting = &slave_info.power_setting_array.power_setting_a[0]; slave_info.power_setting_array.power_down_setting = &slave_info.power_setting_array.power_down_setting_a[0]; sensor_init_cfg_data sensor_init_cfg = {.cfgtype = CFG_SINIT_PROBE, .cfg.setting = &slave_info}; - err = ioctl(sensorinit_fd, VIDIOC_MSM_SENSOR_INIT_CFG, &sensor_init_cfg); + int err = ioctl(sensorinit_fd, VIDIOC_MSM_SENSOR_INIT_CFG, &sensor_init_cfg); LOG("sensor init cfg (road camera): %d", err); assert(err >= 0); @@ -487,13 +463,11 @@ static void sensors_init(MultiCameraState *s) { sensor_init_cfg.cfgtype = CFG_SINIT_PROBE; sensor_init_cfg.cfg.setting = &slave_info2; err = ioctl(sensorinit_fd, VIDIOC_MSM_SENSOR_INIT_CFG, &sensor_init_cfg); - LOG("sensor init cfg (driver): %d", err); + LOG("sensor init cfg (driver camera): %d", err); assert(err >= 0); } static void camera_open(CameraState *s, bool is_road_cam) { - int err; - struct csid_cfg_data csid_cfg_data = {}; struct v4l2_event_subscription sub = {}; @@ -542,7 +516,7 @@ static void camera_open(CameraState *s, bool is_road_cam) { struct msm_camera_csi_lane_params csi_lane_params = {0}; csi_lane_params.csi_lane_mask = 0x1f; csiphy_cfg_data csiphy_cfg_data = { .cfg.csi_lane_params = &csi_lane_params, .cfgtype = CSIPHY_RELEASE}; - err = ioctl(s->csiphy_fd, VIDIOC_MSM_CSIPHY_IO_CFG, &csiphy_cfg_data); + int err = ioctl(s->csiphy_fd, VIDIOC_MSM_CSIPHY_IO_CFG, &csiphy_cfg_data); LOG("release csiphy: %d", err); // CSID: release csid @@ -626,10 +600,6 @@ static void camera_open(CameraState *s, bool is_road_cam) { // SENSOR: send i2c configuration if (s->camera_id == CAMERA_ID_IMX298) { err = sensor_write_regs(s, init_array_imx298, ARRAYSIZE(init_array_imx298), MSM_CAMERA_I2C_BYTE_DATA); - } else if (s->camera_id == CAMERA_ID_S5K3P8SP) { - err = sensor_write_regs(s, init_array_s5k3p8sp, ARRAYSIZE(init_array_s5k3p8sp), MSM_CAMERA_I2C_WORD_DATA); - } else if (s->camera_id == CAMERA_ID_IMX179) { - err = sensor_write_regs(s, init_array_imx179, ARRAYSIZE(init_array_imx179), MSM_CAMERA_I2C_BYTE_DATA); } else if (s->camera_id == CAMERA_ID_OV8865) { err = sensor_write_regs(s, init_array_ov8865, ARRAYSIZE(init_array_ov8865), MSM_CAMERA_I2C_BYTE_DATA); } else { @@ -713,10 +683,6 @@ static void camera_open(CameraState *s, bool is_road_cam) { struct msm_camera_csiphy_params csiphy_params = {}; if (s->camera_id == CAMERA_ID_IMX298) { csiphy_params = {.lane_cnt = 4, .settle_cnt = 14, .lane_mask = 0x1f, .csid_core = 0}; - } else if (s->camera_id == CAMERA_ID_S5K3P8SP) { - csiphy_params = {.lane_cnt = 4, .settle_cnt = 24, .lane_mask = 0x1f, .csid_core = 0}; - } else if (s->camera_id == CAMERA_ID_IMX179) { - csiphy_params = {.lane_cnt = 4, .settle_cnt = 11, .lane_mask = 0x1f, .csid_core = 2}; } else if (s->camera_id == CAMERA_ID_OV8865) { // guess! csiphy_params = {.lane_cnt = 4, .settle_cnt = 24, .lane_mask = 0x1f, .csid_core = 2}; @@ -1004,10 +970,6 @@ static std::optional get_accel_z(SubMaster *sm) { } static void do_autofocus(CameraState *s, SubMaster *sm) { - // params for focus PI controller - const int dac_up = LP3_AF_DAC_UP; - const int dac_down = LP3_AF_DAC_DOWN; - float lens_true_pos = s->lens_true_pos.load(); if (!isnan(s->focus_err)) { // learn lens_true_pos @@ -1020,8 +982,8 @@ static void do_autofocus(CameraState *s, SubMaster *sm) { } const float sag = (s->last_sag_acc_z / 9.8) * 128; // stay off the walls - lens_true_pos = std::clamp(lens_true_pos, float(dac_down), float(dac_up)); - int target = std::clamp(lens_true_pos - sag, float(dac_down), float(dac_up)); + lens_true_pos = std::clamp(lens_true_pos, float(LP3_AF_DAC_DOWN), float(LP3_AF_DAC_UP)); + int target = std::clamp(lens_true_pos - sag, float(LP3_AF_DAC_DOWN), float(LP3_AF_DAC_UP)); s->lens_true_pos.store(lens_true_pos); /*char debug[4096]; @@ -1147,7 +1109,6 @@ static void camera_close(CameraState *s) { free(s->eeprom); } - const char* get_isp_event_name(unsigned int type) { switch (type) { case ISP_EVENT_REG_UPDATE: return "ISP_EVENT_REG_UPDATE"; @@ -1250,24 +1211,19 @@ static void update_lapmap(MultiCameraState *s, const CameraBuf *b, const int cnt } static void setup_self_recover(CameraState *c, const uint16_t *lapres, size_t lapres_size) { - const int dac_down = LP3_AF_DAC_DOWN; - const int dac_up = LP3_AF_DAC_UP; - const int dac_m = LP3_AF_DAC_M; - const int dac_3sig = LP3_AF_DAC_3SIG; - const float lens_true_pos = c->lens_true_pos.load(); int self_recover = c->self_recover.load(); - if (self_recover < 2 && (lens_true_pos < (dac_down + 1) || lens_true_pos > (dac_up - 1)) && is_blur(lapres, lapres_size)) { + if (self_recover < 2 && (lens_true_pos < (LP3_AF_DAC_DOWN + 1) || lens_true_pos > (LP3_AF_DAC_UP - 1)) && is_blur(lapres, lapres_size)) { // truly stuck, needs help if (--self_recover < -FOCUS_RECOVER_PATIENCE) { LOGD("road camera bad state detected. attempting recovery from %.1f, recover state is %d", lens_true_pos, self_recover); // parity determined by which end is stuck at - self_recover = FOCUS_RECOVER_STEPS + (lens_true_pos < dac_m ? 1 : 0); + self_recover = FOCUS_RECOVER_STEPS + (lens_true_pos < LP3_AF_DAC_M ? 1 : 0); } - } else if (self_recover < 2 && (lens_true_pos < (dac_m - dac_3sig) || lens_true_pos > (dac_m + dac_3sig))) { + } else if (self_recover < 2 && (lens_true_pos < (LP3_AF_DAC_M - LP3_AF_DAC_3SIG) || lens_true_pos > (LP3_AF_DAC_M + LP3_AF_DAC_3SIG))) { // in suboptimal position with high prob, but may still recover by itself if (--self_recover < -(FOCUS_RECOVER_PATIENCE * 3)) { - self_recover = FOCUS_RECOVER_STEPS / 2 + (lens_true_pos < dac_m ? 1 : 0); + self_recover = FOCUS_RECOVER_STEPS / 2 + (lens_true_pos < LP3_AF_DAC_M ? 1 : 0); } } else if (self_recover < 0) { self_recover += 1; // reset if fine diff --git a/selfdrive/camerad/cameras/camera_qcom.h b/selfdrive/camerad/cameras/camera_qcom.h index b129208eee..45a914e89d 100644 --- a/selfdrive/camerad/cameras/camera_qcom.h +++ b/selfdrive/camerad/cameras/camera_qcom.h @@ -74,7 +74,7 @@ typedef struct CameraState { camera_apply_exposure_func apply_exposure; // rear camera only,used for focusing - unique_fd actuator_fd, ois_fd, eeprom_fd; + unique_fd actuator_fd, eeprom_fd; std::atomic focus_err; std::atomic last_sag_acc_z; std::atomic lens_true_pos; diff --git a/selfdrive/camerad/cameras/sensor_i2c.h b/selfdrive/camerad/cameras/sensor_i2c.h index 74f56b027b..b46ebb370a 100644 --- a/selfdrive/camerad/cameras/sensor_i2c.h +++ b/selfdrive/camerad/cameras/sensor_i2c.h @@ -594,1165 +594,6 @@ static struct msm_camera_i2c_reg_array start_reg_array[] = {{0x100,0x1,0}}; // stop, enable standby mode static struct msm_camera_i2c_reg_array stop_reg_array[] = {{0x100,0x0,0}}; - -/////////////////// - - -static struct msm_camera_i2c_reg_array init_array_imx179[] = { - { 0x100, 0x0, 0}, // MODE_SELECT - { 0x101, 0x0, 0}, // IMAGE_ORIENT - { 0x202, 0x9, 0}, { 0x203, 0xd2, 0}, // COARSE_INTEGRATION_TIME - { 0x301, 0x5, 0}, // vt_pix_clk_div - { 0x303, 0x1, 0}, // vt_sys_clk_div - { 0x305, 0x6, 0}, // pre_pll_clk_div - { 0x309, 0x5, 0}, // op_pix_clk_div - { 0x30b, 0x1, 0}, // op_sys_clk_div - { 0x30c, 0x0, 0}, { 0x30d, 0x9d, 0}, - - { 0x340, 0x9, 0}, { 0x341, 0xd6, 0}, // frame_length_lines - { 0x342, 0xd, 0}, { 0x343, 0x70, 0}, // line_length_pclk - { 0x344, 0x0, 0}, { 0x345, 0x0, 0}, // x_addr_start - { 0x346, 0x0, 0}, { 0x347, 0x0, 0}, // y_addr_start - { 0x348, 0xc, 0}, { 0x349, 0xcf, 0}, // last_pixel / x_addr_end - { 0x34a, 0x9, 0}, { 0x34b, 0x9f, 0}, // last_line / y_addr_end - { 0x34c, 0xc, 0}, { 0x34d, 0xd0, 0}, // pixels_per_line / x_output_size - { 0x34e, 0x9, 0}, { 0x34f, 0xa0, 0}, // lines_per_frame / y_output_size - { 0x383, 0x1, 0}, // x_odd_inc - { 0x387, 0x1, 0}, // y_odd_inc - { 0x390, 0x0, 0}, // binning_mode - { 0x401, 0x0, 0}, // SCALING_MODE - { 0x405, 0x10, 0}, // SCALE_M - - {0x3020, 0x10, 0}, - {0x3041, 0x15, 0}, // READ_MODE? - {0x3042, 0x87, 0}, - {0x3089, 0x4f, 0}, - {0x3309, 0x9a, 0}, - {0x3344, 0x57, 0}, - {0x3345, 0x1f, 0}, - {0x3362, 0xa, 0}, - {0x3363, 0xa, 0}, - {0x3364, 0x0, 0}, - {0x3368, 0x18, 0}, - {0x3369, 0x0, 0}, - {0x3370, 0x6f, 0}, - {0x3371, 0x27, 0}, - {0x3372, 0x4f, 0}, - {0x3373, 0x2f, 0}, - {0x3374, 0x27, 0}, - {0x3375, 0x2f, 0}, - {0x3376, 0x97, 0}, - {0x3377, 0x37, 0}, - {0x33c8, 0x0, 0}, - {0x33d4, 0xc, 0}, - {0x33d5, 0xd0, 0}, - {0x33d6, 0x9, 0}, - {0x33d7, 0xa0, 0}, - // znr - {0x4100, 0xe, 0}, - {0x4108, 0x1, 0}, - {0x4109, 0x7c, 0}, -}; - - - -/////////////// ois stuff /////////////// - -/* -#define _OP_FIRM_DWNLD 0x80 -#define _OP_Periphe_RW 0x82 -#define _OP_Memory__RW 0x84 -#define _OP_AD_TRNSFER 0x86 -#define _OP_COEF_DWNLD 0x88 -#define _OP_PrgMem__RD 0x8A -#define _OP_SpecialCMD 0x8C -*/ - -static struct reg_settings_ois_t ois_init_settings[] = { - { - .reg_addr = 0x8262, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0xbf03, - .data_type = MSM_CAMERA_I2C_WORD_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "", - .reg_data_seq_size = 0, - },{ - .reg_addr = 0x8263, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x9f05, - .data_type = MSM_CAMERA_I2C_WORD_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "", - .reg_data_seq_size = 0, - },{ - .reg_addr = 0x8264, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x6040, - .data_type = MSM_CAMERA_I2C_WORD_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "", - .reg_data_seq_size = 0, - },{ - .reg_addr = 0x8260, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x1130, - .data_type = MSM_CAMERA_I2C_WORD_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "", - .reg_data_seq_size = 0, - },{ - .reg_addr = 0x8265, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x8000, - .data_type = MSM_CAMERA_I2C_WORD_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "", - .reg_data_seq_size = 0, - },{ - .reg_addr = 0x8261, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0280, - .data_type = MSM_CAMERA_I2C_WORD_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "", - .reg_data_seq_size = 0, - },{ - .reg_addr = 0x8261, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0380, - .data_type = MSM_CAMERA_I2C_WORD_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "", - .reg_data_seq_size = 0, - },{ - .reg_addr = 0x8261, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0988, - .data_type = MSM_CAMERA_I2C_WORD_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "", - .reg_data_seq_size = 0, - },{ - .reg_addr = 0x8000, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x34\x84\x00\x03\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8000, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8000, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8000, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8000, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8000, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8000, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8000, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8000, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8000, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8000, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8000, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x00\x00\x00\x03\x00\x10\x7e\x84\x50\x00\x08\x40\x7e\xa0\x00\x03\x00\x10\x7e\x84\x60\x00\x08\x40\x7e\xa0\x00\x03\x00\x90\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8084, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x10\x08\x80\x00\xa0\x10\x00\x08\x7f\xff\x11\x8f\x02\x07\x80\x00\x11\x40\xff\xa0\x90\x01\x84\x20\x8f\x08\x40\xfe\x90\x40\xf5", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x80a0, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x00\x08\x80\x01\xa0\x00\x01\x11\x8f\x02\x07\xff\xff\x11\x08\x00\x20\x50\x12\x07\x00\x10\x08\x80\x00\xa0\x10\xff\x84\x20\x0a", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8008, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x7f\xff\x21\x08\xfe\x84\x00\x04\x07\x20\x0c\x08\x7f\xff\x21\x08\xfe\x84\x00\x03\x00\x90\x17\x84\x20\x1f\x08\x80\x17\xa0\x10\x10", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8008, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x7f\xff\x21\x10\x00\x08\x01\x00\x11\x40\x51\xa0\x90\x17\x84\x20\x0f\x08\x80\x47\xa0\x8d\x0c\x07\x00\x00\x11\x30\x03\x07\x80\x41", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8090, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x50\x00\x08\x40\xfc\x90\x88\x2f\x84\x00\x00\x11\x30\x02\x07\x40\xff\x90\x50\x00\x08\x40\xfd\x90\x40\x7f\xa0\x10\xff\x84\x20\x2c", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8008, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x7f\xff\x11\x20\x0d\x08\x80\x0f\x90\x80\x26\xa0\x90\x2e\x84\x00\x10\x08\x90\x26\x84\x00\x10\x08\x80\x1f\xa0\x20\x2e\x08\x40\xed", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8090, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x20\x0f\x08\x80\x0e\x90\x00\x00\x21\x30\x02\x07\x40\xeb\xa0\x50\x00\x08\x40\xfe\x90\x40\x7f\xa0\x04\xeb\x84\x10\x00\x20\x20\x0f", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8008, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x80\x00\x21\x60\x04\x07\x40\xff\xa0\x10\x00\x08\x40\xea\x90\x10\x00\x20\x20\x0f\x08\x80\x00\x11\x00\x0b\x07\x08\x00\x20\x60\x0d", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8007, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x10\x00\x08\x40\xea\x90\x8f\x06\x07\x04\xff\x84\x20\x09\x60\x10\xfc\x84\x08\xfd\x84\x04\xfe\x84\x00\x03\x00\x00\x10\x08\x80\x37", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x80a0, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x90\x69\x84\x00\x10\x08\x80\x69\xa0\x20\x1a\x08\x40\x64\xa0\x10\x10\x08\x80\x4f\xa0\x20\x1d\x08\x40\x5f\xa0\x20\x1e\x08\x40\x5d", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x80a0, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x10\x00\x08\x80\x68\x90\x40\xfe\xa0\x20\x0e\x07\x50\x00\x08\x40\x7f\xa0\x04\xfe\x84\x00\x04\x00\x10\xf0\x44\x50\x00\x08\x00\x7f", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8011, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x20\xf0\x60\x04\x5c\x84\x04\x61\x84\x04\x57\x84\x00\x00\x21\x04\x74\x84\x00\x40\x21\x00\x0b\x07\x04\x74\x84\x00\x00\x21\x10\x57", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8084, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x30\x20\x08\x00\x04\x11\x50\x00\x08\x03\xff\x11\x20\xfa\x60\x10\xf0\x44\x50\x20\x08\x00\x7f\x11\x60\x20\x08\x40\x00\x08\x00\x08", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8011, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x30\x1a\x07\x50\x00\x08\x07\x00\x11\x9f\x1d\x07\x8b\x1e\x07\x9c\x15\x07\x20\xf8\x60\x10\x28\x44\x60\x00\x08\x01\x00\x11\x20\x28", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8060, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x87\x1b\x07\x40\xf7\xa0\x81\x27\x07\x20\x48\x60\x10\x0a\x44\x10\xf4\x84\x3b\xd4\x00\xe0\x14\x43\x08\x00\x20\x00\x06\x07\x89\x02", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8007, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x40\xae\x90\x81\x04\x07\x40\x2e\x90\x40\x7f\xa0\x10\x2e\x44\x20\x2f\x08\x9f\x02\x07\x00\x00\x11\x10\x00\x20\x00\x00\x08\x40\x67", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x80a0, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x00\x11\x84\x02\x07\x20\xf0\x60\x9f\x03\x07\x40\x7e\xa0\x40\x65\x90\x10\x62\x84\x10\x10\x08\x40\x61\xa0\x20\x1d\x08\x40\x5f", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x80a0, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x20\x1e\x08\x40\x5d\xa0\x10\x00\x08\x40\x5e\x90\x20\x30\x60\x10\xcf\x84\x20\x1c\x08\x7f\xff\x21\x3b\xf7\x00\xc8\x14\x43\x10\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8020, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x00\x08\x40\xb5\x90\x40\xad\xa0\x00\x0a\x07\x10\x4f\x84\x20\x1c\x08\x7f\xff\x21\x3c\x01\x00\x48\x14\x43\x10\x00\x20\x00\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8008, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x40\x35\x90\x40\x2d\xa0\x00\x14\x07\x80\x0c\x07\x82\x03\x07\x04\x50\x84\x10\x00\x20\x20\x02\x07\x00\x08\x21\x40\x00\x08\x00\x01", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8011, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x40\x50\xa0\x00\x04\x00\x20\x7f\x00\x80\x14\x43\x01\x00\x01\x04\x00\x11\x02\x00\x21\x10\x9f\x84\x10\x20\x08\x40\x97\x90\x10\xbf", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8084, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x20\x1d\x08\x40\xc6\xa0\x20\x8e\x08\x40\x72\x90\x40\x16\xa0\x10\x96\x84\x10\x00\x08\x40\x9e\x90\x20\x36\x60\x20\x91\x00\x00\x14", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8043, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x01\x01\x00\x04\x11\x00\x02\x21\x10\x1f\x84\x10\x20\x08\x40\x17\x90\x10\x3f\x84\x20\x1d\x08\x40\x46\xa0\x20\x8e\x08\x40\x70", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8090, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x40\x96\xa0\x10\x16\x84\x10\x00\x08\x40\x1e\x90\x20\x34\x60\x10\x65\x84\x50\x10\x08\x00\x00\x21\x84\x03\x07\x20\xf0\x60\x9f\x03", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8007, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x40\x7e\xa0\x00\x10\x08\x40\x65\xa0\x20\x0d\x08\x40\x64\x90\x40\x62\xa0\x00\x04\x00\x04\x1c\x44\x04\x1b\x44\xc3\xff\x21\x87\x04", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8007, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x40\x7f\xa0\x10\x42\x84\x20\x1e\x08\x7f\xff\x21\x10\x20\x08\x40\x1c\x90\x10\x07\x84\x10\x00\x08\x40\x06\x90\x40\x55\xa0\x10\xc2", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8084, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x20\x1e\x08\x7f\xff\x21\x10\x20\x08\x40\x9c\x90\x10\x87\x84\x10\x00\x08\x40\x86\x90\x40\x56\xa0\x10\x56\x84\x20\x0f\x08\x40\x7b", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8090, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x22\x00\x60\x40\x00\x08\x40\x79\xa0\x00\x08\x11\x10\x55\x84\x20\x0f\x08\x40\x7a\x90\x22\x00\x60\x50\x00\x08\x40\x79\xa0\x00\xff", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8011, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x04\x6f\x84\x00\x05\x21\x21\x39\x00\x04\x00\x11\x10\xc1\x84\x20\x0f\x08\x70\x07\x07\x10\x10\x08\x40\xc0\xa0\x20\x0f\x08\x7f\xff", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8011, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x8f\x02\x07\x80\x00\x11\x08\x00\x20\x08\xc1\x84\x40\xbd\x90\x9e\x02\x07\x40\x7f\xa0\x40\xec\x90\x04\x6e\x84\x00\x05\x21\x21\x4c", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8000, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x04\x11\x10\x41\x84\x20\x0f\x08\x70\x07\x07\x10\x10\x08\x40\x40\xa0\x20\x0f\x08\x7f\xff\x11\x8f\x02\x07\x80\x00\x11\x08\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8020, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x08\x41\x84\x40\x3d\x90\x9e\x02\x07\x40\x7f\xa0\x40\x6d\x90\x10\x2d\x44\x20\xe7\x00\x08\x00\x11\x20\x32\x60\x80\x14\x43\x10\x2c", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8044, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x20\xec\x00\x00\x08\x11\x20\x31\x60\x00\x14\x43\x04\x34\x44\x40\x5b\xa0\x00\x04\x00\x21\x6a\x00\x80\x00\x11\x21\x70\x00\x3f\xff", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8011, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x08\xe8\x84\x20\x32\x50\x08\x68\x84\x20\x31\x50\x08\x5e\x84\x20\x30\x50\x0f\xc4\x07\x10\x34\x44\x10\x5b\x84\x6f\xf3\x07\x00\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8008, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x02\x00\x21\x40\xfc\x90\x3d\xd4\x00\x04\xfc\x84\x00\x00\x21\x04\xfd\x84\x00\x08\x21\x00\x04\x00\x21\x81\x00\xc0\x00\x11\x04\x5b", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8084, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x02\x00\x21\x70\x06\x07\x10\xfe\x84\x30\x20\x08\x00\x03\x11\x10\x00\x08\x40\x59\x90\x04\xff\x84\x40\x58\xa0\x10\x59\x84\x20\x0f", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8008, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x40\x59\xa0\x20\x00\x11\x70\x1e\x07\x10\x00\x08\x00\x0b\x11\x0f\xe4\x07\x10\x59\x84\x00\x00\x08\x20\x30\x50\x40\x59\xa0\x70\x06", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8007, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x10\x00\x08\x00\x0a\x11\x0f\xec\x07\x08\x34\x44\x02\x10\x11\x10\x58\x84\x20\x0f\x08\x40\x58\xa0\x20\x00\x11\x30\x08\x07\x0f\xf4", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8007, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x10\x58\x84\x00\x00\x08\x20\x30\x50\x40\x58\xa0\x70\x06\x07\x10\x00\x08\x00\x05\x11\x00\x04\x00\x10\x5a\x84\x00\x00\x08\x00\x01", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8011, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x40\x5a\xa0\x08\x34\x44\x02\x00\x11\x30\x08\x07\x60\x00\x08\x00\x00\x11\x40\x5a\xa0\x8f\x4f\x07\x40\x7e\xa0\x00\x04\x00\x3c\xdd", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8000, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x10\x00\x20\xa8\x14\x43\x04\xa7\x84\x20\x8e\x08\x40\xc4\x90\x40\xaf\xa0\x20\x0f\x08\x40\xc5\x90\x40\xa7\xa0\x3c\xe7\x00\x10\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8020, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x28\x14\x43\x04\x27\x84\x20\x8e\x08\x40\x44\x90\x40\x2f\xa0\x20\x0f\x08\x40\x45\x90\x40\x27\xa0\x00\x04\x00\x10\xf0\x44\x50\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8008, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\xff\xf7\x11\x93\x04\x07\x20\xf0\x60\x04\x61\x84\x04\x5c\x84\x40\x57\xa0\x00\x04\x00\x10\x61\x84\x00\x20\x08\x20\x1f\x08\x40\xff", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x80a0, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x10\x00\x08\x40\x5c\x90\x40\x57\xa0\x04\x74\x84\x10\x00\x20\x00\x00\x08\x40\x74\xa0\x00\x01\x11\x20\x05\x07\x00\x40\x21\x70\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8008, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x7f\xff\x21\x08\xff\x84\x42\x00\x90\x85\x02\x07\x20\xf0\x60\x7f\xff\x11\x60\x20\x08\x00\xd0\x11\x40\x00\x08\x00\x02\x11\x86\x1b", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8007, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x40\x74\xa0\x08\x6f\x84\x00\x00\x11\x04\xf1\x84\x00\x40\x21\x21\xf7\x00\x02\x00\x11\x60\x07\x07\x10\x20\x08\x40\xc3\x90\x20\x2f", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8008, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x80\x00\x11\x70\x02\x07\x7f\xff\x11\x10\x00\x08\x40\x8d\x90\x40\x85\xa0\x08\x6e\x84\x00\x00\x11\x04\xf0\x84\x00\x40\x21\x22\x07", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8000, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x02\x11\x60\x07\x07\x10\x20\x08\x40\x43\x90\x20\x2f\x08\x80\x00\x11\x70\x02\x07\x7f\xff\x11\x10\x00\x08\x40\x0d\x90\x40\x05", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x80a0, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x10\xec\x84\x00\x10\x08\x10\xe7\x84\x40\xe7\xa0\x20\x0f\x08\x40\xef\xa0\x10\x6d\x84\x00\x10\x08\x10\x6c\x84\x40\x6c\xa0\x20\x0f", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8008, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x40\x7d\xa0\x7f\xff\x11\x00\x04\x00\x10\xef\x84\x00\x10\x08\x10\xee\x84\x40\xee\xa0\x20\x0f\x08\x40\xbd\xa0\x10\x7d\x84\x00\x10", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8008, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x10\x7c\x84\x40\x7c\xa0\x20\x0f\x08\x40\x3d\xa0\x40\x00\x11\x3e\x9b\x00\xfb\xff\x21\x6f\x14\x43\x3e\x9e\x00\xff\xfb\x21\x6e\x14", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8043, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x3d\x57\x00\x40\xaf\xa0\xa0\x14\x43\x3d\x5a\x00\x40\x2f\xa0\x20\x14\x43\x00\x04\x00\x3d\x5e\x00\x40\xa5\xa0\xb0\x14\x43\x3d\x61", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8000, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x40\x25\xa0\x30\x14\x43\x00\x00\x00\x22\x28\x00\x00\x02\x07\x22\x26\x00\x8a\x03\x07\x89\x04\x07\x40\x7e\xa0\x40\xbd\x90\x98\x14", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8043, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x10\x9c\x84\x20\x8f\x08\x40\x9a\x90\x40\x99\xa0\x20\x2e\x08\x40\xbd\x90\x00\x10\x08\x40\x9b\xa0\x20\x0e\x08\x7f\xff\x21\x40\xf5", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8090, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x00\x00\x22\x3c\x00\x00\x02\x07\x22\x3a\x00\x82\x03\x07\x81\x04\x07\x40\x7e\xa0\x40\x3d\x90\x18\x14\x43\x10\x1c\x84\x20\x8f", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8008, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x40\x1a\x90\x40\x19\xa0\x20\x2e\x08\x40\x3d\x90\x00\x10\x08\x40\x1b\xa0\x20\x0e\x08\x7f\xff\x21\x40\xf5\x90\x3d\x8c\x00\xb8\x14", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8043, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x40\xc2\xa0\x3d\x8f\x00\x38\x14\x43\x40\x42\xa0\x00\x04\x00\x10\x51\x84\x20\x0f\x08\x7f\xc0\x11\x40\x51\xa0\x08\xbb\x84\x08\x3b", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8084, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\xcb\x90\x11\x9e\x02\x07\xc7\x00\x11\x40\x7f\xa0\x08\xba\x84\x08\x3a\x84\x74\x70\x11\x9e\x02\x07\x59\x00\x11\x40\x7f\xa0\x3e\xed", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8000, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\xfd\xff\x21\xf1\x14\x43\x3e\xf0\x00\xff\xfd\x21\xf0\x14\x43\x00\x04\x00\x04\xb9\x84\x40\xb6\xa0\x04\x39\x84\x40\x36\xa0\x00\x04", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8000, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x3e\xc3\x00\x40\x87\xa0\x80\x14\x43\x3e\xc6\x00\x40\x07\xa0\x00\x14\x43\x00\x04\x00\x00\x00\x00\x04\xf5\x84\x00\x00\x21\x70\x03", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8007, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x10\xf5\x84\x10\x00\x08\x40\xf3\x90\x40\xf5\xa0\x3e\xd2\x00\x40\x85\xa0\x88\x14\x43\x3e\xd5\x00\x40\x05\xa0\x08\x14\x43\x00\x04", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8000, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x01\x07\x00\x02\x07\x00\x03\x07\x00\x04\x07\x00\x06\x07\x00\x16\x07\x00\x1e\x07\x00\x24\x07\x00\x3c\x07\x00\x72\x07\x00\x8d", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8007, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\xe0\x07\x00\xf6\x07\x01\x9f\x07\x01\xd1\x07\x00\x10\x07\x1f\xff\x07\x20\x03\x60\x0f\x5f\x07\x08\xfa\x84\x04\x11\x44\xff\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8011, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x2f\x63\x07\x70\x10\x08\x00\xf0\x21\x50\x00\x08\x00\xf0\x21\x40\xf9\x90\x00\x08\x07\x3e\x79\x00\x0f\x6b\x07\x90\x01\x07\x40\xf9", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x80a0, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x3f\x6e\x07\x70\x00\x08\x00\x7f\x11\x40\xf8\xa0\x9d\x07\x07\x20\x12\x60\x08\xfa\x84\x04\x11\x44\x3e\x54\x00\x00\x16\x07\x48\x80", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8011, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x08\x09\x44\x40\x75\x90\x7f\xef\x07\x10\x00\x20\x00\x10\x08\xff\xff\x21\x06\x00\x84\x40\xfb\xa0\x60\x00\x08\x00\x00\x21\x40\xff", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8090, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x10\xfb\x84\x60\x20\x08\x40\xfb\x90\x30\x00\x08\x00\x08\x11\x3d\xea\x00\x04\xfb\x84\x3d\xec\x00\x04\xff\x84\x40\xf8\xa0\x04\x11", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8044, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x8f\xff\x07\x20\x19\x60\x3e\xd2\x00\x00\x31\x07\x00\x01\x00\x00\x33\x07\x00\x02\x00\x27\x18\x43\x75\x00\x43\x8f\xff\x07\x20\x19", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8060, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x04\xf5\x84\x40\xf2\xa0\x04\x51\x84\x7f\xff\x21\x04\xf5\x84\x00\x00\x21\x04\xf3\x84\x00\x10\x21\x04\xf2\x84\x0c\x00\x21\x04\x72", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8044, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x77\x21\x3f\xfa\x07\x70\x20\x08\x00\x00\x11\x10\x2d\x44\x10\x2c\x44\x00\x20\x08\x10\x00\x11\x00\x00\x08\x00\x00\x11\x80\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8021, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x04\x73\x44\x07\x07\x21\x04\x72\x44\x00\x07\x21\x04\x73\x44\x07\x77\x21\x04\x73\x44\x00\x70\x21\x04\x2e\x44\x04\x2d\x44\x04\x2c", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8044, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x80\x00\x21\x04\x1c\x44\x04\x1b\x44\x0d\x00\x21\x04\x1c\x44\x04\x1b\x44\x0c\x80\x21\x04\x1c\x44\x04\x1b\x44\x1f\x08\x21\x0f\x18", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8043, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x08\x28\x44\x01\x11\x11\x08\x5d\x84\x10\x00\x10\x10\x00\x08\x40\x00\x21\x30\x04\x07\x40\xff\x90\x50\x20\x08\xc0\x00\x11\x10\xff", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8084, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x20\x08\x00\x40\x11\x40\x00\x08\x00\x01\x11\x20\x51\x60\x10\x00\x44\x60\x00\x08\x40\x54\x90\x20\x00\x60\x00\x79\x07\x81\x48", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8007, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x80\x03\x07\x40\xf8\xa0\x48\xc0\x11\x00\x77\x07\x00\x78\x07\x00\x79\x07\x00\x04\x07\x00\x7b\x07\x00\x7c\x07\x00\x7d\x07\x00\x55", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8007, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x7f\x07\x00\x80\x07\x00\x81\x07\x00\x74\x07\x00\x83\x07\x00\x82\x07\x00\x85\x07\x00\x86\x07\x0f\xef\x07\x1f\xff\x07\xff\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8011, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x10\x00\x20\x30\x10\x08\x00\x01\x21\x50\x00\x08\x00\x0f\x21\x40\xf9\x90\x30\x90\x07\x70\x10\x08\x00\x80\x21\x50\x00\x08\x00\xf0", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8021, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x08\xf9\x84\x04\xf8\x84\x2f\xff\x07\x3e\x59\x00\x04\xf1\x84\x04\xf0\x84\x04\x5a\x84\x00\x00\x21\x04\xf6\x84\x00\x02\x21\x04\xfa", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8084, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x40\x00\x21\x04\xf7\x84\x01\x04\x21\x04\x1c\x44\x04\x1b\x44\x0b\x23\x21\x0f\x18\x43\x04\x70\x44\x06\x66\x21\x04\x3b\x44\x04\x39", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8044, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x80\x21\x04\x3c\x44\x2a\x0a\x21\x04\x2f\x44\x00\x44\x21\x04\x29\x44\x00\x00\x21\x03\x19\x42\x4e\x19\x43\x0c\x59\x43\x27\x18", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8043, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x15\x00\x43\x04\x22\x44\x03\x07\x21\x04\x21\x44\x11\x11\x21\x04\x20\x44\x33\x33\x21\x00\x00\x42\xc0\x3d\x42\x80\x3d\x43\x04\x35", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8044, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x00\x21\x04\x05\x43\x42\xcd\x00", - .reg_data_seq_size = 9, - },{ - .reg_addr = 0x88ef, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x00\x00\x20\x00\x18\x00\x00\x00\x00\xab\x0a\x00\x40\x00\x40\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x27\x83\x64\x7e\xca\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x88b2, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x7f\x59\x7f\xbe\x7f\xfe\x7f\xfe\x7f\xee\x73\x54\x4c\x70\x5a\x00\x6b\x0e\x6b\x1c\x5b\xcb\x32\x8c\x0b\xd2\x13\x07\x28\x01\x49\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8800, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x00\x00\x00\xff\x7f\x0b\x97\x14\xae\xf7\x53\x26\x63\x07\x46\x00\x20\x00\x89\x00\x40\x80\x41\x00\x7f\xff\x7f\xd3\x09\x00\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x88ff, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x7f\x00\x00\x00\x00\x90\xcb\x70\x74\xfe\x7f\x52\x09\x00\x00\xfe\x7f\x00\x00\x00\x00\x00\xf2\x00\x40\xf0\x7f\x00\x0c\x00\x00\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8800, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x00\x00\x00\x00\x4a\x00\x4a\x00\x24\xff\x7f\x00\x00\x00\x00\x00\x00\x00\x00\xff\x7f\x00\x00\x00\x50\x00\x30\x00\x00\x00\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8800, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x00\x00\xa0\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xff\x7f\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8800, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x00\x00\x00\xff\x7f\x00\x78\x00\x08\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\xff\x7f\x00\x40\x00\x40\x00\x00\x00\x00\x00\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8800, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x00\x80\xff\x7f\x1c\x1b\xc5\x07\xc0\x20\x12\xf0\x00\x10\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8800, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\xcc\x59\x00\x00\x00\x40\x00\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8800, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xff\x7f\x0b", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8897, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x14\xae\xf7\x53\x26\x63\x07\x46\x00\x20\x00\x89\x00\x40\x80\x41\x00\x7f\xff\x7f\xd3\x09\x00\x00\xff\x7f\x00\x00\x00\x00\x90\xcb", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8870, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x74\xfe\x7f\x52\x09\x00\x00\xfe\x7f\x00\x00\x00\x00\x00\xf2\x00\x40\xf0\x7f\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x884a, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x24\xff\x7f\x00\x00\x00\x00\x00\x00\x00\x00\xff\x7f\x00\x00\x00\x50\x00\x30\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x00\x03", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8800, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\xff\x7f\x00\x00\x00\x00\x00\x00\xff\x7f\x00", - .reg_data_seq_size = 32, - },{ - .reg_addr = 0x8878, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0000, - .data_type = MSM_CAMERA_I2C_SEQ_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "\x00\x08\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\xff\x7f\x00\x40\x00\x40", - .reg_data_seq_size = 18, - },{ - .reg_addr = 0x8205, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0c00, - .data_type = MSM_CAMERA_I2C_WORD_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "", - .reg_data_seq_size = 0, - },{ - .reg_addr = 0x8205, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0d00, - .data_type = MSM_CAMERA_I2C_WORD_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "", - .reg_data_seq_size = 0, - },{ - .reg_addr = 0x8c01, - .addr_type = MSM_CAMERA_I2C_WORD_ADDR, - .reg_data = 0x0001, - .data_type = MSM_CAMERA_I2C_BYTE_DATA, - .i2c_operation = MSM_OIS_WRITE, - .delay = 0, - .reg_data_seq = "", - .reg_data_seq_size = 0, - } -}; - - /* // still mode settings: {0x847f, 0x0c0c,}, //_M_EQCTL @@ -1775,26 +616,6 @@ static struct reg_settings_ois_t ois_init_settings[] = { {0x847f, 0x0d0d,}, //_M_EQCTL */ -static struct msm_camera_i2c_reg_array init_array_s5k3p8sp[] = { - {0x6028,0x2000,0}, {0x6214,0x7971,0}, {0x6218,0x7150,0}, {0x30e,0x3d,0}, - {0x6028,0x2000,0}, {0x602a,0x2f38,0}, {0x6f12,0x88,0}, {0x6f12,0xd70,0}, - {0x344,0x18,0}, - {0x348,0x1217,0}, // last_pixel = 0x90C*2 - {0x346,0x18,0}, - {0x34a,0xd97,0}, // last_line = 0x6CC*2 - {0x34c,0x900,0}, // width? - {0x34e,0x6c0,0}, // height? - {0x342,0x1400,0}, // line_length_pclk - {0x340,0xe3b,0}, // frame_length_lines - {0x202,0x200,0}, // integ_time - {0x200,0x618,0}, - {0x900,0x122,0}, {0x380,0x1,0}, {0x382,0x3,0}, {0x384,0x3,0}, {0x386,0x1,0}, {0x400,0x0,0}, {0x404,0x10,0}, - {0x3604,0x2,0}, {0x3606,0x103,0}, {0xf496,0x48,0}, {0xf470,0x20,0}, {0xf43a,0x15,0}, {0xf484,0x6,0}, {0xf440,0xaf,0}, {0xf442,0x44c6,0}, - {0xf408,0xfff7,0}, {0x3664,0x19,0}, {0xf494,0x1010,0}, {0x367a,0x100,0}, {0x362a,0x104,0}, {0x362e,0x404,0}, {0x32b2,0x8,0}, {0x3286,0x3,0}, {0x328a,0x5,0}, - {0xf47c,0x1f,0}, {0xf62e,0xc5,0}, {0xf630,0xcd,0}, {0xf632,0xdd,0}, {0xf634,0xe5,0}, {0xf636,0xf5,0}, {0xf638,0xfd,0}, {0xf63a,0x10d,0}, {0xf63c,0x115,0}, {0xf63e,0x125,0}, {0xf640,0x12d,0}, - {0x6028,0x2000,0}, {0x602a,0x1704,0}, {0x6f12,0x8011,0}, {0x3070,0x0,0}, {0xb0e,0x0,0}, {0x317a,0x7,0}, {0x31c0,0xc8,0}, {0x1006,0x4,0}, {0x31a4,0x102,0}, -}; - static struct msm_camera_i2c_reg_array init_array_ov8865[] = { // round 1 //{0x103,0x1,0}, // software reset