int sr130pc10_sensor_ext_config(void __user *argp) { struct sensor_ext_cfg_data cfg_data; int err = 0; printk(KERN_DEBUG "[teddy][%s][E]\n", __func__); if (copy_from_user( (void *)&cfg_data, (const void *)argp, sizeof(cfg_data))) printk(KERN_DEBUG "fail copy_from_user!\n"); switch (cfg_data.cmd) { case EXT_CFG_SET_BRIGHTNESS: err = sr130pc10_set_exposure_value(0, cfg_data.value_1); break; case EXT_CFG_SET_ISO: /*err = s5k5ccg_set_ISO(0, cfg_data.value_1);*/ break; case EXT_CFG_SET_MOVIE_MODE: sr130pc10_set_movie_mode(cfg_data.value_1); break; case EXT_CFG_GET_EXIF: sr130pc10_get_exif(&cfg_data.value_1, &cfg_data.value_2); break; case EXT_CAM_SET_FLIP: sr130pc10_set_flipmode(cfg_data.value_1); break; default: break; } if (copy_to_user( (void *)argp, (const void *)&cfg_data, sizeof(cfg_data))) printk(KERN_DEBUG "fail copy_to_user!\n"); return err; }
static long sr130pc10_set_sensor_mode(int mode) { int cnt, vsync_value; printk(KERN_DEBUG "[CAM-SENSOR] =Sensor Mode\n "); switch (mode) { case SENSOR_PREVIEW_MODE: case SENSOR_VIDEO_MODE: printk(KERN_DEBUG "[SR130PC10]-> Preview\n"); if (sr130pc10_ctrl->op_mode == 0) { sr130pc10_sensor_write_list(sr130pc10_reg_init, sizeof(sr130pc10_reg_init) / sizeof(sr130pc10_reg_init[0]), "sr130pc10_reg_init"); sr130pc10_ctrl->op_mode = 1; if (sr130pc10_ctrl->dtp_mode == 1) sr130pc10_check_dataline(1); } factory_test = 0; for (cnt = 0; cnt < 200; cnt++) { vsync_value = __gpio_get_value(14); if (vsync_value) { /*printk(KERN_DEBUG " on preview, start cnt:%d vsync_value:%d\n", cnt, vsync_value); */ break; } else { /*printk(KERN_DEBUG " on preview, " "wait cnt:%d vsync_value:%d\n", cnt, vsync_value);*/ /*msleep(1); changed for coding rule*/ udelay(1000); } } printk(KERN_DEBUG " on preview, " "wait cnt:%d vsync_value:%d\n", cnt, vsync_value); sr130pc10_sensor_write_list(sr130pc10_preview_reg, sizeof(sr130pc10_preview_reg) / sizeof(sr130pc10_preview_reg[0]), "sr130pc10_preview_reg"); /* preview start */ if (sr130pc10_ctrl->cam_mode == SENSOR_MOVIE) sr130pc10_set_movie_mode(SENSOR_MOVIE); sr130pc10_set_exposure_value(0, sr130pc10_ctrl->settings.exposure); break; case SENSOR_SNAPSHOT_MODE: case SENSOR_RAW_SNAPSHOT_MODE: printk(KERN_DEBUG "[PGH}-> Capture\n"); if (Flipmode) { sr130pc10_sensor_write_list( sr130pc10_capture_reg_X_Flip, sizeof(sr130pc10_capture_reg_X_Flip) / sizeof(sr130pc10_capture_reg_X_Flip[0]), "sr130pc10_capture_reg_X_Flip"); /* preview start */ } else { sr130pc10_sensor_write_list(sr130pc10_capture_reg, sizeof(sr130pc10_capture_reg) / sizeof(sr130pc10_capture_reg[0]), "sr130pc10_capture_reg"); /* preview start */ } /*SecFeature : for Android CCD preview mirror / snapshot non-mirror if(factory_test == 0) { if(rotation_status == 90 || rotation_status == 270) { sr130pc10_sensor_write(0x03, 0x00); sr130pc10_sensor_write(0x11, 0x93); } else { sr130pc10_sensor_write(0x03, 0x00); sr130pc10_sensor_write(0x11, 0x90); } } */ break; default: return 0; } return 0; }