Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- techmik@michaels-laptop:~$ diff ~/android/system/kernel/samsung/2.6.35/drivers/media/video/ce147.c ~/xcal/gb/drivers/media/video/ce147.c
- 2,5c2
- < * Driver for CE147 (5MP Camera) from NEC
- < *
- < * Copyright © 2010 Samsung Electronics
- < * Copyright 2010 Kolja Dummann <k.dummann@gmail.com>
- ---
- > * Driver for CE147 (5MP Camera) from NEC
- 15d11
- < #include <linux/version.h>
- 16a13,14
- > #include <linux/rtc.h>
- > #include <linux/completion.h>
- 18d15
- < #include <media/v4l2-subdev.h>
- 26,32c23
- < #include <linux/rtc.h>
- < #include <mach/gpio.h>
- < #include <plat/gpio-cfg.h>
- < #include <mach/regs-gpio.h>
- < #include <mach/regs-clock.h>
- <
- < //#define MDNIE_TUNING
- ---
- > /* #define MDNIE_TUNING */
- 34c25
- < #define CE147_DRIVER_NAME "CE147"
- ---
- > #define CE147_DRIVER_NAME "CE147"
- 36,37c27,28
- < #define FORMAT_FLAGS_COMPRESSED 0x3
- < #define SENSOR_JPEG_SNAPSHOT_MEMSIZE 0x360000
- ---
- > #define FORMAT_FLAGS_COMPRESSED 0x3
- > #define SENSOR_JPEG_SNAPSHOT_MEMSIZE 0x360000
- 39,41c30,31
- < //#define CE147_DEBUG
- < //#define CE147_INFO
- < #define CE147_CAM_POWER
- ---
- > /* #define CE147_DEBUG */
- > /* #define CE147_INFO */
- 44c34
- < #define ce147_msg dev_err
- ---
- > #define ce147_msg dev_err
- 46c36
- < #define ce147_msg dev_dbg
- ---
- > #define ce147_msg dev_dbg
- 50c40
- < #define ce147_info dev_err
- ---
- > #define ce147_info dev_err
- 52c42
- < #define ce147_info dev_dbg
- ---
- > #define ce147_info dev_dbg
- 55,56d44
- < #define LOGV pr_warn
- <
- 58,60c46,48
- < #define DEFAULT_PIX_FMT V4L2_PIX_FMT_UYVY /* YUV422 */
- < #define DEFUALT_MCLK 24000000
- < #define POLL_TIME_MS 10
- ---
- > #define DEFAULT_PIX_FMT V4L2_PIX_FMT_UYVY /* YUV422 */
- > #define DEFUALT_MCLK 24000000
- > #define POLL_TIME_MS 10
- 63,128c51,124
- < #define CMD_VERSION 0x00
- < #define DATA_VERSION_FW 0x00
- < #define DATA_VERSION_DATE 0x01
- < #define CMD_GET_BATCH_REFLECTION_STATUS 0x02
- < #define DATA_VERSION_SENSOR 0x03
- < #define CMD_HD_PREVIEW 0x03
- < #define CMD_SET_WB 0x04
- < #define DATA_VERSION_AF 0x05
- < #define CMD_SET_FLASH_MANUAL 0x06
- < #define CMD_SET_EXIF_CTRL 0x07//ykh
- < #define CMD_AE_WB_LOCK 0x11
- < #define CMD_SET_ANTI_BANDING 0x14
- < #define CMD_SET_WB_AUTO 0x1A
- < #define CMD_SET_AUTO_FOCUS_MODE 0x20
- < #define CMD_START_AUTO_FOCUS_SEARCH 0x23
- < #define CMD_CHECK_AUTO_FOCUS_SEARCH 0x24
- < #define CMD_STOP_LENS_MOVEMENT 0x35
- < #define CMD_SET_EFFECT 0x3D
- < #define CMD_SET_TOUCH_AUTO_FOCUS 0x4D
- < #define CMD_START_OT 0x50
- < #define CMD_CHECK_OT 0x51
- < #define CMD_PREVIEW_SIZE 0x54
- < #define CMD_FPS 0x5A
- < #define CMD_SET_ANTI_SHAKE 0x5B
- < #define CMD_SET_DATA 0x65
- < #define CMD_DATA_OUT_REQ 0x66
- < #define CMD_PREVIEW 0x6B
- < #define CMD_PREVIEW_STATUS 0x6C
- < #define CMD_CAPTURE_SIZE 0x73
- < #define CMD_BUFFERING_CAPTURE 0x74
- < #define CMD_SET_SMART_AUTO 0x82
- < #define CMD_GET_SMART_AUTO_STATUS 0x83
- < #define CMD_SET_WDR 0x88
- < #define CMD_JPEG_SIZE 0x8E
- < #define CMD_JPEG_BUFFERING 0x8F
- < #define CMD_JPEG_CONFIG 0x90
- < #define CMD_JPEG_BUFFERING2 0x92//ykh
- < #define CMD_SET_FACE_DETECTION 0x9A
- < #define CMD_SET_FACE_LOCK 0x9C
- < #define CMD_INFO_EXIF 0xA0
- < #define CMD_INFO_MODEL 0xA1
- < #define CMD_INFO_ROT 0xA2
- < #define CMD_INFO_LONGITUDE_LATITUDE 0xA3
- < #define CMD_INFO_ALTITUDE 0xA4
- < #define CMD_SET_FLASH 0xB2
- < #define CMD_SET_DZOOM 0xB9
- < #define CMD_GET_DZOOM_LEVEL 0xBA
- < #define CMD_SET_EFFECT_SHOT 0xC0
- < #define DATA_VERSION_GAMMA 0x0E0
- < #define DATA_VERSION_SENSOR_MAKER 0xE0
- < #define CMD_CHECK_DATALINE 0xEC
- < #define CMD_INIT 0xF0
- < #define CMD_FW_INFO 0xF2
- < #define CMD_FWU_UPDATE 0xF3
- < #define CMD_FW_UPDATE 0xF4
- < #define CMD_FW_STATUS 0xF5
- < #define CMD_FW_DUMP 0xFB
- < #define CMD_GPS_TIMESTAMP 0xA7
- <
- < #define CE147_FW_F2_PATH "/system/vendor/firmware/CE147F02.bin"
- <
- < static unsigned char MAIN_SW_FW[4] = {0x0, 0x0, 0x0, 0x0};/* {FW Maj, FW Min, PRM Maj, PRM Min} */
- < static int MAIN_SW_DATE_INFO[3] = {0x0, 0x0, 0x0}; /* {Year, Month, Date} */
- <
- < static unsigned char ce147_buf_set_dzoom[31] = {0xff,0xe7,0xd3,0xc2,0xb4,0xa7,0x9c,0x93,0x8b,0x83,0x7c,0x76,0x71,0x6c,0x67,0x63,0x5f,0x5b,0x58,0x55,0x52,0x4f,0x4d,0x4a,0x48,0x46,0x44,0x42,0x41,0x40,0x3f};
- < static int DZoom_State = 0;
- ---
- > #define CMD_VERSION 0x00
- > #define DATA_VERSION_FW 0x00
- > #define DATA_VERSION_DATE 0x01
- > #define CMD_GET_BATCH_REFLECTION_STATUS 0x02
- > #define DATA_VERSION_SENSOR 0x03
- > #define CMD_HD_PREVIEW 0x03
- > #define CMD_SET_WB 0x04
- > #define DATA_VERSION_AF 0x05
- > #define CMD_SET_FLASH_MANUAL 0x06
- > #define CMD_SET_EXIF_CTRL 0x07
- > #define CMD_AE_WB_LOCK 0x11
- > #define CMD_SET_ANTI_BANDING 0x14
- > #define CMD_SET_WB_AUTO 0x1A
- > #define CMD_SET_AUTO_FOCUS_MODE 0x20
- > #define CMD_START_AUTO_FOCUS_SEARCH 0x23
- > #define CMD_CHECK_AUTO_FOCUS_SEARCH 0x24
- > #define CMD_STOP_LENS_MOVEMENT 0x35
- > #define CMD_SET_EFFECT 0x3D
- > #define CMD_SET_TOUCH_AUTO_FOCUS 0x4D
- > #define CMD_START_OT 0x50
- > #define CMD_CHECK_OT 0x51
- > #define CMD_PREVIEW_SIZE 0x54
- > #define CMD_FPS 0x5A
- > #define CMD_SET_ANTI_SHAKE 0x5B
- > #define CMD_SET_DATA 0x65
- > #define CMD_DATA_OUT_REQ 0x66
- > #define CMD_PREVIEW 0x6B
- > #define CMD_PREVIEW_STATUS 0x6C
- > #define CMD_CAPTURE_SIZE 0x73
- > #define CMD_BUFFERING_CAPTURE 0x74
- > #define CMD_SET_SMART_AUTO 0x82
- > #define CMD_GET_SMART_AUTO_STATUS 0x83
- > #define CMD_SET_WDR 0x88
- > #define CMD_JPEG_SIZE 0x8E
- > #define CMD_JPEG_BUFFERING 0x8F
- > #define CMD_JPEG_CONFIG 0x90
- > #define CMD_JPEG_BUFFERING2 0x92
- > #define CMD_SET_FACE_DETECTION 0x9A
- > #define CMD_SET_FACE_LOCK 0x9C
- > #define CMD_INFO_EXIF 0xA0
- > #define CMD_INFO_MODEL 0xA1
- > #define CMD_INFO_ROT 0xA2
- > #define CMD_INFO_LONGITUDE_LATITUDE 0xA3
- > #define CMD_INFO_ALTITUDE 0xA4
- > #define CMD_SET_FLASH 0xB2
- > #define CMD_SET_DZOOM 0xB9
- > #define CMD_GET_DZOOM_LEVEL 0xBA
- > #define CMD_SET_EFFECT_SHOT 0xC0
- > #define DATA_VERSION_GAMMA 0xE0
- > #define DATA_VERSION_SENSOR_MAKER 0xE0
- > #define CMD_CHECK_DATALINE 0xEC
- > #define CMD_INIT 0xF0
- > #define CMD_FW_INFO 0xF2
- > #define CMD_FWU_UPDATE 0xF3
- > #define CMD_FW_UPDATE 0xF4
- > #define CMD_FW_STATUS 0xF5
- > #define CMD_FW_DUMP 0xFB
- > #define CMD_GPS_TIMESTAMP 0xA7
- >
- > #define CE147_FW_F2_PATH "/system/firmware/CE147F02.bin"
- > #define FACTORY_CHECK
- >
- > /* { FW Maj, FW Min, PRM Maj, PRM Min } */
- > static unsigned char MAIN_SW_FW[4] = { 0x0, 0x0, 0x0, 0x0 };
- > /* { Year, Month, Date } */
- > static int MAIN_SW_DATE_INFO[3] = { 0x0, 0x0, 0x0 };
- >
- > static unsigned char ce147_buf_set_dzoom[31] = {
- > 0xff, 0xe7, 0xd3, 0xc2, 0xb4, 0xa7, 0x9c, 0x93, 0x8b, 0x83,
- > 0x7c, 0x76, 0x71, 0x6c, 0x67, 0x63, 0x5f, 0x5b, 0x58, 0x55,
- > 0x52, 0x4f, 0x4d, 0x4a, 0x48, 0x46, 0x44, 0x42, 0x41, 0x40,
- > 0x3f
- > };
- > static int DZoom_State;
- 137,144c133,155
- < static int ce147_set_iso(struct v4l2_subdev * sd, int iso);
- < static int ce147_set_metering(struct v4l2_subdev * sd, int metring);
- < static int ce147_set_ev(struct v4l2_subdev * sd, int ev);
- < static int ce147_set_slow_ae(struct v4l2_subdev * sd, int ae);
- < static int ce147_set_gamma(struct v4l2_subdev * sd, int gamma);
- < static int ce147_set_effect(struct v4l2_subdev * sd, int effect);
- < static int ce147_set_white_balance(struct v4l2_subdev * sd, int wb);
- < static int ce147_s_ext_ctrl(struct v4l2_subdev *sd, struct v4l2_ext_control *ctrl);
- ---
- > static int ce147_set_iso(struct v4l2_subdev *sd, struct v4l2_control *ctrl);
- > static int ce147_set_metering(struct v4l2_subdev *sd,
- > struct v4l2_control *ctrl);
- > static int ce147_set_ev(struct v4l2_subdev *sd, struct v4l2_control *ctrl);
- > static int ce147_set_slow_ae(struct v4l2_subdev *sd, struct v4l2_control *ctrl);
- > static int ce147_set_gamma(struct v4l2_subdev *sd, struct v4l2_control *ctrl);
- > static int ce147_set_effect(struct v4l2_subdev *sd, struct v4l2_control *ctrl);
- > static int ce147_set_white_balance(struct v4l2_subdev *sd,
- > struct v4l2_control *ctrl);
- > static int ce147_s_ext_ctrl(struct v4l2_subdev *sd,
- > struct v4l2_ext_control *ctrl);
- >
- > enum {
- > AUTO_FOCUS_FAILED,
- > AUTO_FOCUS_DONE,
- > AUTO_FOCUS_CANCELLED,
- > };
- >
- > enum af_operation_status {
- > AF_NONE = 0,
- > AF_START,
- > AF_CANCEL,
- > };
- 155,162c166,174
- < CE147_CAPTURE_VGA, /* 640 x 480 */
- < CE147_CAPTURE_WVGA, /* 800 x 480 */
- < CE147_CAPTURE_W1MP, /* 1600 x 960 */
- < CE147_CAPTURE_2MP, /* UXGA - 1600 x 1200 */
- < CE147_CAPTURE_W2MP, /* 35mm Academy Offset Standard 1.66 - 2048 x 1232, 2.4MP */
- < CE147_CAPTURE_3MP, /* QXGA - 2048 x 1536 */
- < CE147_CAPTURE_W4MP, /* WQXGA - 2560 x 1536 */
- < CE147_CAPTURE_5MP, /* 2560 x 1920 */
- ---
- > CE147_CAPTURE_VGA, /* 640 x 480 */
- > CE147_CAPTURE_WVGA, /* 800 x 480 */
- > CE147_CAPTURE_W1MP, /* 1600 x 960 */
- > CE147_CAPTURE_2MP, /* UXGA - 1600 x 1200 */
- > CE147_CAPTURE_W2MP, /* 35mm Academy Offset Standard 1.66
- > - 2048 x 1232, 2.4MP */
- > CE147_CAPTURE_3MP, /* QXGA - 2048 x 1536 */
- > CE147_CAPTURE_W4MP, /* WQXGA - 2560 x 1536 */
- > CE147_CAPTURE_5MP, /* 2560 x 1920 */
- 166c178
- < /* mode is 0 for preview, 1 for capture */
- ---
- > /* mode is 0 for preview, 1 for capture */
- 170c182
- < unsigned int height;
- ---
- > unsigned int height;
- 174,180c186,192
- < { CE147_OPRMODE_VIDEO, CE147_PREVIEW_QCIF, 176, 144 },
- < { CE147_OPRMODE_VIDEO, CE147_PREVIEW_QVGA, 320, 240 },
- < { CE147_OPRMODE_VIDEO, CE147_PREVIEW_592x480, 592, 480 },
- < { CE147_OPRMODE_VIDEO, CE147_PREVIEW_VGA, 640, 480 },
- < { CE147_OPRMODE_VIDEO, CE147_PREVIEW_D1, 720, 480 },
- < { CE147_OPRMODE_VIDEO, CE147_PREVIEW_WVGA, 800, 480 },
- < { CE147_OPRMODE_VIDEO, CE147_PREVIEW_720P, 1280, 720 },
- ---
- > { CE147_OPRMODE_VIDEO, CE147_PREVIEW_QCIF, 176, 144 },
- > { CE147_OPRMODE_VIDEO, CE147_PREVIEW_QVGA, 320, 240 },
- > { CE147_OPRMODE_VIDEO, CE147_PREVIEW_592x480, 592, 480 },
- > { CE147_OPRMODE_VIDEO, CE147_PREVIEW_VGA, 640, 480 },
- > { CE147_OPRMODE_VIDEO, CE147_PREVIEW_D1, 720, 480 },
- > { CE147_OPRMODE_VIDEO, CE147_PREVIEW_WVGA, 800, 480 },
- > { CE147_OPRMODE_VIDEO, CE147_PREVIEW_720P, 1280, 720 },
- 182,189c194,201
- < { CE147_OPRMODE_IMAGE, CE147_CAPTURE_VGA, 640, 480 },
- < { CE147_OPRMODE_IMAGE, CE147_CAPTURE_WVGA, 800, 480 },
- < { CE147_OPRMODE_IMAGE, CE147_CAPTURE_W1MP, 1600, 960 },
- < { CE147_OPRMODE_IMAGE, CE147_CAPTURE_2MP, 1600, 1200 },
- < { CE147_OPRMODE_IMAGE, CE147_CAPTURE_W2MP, 2048, 1232 },
- < { CE147_OPRMODE_IMAGE, CE147_CAPTURE_3MP, 2048, 1536 },
- < { CE147_OPRMODE_IMAGE, CE147_CAPTURE_W4MP, 2560, 1536 },
- < { CE147_OPRMODE_IMAGE, CE147_CAPTURE_5MP, 2560, 1920 },
- ---
- > { CE147_OPRMODE_IMAGE, CE147_CAPTURE_VGA, 640, 480 },
- > { CE147_OPRMODE_IMAGE, CE147_CAPTURE_WVGA, 800, 480 },
- > { CE147_OPRMODE_IMAGE, CE147_CAPTURE_W1MP, 1600, 960 },
- > { CE147_OPRMODE_IMAGE, CE147_CAPTURE_2MP, 1600, 1200 },
- > { CE147_OPRMODE_IMAGE, CE147_CAPTURE_W2MP, 2048, 1232 },
- > { CE147_OPRMODE_IMAGE, CE147_CAPTURE_3MP, 2048, 1536 },
- > { CE147_OPRMODE_IMAGE, CE147_CAPTURE_W4MP, 2560, 1536 },
- > { CE147_OPRMODE_IMAGE, CE147_CAPTURE_5MP, 2560, 1920 },
- 205c217
- < CE147_RUNMODE_IDLE,
- ---
- > CE147_RUNMODE_IDLE,
- 207c219
- < CE147_RUNMODE_RUNNING,
- ---
- > CE147_RUNMODE_RUNNING,
- 233c245
- < unsigned int main_size; /* Main JPEG file size */
- ---
- > unsigned int main_size; /* Main JPEG file size */
- 238c250
- < } ;
- ---
- > } ;
- 243c255
- < } ;
- ---
- > } ;
- 245c257
- < struct ce147_gps_info{
- ---
- > struct ce147_gps_info {
- 248,249c260,261
- < unsigned long gps_timeStamp;//ykh
- < char gps_processingmethod[50];//ykh
- ---
- > unsigned long gps_timeStamp;
- > char gps_processingmethod[50];
- 252c264
- < struct ce147_sensor_maker{
- ---
- > struct ce147_sensor_maker {
- 257c269
- < struct ce147_version_af{
- ---
- > struct ce147_version_af {
- 262c274
- < struct ce147_gamma{
- ---
- > struct ce147_gamma {
- 266c278
- < unsigned int bg_high;
- ---
- > unsigned int bg_high;
- 271,279c283,291
- < int tm_sec; /* seconds */
- < int tm_min; /* minutes */
- < int tm_hour; /* hours */
- < int tm_mday; /* day of the month */
- < int tm_mon; /* month */
- < int tm_year; /* year */
- < int tm_wday; /* day of the week */
- < int tm_yday; /* day in the year */
- < int tm_isdst; /* daylight saving time */
- ---
- > int tm_sec; /* seconds */
- > int tm_min; /* minutes */
- > int tm_hour; /* hours */
- > int tm_mday; /* day of the month */
- > int tm_mon; /* month */
- > int tm_year; /* year */
- > int tm_wday; /* day of the week */
- > int tm_yday; /* day in the year */
- > int tm_isdst; /* daylight saving time */
- 281,282c293,294
- < long int tm_gmtoff; /* Seconds east of UTC. */
- < const char *tm_zone; /* Timezone abbreviation. */
- ---
- > long int tm_gmtoff; /* Seconds east of UTC. */
- > const char *tm_zone; /* Timezone abbreviation. */
- 287,288c299,300
- < unsigned int direction;
- < unsigned int dgree;
- ---
- > unsigned int direction;
- > unsigned int dgree;
- 305c317
- < struct ce147_sensor_maker sensor_info;
- ---
- > struct ce147_sensor_maker sensor_info;
- 309a322,323
- > struct mutex ctrl_lock;
- > struct completion af_complete;
- 318c332
- < int anti_banding;
- ---
- > int anti_banding;
- 322,323c336,337
- < int pre_af_status;
- < int cur_af_status;
- ---
- > int pre_focus_mode;
- > enum af_operation_status af_status;
- 337c351
- < #if defined(CONFIG_ARIES_NTT) // Modify NTTS1
- ---
- > #if defined(CONFIG_ARIES_NTT) /* Modify NTTS1 */
- 340,341c354,355
- < int exif_ctrl;//ykh
- < int thumb_null;//ykh
- ---
- > int exif_ctrl;
- > int thumb_null;
- 344c358
- < static int condition = 0;
- ---
- > static int condition;
- 346,353c360,367
- < const static struct v4l2_fmtdesc capture_fmts[] = {
- < {
- < .index = 0,
- < .type = V4L2_BUF_TYPE_VIDEO_CAPTURE,
- < .flags = FORMAT_FLAGS_COMPRESSED,
- < .description = "JPEG + Postview",
- < .pixelformat = V4L2_PIX_FMT_JPEG,
- < },
- ---
- > static const struct v4l2_fmtdesc capture_fmts[] = {
- > {
- > .index = 0,
- > .type = V4L2_BUF_TYPE_VIDEO_CAPTURE,
- > .flags = FORMAT_FLAGS_COMPRESSED,
- > .description = "JPEG + Postview",
- > .pixelformat = V4L2_PIX_FMT_JPEG,
- > },
- 361,362c375,376
- < /**
- < * ce147_i2c_write_multi: Write (I2C) multiple bytes to the camera sensor
- ---
- > /**
- > * ce147_i2c_write_multi: Write (I2C) multiple bytes to the camera sensor
- 370c384
- < static int ce147_i2c_write_multi(struct i2c_client *client, unsigned char cmd,
- ---
- > static int ce147_i2c_write_multi(struct i2c_client *client, unsigned char cmd,
- 374,375c388,389
- < unsigned char buf[w_len+1];
- < struct i2c_msg msg = {client->addr, 0, w_len+1, buf};
- ---
- > unsigned char buf[w_len + 1];
- > struct i2c_msg msg = { client->addr, 0, w_len + 1, buf };
- 380c394
- < memcpy(buf+1, w_data, w_len);
- ---
- > memcpy(buf + 1, w_data, w_len);
- 383,386c397,402
- < int j;
- < pr_err("W: ");
- < for(j = 0; j <= w_len; j++){
- < pr_err("0x%02x ", buf[j]);
- ---
- > {
- > int j;
- > pr_debug("W: ");
- > for (j = 0; j <= w_len; j++)
- > pr_debug("0x%02x ", buf[j]);
- > pr_debug("\n");
- 390,392c406,408
- < while(retry_count--){
- < ret = i2c_transfer(client->adapter, &msg, 1);
- < if(ret == 1)
- ---
- > while (retry_count--) {
- > ret = i2c_transfer(client->adapter, &msg, 1);
- > if (ret == 1)
- 394d409
- < pr_err("%s: comfail0r retry\n", __func__);
- 397,399d411
- <
- < if(ret != 1)
- < pr_err("%s: i2c tranfer failed\n", __func__);
- 404,405c416,417
- < /**
- < * ce147_i2c_read_multi: Read (I2C) multiple bytes to the camera sensor
- ---
- > /**
- > * ce147_i2c_read_multi: Read (I2C) multiple bytes to the camera sensor
- 415,416c427,428
- < static int ce147_i2c_read_multi(struct i2c_client *client, unsigned char cmd,
- < unsigned char *w_data, unsigned int w_len,
- ---
- > static int ce147_i2c_read_multi(struct i2c_client *client, unsigned char cmd,
- > unsigned char *w_data, unsigned int w_len,
- 419,420c431,432
- < unsigned char buf[w_len+1];
- < struct i2c_msg msg = {client->addr, 0, w_len + 1, buf};
- ---
- > unsigned char buf[w_len + 1];
- > struct i2c_msg msg = { client->addr, 0, w_len + 1, buf };
- 425c437
- < memcpy(buf+1, w_data, w_len);
- ---
- > memcpy(buf + 1, w_data, w_len);
- 430,434c442,445
- < printk("R: ");
- < for(j = 0; j <= w_len; j++){
- < printk("0x%02x ", buf[j]);
- < }
- < printk("\n");
- ---
- > pr_debug("R: ");
- > for (j = 0; j <= w_len; j++)
- > pr_debug("0x%02x ", buf[j]);
- > pr_debug("\n");
- 438c449
- < while(retry_count--){
- ---
- > while (retry_count--) {
- 440c451
- < if(ret == 1)
- ---
- > if (ret == 1)
- 445c456
- < if(ret < 0)
- ---
- > if (ret < 0)
- 449,450c460,461
- < msg.len = r_len;
- < msg.buf = r_data;
- ---
- > msg.len = r_len;
- > msg.buf = r_data;
- 453,455c464,466
- < while(retry_count--){
- < ret = i2c_transfer(client->adapter, &msg, 1);
- < if(ret == 1)
- ---
- > while (retry_count--) {
- > ret = i2c_transfer(client->adapter, &msg, 1);
- > if (ret == 1)
- 463,465d473
- < #ifdef CE147_CAM_POWER
- <
- <
- 476c484
- < pdata = client->dev.platform_data;
- ---
- > pdata = client->dev.platform_data;
- 478,481c486,489
- < if (pdata->cam_power) {
- < pdata->cam_power(onoff);
- < msleep(5);
- < }
- ---
- > if (onoff == 1)
- > pdata->power_en(1);
- > else
- > pdata->power_en(0);
- 486,487d493
- < #endif //ifdef CE147_CAM_POWER
- <
- 490c496
- < * through the 'cmd' command register.
- ---
- > * through the 'cmd' command register.
- 495,496c501,502
- < * o 'timeout' (in ms) expires
- < * o the data read from device matches 'value'
- ---
- > * o 'timeout' (in ms) expires
- > * o the data read from device matches 'value'
- 502c508,509
- < static int ce147_waitfordone_timeout(struct i2c_client *client, unsigned char cmd, unsigned char value,
- ---
- > static int ce147_waitfordone_timeout(struct i2c_client *client,
- > unsigned char cmd, unsigned char value,
- 508c515,516
- < unsigned long jiffies_timeout = jiffies_start + msecs_to_jiffies(timeout);
- ---
- > unsigned long jiffies_timeout =
- > jiffies_start + msecs_to_jiffies(timeout);
- 510c518
- < if(polling_interval < 0)
- ---
- > if (polling_interval < 0)
- 513c521
- < while(time_before(jiffies, jiffies_timeout)){
- ---
- > while (time_before(jiffies, jiffies_timeout)) {
- 515,516c523,525
- < err = ce147_i2c_read_multi(client, cmd, NULL, 0, &cam_status, 1);
- < if(err < 0)
- ---
- > err = ce147_i2c_read_multi(client,
- > cmd, NULL, 0, &cam_status, 1);
- > if (err < 0)
- 519c528,529
- < ce147_msg(&client->dev, "Status check returns %02x\n", cam_status);
- ---
- > ce147_msg(&client->dev, "Status check returns %02x\n",
- > cam_status);
- 521c531
- < if(cam_status == value)
- ---
- > if (cam_status == value)
- 527c537
- < if(cam_status != value)
- ---
- > if (cam_status != value)
- 535c545
- < int err;
- ---
- > int err;
- 539c549
- < unsigned char ce147_buf_batch_data[1] = {0x00};
- ---
- > unsigned char ce147_buf_batch_data[1] = { 0x00 };
- 543,544c553,555
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write forget_batch_reflection_status\n", __func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write "
- > "forget_batch_reflection_status\n", __func__);
- 548,554c559,569
- < //To Do: This code needs timeout API for do-while
- < do
- < {
- < msleep(10);
- < err = ce147_i2c_read_multi(client, CMD_GET_BATCH_REFLECTION_STATUS, NULL, 0, &ce147_batch_ref_status, 1);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_read for get_batch_reflection_status\n", __func__);
- ---
- > /* TODO: This code needs timeout API for do-while */
- > do {
- > msleep(10);
- > err = ce147_i2c_read_multi(client,
- > CMD_GET_BATCH_REFLECTION_STATUS, NULL, 0,
- > &ce147_batch_ref_status, 1);
- >
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_read "
- > "for get_batch_reflection_status\n",
- > __func__);
- 558c573
- < } while(ce147_batch_ref_status && end_cnt < 200);
- ---
- > } while (ce147_batch_ref_status && end_cnt < 200);
- 560,562c575,577
- < if(end_cnt > 5)
- < {
- < ce147_msg(&client->dev, "%s: count(%d) status(%02x) \n", __func__, end_cnt, ce147_batch_ref_status);
- ---
- > if (end_cnt > 5) {
- > ce147_msg(&client->dev, "%s: count(%d) status(%02x)\n",
- > __func__, end_cnt, ce147_batch_ref_status);
- 564,567c579,582
- <
- < if (ce147_batch_ref_status != 0x00)
- < {
- < dev_err(&client->dev, "%s: failed: to get_batch_reflection_status\n", __func__);
- ---
- >
- > if (ce147_batch_ref_status != 0x00) {
- > dev_err(&client->dev, "%s: failed: "
- > "to get_batch_reflection_status\n", __func__);
- 578c593
- < char* buffer = NULL;
- ---
- > char *buffer = NULL;
- 584,585d598
- < //printk("ce147_read_main_SW_fw_version is called...\n");
- <
- 588,589c601
- < if (filep && (filep != ERR_PTR(-ENOENT)))
- < {
- ---
- > if (filep && (filep != ERR_PTR(-ENOENT))) {
- 592c604
- <
- ---
- >
- 595,597c607,609
- <
- < buffer = (char*)kmalloc(file_size+1, GFP_KERNEL);
- <
- ---
- >
- > buffer = kmalloc(file_size + 1, GFP_KERNEL);
- >
- 600c612
- <
- ---
- >
- 605,608c617,618
- < printk("File size : %d\n", file_size);
- < }
- < else
- < {
- ---
- > pr_debug("File size : %d\n", file_size);
- > } else
- 610d619
- < }
- 613c622
- < *fwSize = file_size;
- ---
- > *fwSize = file_size;
- 623c632
- < char fw_data[20] = {0, };
- ---
- > char fw_data[20] = { 0, };
- 632c641
- < printk(KERN_DEBUG "ce147_get_main_sw_fw_version Enter \n");
- ---
- > pr_debug("ce147_get_main_sw_fw_version Enter\n");
- 634,635c643,644
- < if((MAIN_SW_DATE_INFO[0] == 0x00) && (MAIN_SW_DATE_INFO[1] == 0x00) && (MAIN_SW_DATE_INFO[2] == 0x00))
- < {
- ---
- > if ((MAIN_SW_DATE_INFO[0] == 0x00) && (MAIN_SW_DATE_INFO[1] == 0x00)
- > && (MAIN_SW_DATE_INFO[2] == 0x00)) {
- 637,639c646,647
- < if(err < 0)
- < {
- < printk("fail : read main_sw_version \n");
- ---
- > if (err < 0) {
- > pr_debug("fail : read main_sw_version\n");
- 644c652
- < printk("fw_size : %d \n", fw_size);
- ---
- > pr_debug("fw_size : %d\n", fw_size);
- 646,649c654,655
- < for(i = 0; i < fw_size; i++)
- < {
- < printk("fw_data : %x \n", fw_data[i]);
- < }
- ---
- > for (i = 0; i < fw_size; i++)
- > pr_debug("fw_data : %x\n", fw_data[i]);
- 652c658
- < /* Main SW FW/PRM info */
- ---
- > /* Main SW FW/PRM info */
- 654,656c660,662
- < MAIN_SW_FW[1] = fw_data[main_sw_fw_prm_offset+1];
- < MAIN_SW_FW[2] = fw_data[main_sw_fw_prm_offset+2];
- < MAIN_SW_FW[3] = fw_data[main_sw_fw_prm_offset+3];
- ---
- > MAIN_SW_FW[1] = fw_data[main_sw_fw_prm_offset + 1];
- > MAIN_SW_FW[2] = fw_data[main_sw_fw_prm_offset + 2];
- > MAIN_SW_FW[3] = fw_data[main_sw_fw_prm_offset + 3];
- 658c664
- < /* Main SW Date info */
- ---
- > /* Main SW Date info */
- 660,661c666,667
- < MAIN_SW_DATE_INFO[1] = fw_data[main_sw_date_offset+1];
- < MAIN_SW_DATE_INFO[2] = fw_data[main_sw_date_offset+2];
- ---
- > MAIN_SW_DATE_INFO[1] = fw_data[main_sw_date_offset + 1];
- > MAIN_SW_DATE_INFO[2] = fw_data[main_sw_date_offset + 2];
- 663,669c669,676
- < printk(KERN_DEBUG "fw M:%d m:%d |prm M:%d m:%d \n", MAIN_SW_FW[0], MAIN_SW_FW[1], MAIN_SW_FW[2], MAIN_SW_FW[3]);
- < printk(KERN_DEBUG "y. m. d = %d.%d.%d \n", MAIN_SW_DATE_INFO[0], MAIN_SW_DATE_INFO[1], MAIN_SW_DATE_INFO[2]);
- < }
- < else
- < {
- < printk(KERN_DEBUG "already read main sw version \n");
- < }
- ---
- > pr_debug("fw M:%d m:%d |prm M:%d m:%d\n",
- > MAIN_SW_FW[0], MAIN_SW_FW[1],
- > MAIN_SW_FW[2], MAIN_SW_FW[3]);
- > pr_debug("y. m. d = %d.%d.%d\n",
- > MAIN_SW_DATE_INFO[0], MAIN_SW_DATE_INFO[1],
- > MAIN_SW_DATE_INFO[2]);
- > } else
- > pr_debug("already read main sw version\n");
- 677a685
- >
- 684c692
- < struct ce147_state *state = to_state(sd);
- ---
- > struct ce147_state *state = to_state(sd);
- 688,690c696,699
- <
- < /** Just before this function call, we enable the power and clock. Hence
- < * we need to wait for some time before we can start communicating with the sensor.
- ---
- >
- > /* Just before this function call, we enable the power and clock. Hence
- > * we need to wait for some time before we can start communicating
- > * with the sensor.
- 692c701
- < //msleep(10);
- ---
- > msleep(10);
- 694,696c703,706
- < err = ce147_i2c_write_multi(client, CMD_INIT, ce147_regbuf_init, ce147_reglen_init);
- < if(err < 0)
- < return -EIO;
- ---
- > err = ce147_i2c_write_multi(client, CMD_INIT,
- > ce147_regbuf_init, ce147_reglen_init);
- > if (err < 0)
- > return -EIO;
- 698,699c708,710
- < /* At least 700ms delay required to load the firmware for ce147 camera ISP */
- < msleep(700);
- ---
- > /* At least 700ms delay required to load the firmware
- > * for ce147 camera ISP */
- > msleep(700);
- 707c718,719
- < static int ce147_get_version(struct v4l2_subdev *sd, int object_id, unsigned char version_info[])
- ---
- > static int ce147_get_version(struct v4l2_subdev *sd, int object_id,
- > unsigned char version_info[])
- 710c722
- < unsigned char cmd_buf[1] = {0x00};
- ---
- > unsigned char cmd_buf[1] = { 0x00 };
- 714,716c726,727
- <
- < switch(object_id)
- < {
- ---
- >
- > switch (object_id) {
- 721c732
- < case DATA_VERSION_AF:
- ---
- > case DATA_VERSION_AF:
- 728,730c739,742
- < err = ce147_i2c_read_multi(client, CMD_VERSION, cmd_buf, cmd_len, version_info, info_len);
- < if(err < 0)
- < return -EIO;
- ---
- > err = ce147_i2c_read_multi(client, CMD_VERSION, cmd_buf, cmd_len,
- > version_info, info_len);
- > if (err < 0)
- > return -EIO;
- 737,738c749,750
- < struct ce147_state *state = to_state(sd);
- < unsigned char version_info[4] = {0x00, 0x00, 0x00, 0x00};
- ---
- > struct ce147_state *state = to_state(sd);
- > unsigned char version_info[4] = { 0x00, 0x00, 0x00, 0x00 };
- 743,744c755,756
- < if(err < 0)
- < return err;
- ---
- > if (err < 0)
- > return err;
- 746,747c758,759
- < state->fw.minor = version_info[0];
- < state->fw.major = version_info[1];
- ---
- > state->fw.minor = version_info[0];
- > state->fw.major = version_info[1];
- 757,758c769,770
- < struct ce147_state *state = to_state(sd);
- < unsigned char version_info[4] = {0x00, 0x00, 0x00, 0x00};
- ---
- > struct ce147_state *state = to_state(sd);
- > unsigned char version_info[4] = { 0x00, 0x00, 0x00, 0x00 };
- 763,764c775,776
- < if(err < 0)
- < return err;
- ---
- > if (err < 0)
- > return err;
- 775,776c787,788
- < struct ce147_state *state = to_state(sd);
- < unsigned char version_info[4] = {0x00, 0x00, 0x00, 0x00};
- ---
- > struct ce147_state *state = to_state(sd);
- > unsigned char version_info[4] = { 0x00, 0x00, 0x00, 0x00 };
- 781,782c793,794
- < if(err < 0)
- < return err;
- ---
- > if (err < 0)
- > return err;
- 791,792c803,804
- < struct ce147_state *state = to_state(sd);
- < unsigned char version_info[4] = {0x00, 0x00, 0x00, 0x00};
- ---
- > struct ce147_state *state = to_state(sd);
- > unsigned char version_info[4] = { 0x00, 0x00, 0x00, 0x00 };
- 797,798c809,810
- < if(err < 0)
- < return err;
- ---
- > if (err < 0)
- > return err;
- 808,809c820,821
- < struct ce147_state *state = to_state(sd);
- < unsigned char version_info[4] = {0x00, 0x00, 0x00, 0x00};
- ---
- > struct ce147_state *state = to_state(sd);
- > unsigned char version_info[4] = { 0x00, 0x00, 0x00, 0x00 };
- 814,815c826,827
- < if(err < 0)
- < return err;
- ---
- > if (err < 0)
- > return err;
- 817c829,830
- < //printk("ce147_get_af_version: data0: 0x%02x, data1: 0x%02x\n", version_info[0], version_info[1]);
- ---
- > /* pr_debug("ce147_get_af_version: data0: 0x%02x, data1: 0x%02x\n",
- > version_info[0], version_info[1]); */
- 828,830c841,843
- < struct ce147_state *state = to_state(sd);
- < unsigned char gamma_info[2] = {0x00, 0x00};
- < unsigned int info_len = 2;
- ---
- > struct ce147_state *state = to_state(sd);
- > unsigned char gamma_info[2] = { 0x00, 0x00 };
- > unsigned int info_len = 2;
- 833,836c846,849
- < unsigned char rg_low_buf[2] = {0x0C, 0x00};
- < unsigned char rg_high_buf[2] = {0x0D, 0x00};
- < unsigned char bg_low_buf[2] = {0x0E, 0x00};
- < unsigned char bg_high_buf[2] = {0x0F, 0x00};
- ---
- > unsigned char rg_low_buf[2] = { 0x0C, 0x00 };
- > unsigned char rg_high_buf[2] = { 0x0D, 0x00 };
- > unsigned char bg_low_buf[2] = { 0x0E, 0x00 };
- > unsigned char bg_high_buf[2] = { 0x0F, 0x00 };
- 840,842c853,856
- < err = ce147_i2c_read_multi(client, DATA_VERSION_GAMMA, rg_low_buf, buf_len, gamma_info, info_len);
- < if(err < 0)
- < return -EIO;
- ---
- > err = ce147_i2c_read_multi(client, DATA_VERSION_GAMMA,
- > rg_low_buf, buf_len, gamma_info, info_len);
- > if (err < 0)
- > return -EIO;
- 845c859,860
- < //printk("ce147_get_gamma_version1: data1: 0x%02x, data1: 0x%02x\n", gamma_info[0], gamma_info[1]);
- ---
- > /* pr_debug("ce147_get_gamma_version1: data1: 0x%02x, data1: 0x%02x\n",
- > gamma_info[0], gamma_info[1]); */
- 847,849c862,865
- < err = ce147_i2c_read_multi(client, DATA_VERSION_GAMMA, rg_high_buf, buf_len, gamma_info, info_len);
- < if(err < 0)
- < return -EIO;
- ---
- > err = ce147_i2c_read_multi(client, DATA_VERSION_GAMMA,
- > rg_high_buf, buf_len, gamma_info, info_len);
- > if (err < 0)
- > return -EIO;
- 852c868,874
- < //printk("ce147_get_gamma_version1: data1: 0x%02x, data1: 0x%02x\n", gamma_info[0], gamma_info[1]);
- ---
- > /* pr_debug("ce147_get_gamma_version1: data1: 0x%02x, data1: 0x%02x\n",
- > gamma_info[0], gamma_info[1]); */
- >
- > err = ce147_i2c_read_multi(client, DATA_VERSION_GAMMA,
- > bg_low_buf, buf_len, gamma_info, info_len);
- > if (err < 0)
- > return -EIO;
- 854,857d875
- < err = ce147_i2c_read_multi(client, DATA_VERSION_GAMMA, bg_low_buf, buf_len, gamma_info, info_len);
- < if(err < 0)
- < return -EIO;
- <
- 859c877,878
- < //printk("ce147_get_gamma_version1: data1: 0x%02x, data1: 0x%02x\n", gamma_info[0], gamma_info[1]);
- ---
- > /* pr_debug("ce147_get_gamma_version1: data1: 0x%02x, data1: 0x%02x\n",
- > gamma_info[0], gamma_info[1]); */
- 861,863c880,883
- < err = ce147_i2c_read_multi(client, DATA_VERSION_GAMMA, bg_high_buf, buf_len, gamma_info, info_len);
- < if(err < 0)
- < return -EIO;
- ---
- > err = ce147_i2c_read_multi(client, DATA_VERSION_GAMMA,
- > bg_high_buf, buf_len, gamma_info, info_len);
- > if (err < 0)
- > return -EIO;
- 865,866c885,887
- < state->gamma.bg_high= gamma_info[1];
- < //printk("ce147_get_gamma_version1: data1: 0x%02x, data1: 0x%02x\n", gamma_info[0], gamma_info[1]);
- ---
- > state->gamma.bg_high = gamma_info[1];
- > /* pr_debug("ce147_get_gamma_version1: data1: 0x%02x, data1: 0x%02x\n",
- > gamma_info[0], gamma_info[1]); */
- 871c892
- < #ifndef MDNIE_TUNING
- ---
- > #ifndef MDNIE_TUNING
- 875c896
- < struct ce147_state *state = to_state(sd);
- ---
- > struct ce147_state *state = to_state(sd);
- 883c904
- < const unsigned int packet_size = 129; //Data 128 + Checksum 1
- ---
- > const unsigned int packet_size = 129; /* Data 128 + Checksum 1 */
- 889c910,911
- < //dev_err(&client->dev, "%s: ce147_fw: buf = 0x%p, len = %d\n", __func__, (void*)state->fw_info.addr, state->fw_info.size);
- ---
- > /* dev_err(&client->dev, "%s: ce147_fw: buf = 0x%p, len = %d\n",
- > __func__, (void*)state->fw_info.addr, state->fw_info.size); */
- 893c915
- < if(NULL == mbuf){
- ---
- > if (NULL == mbuf)
- 895d916
- < }
- 897c918,919
- < if (copy_from_user(mbuf, (void*)state->fw_info.addr, state->fw_info.size)){
- ---
- > if (copy_from_user(mbuf, (void *)state->fw_info.addr,
- > state->fw_info.size)) {
- 902,906c924,931
- < /** The firmware buffer is now copied to mbuf, so the firmware code is now in mbuf.
- < * We can use mbuf with i2c_tranfer call */
- < for(i = 0; i < 4; i++){
- < if(index > state->fw_info.size - 4){
- < dev_err(&client->dev, "%s:Error size parameter\n", __func__);
- ---
- > /* The firmware buffer is now copied to mbuf,
- > * so the firmware code is now in mbuf.
- > * We can use mbuf with i2c_tranfer call
- > */
- > for (i = 0; i < 4; i++) {
- > if (index > state->fw_info.size - 4) {
- > dev_err(&client->dev, "%s:Error size parameter\n",
- > __func__);
- 909c934
- < memcpy(fw_size+i, mbuf + index, 4);
- ---
- > memcpy(fw_size + i, mbuf + index, 4);
- 912,913c937,939
- < index += ((fw_size[i]-1) & (~0x3)) + 4;
- < dev_err(&client->dev, "%s: [%d] fw_size = %d, fw_buf = 0x%p\n", __func__, i, fw_size[i], fw_buf[i]);
- ---
- > index += ((fw_size[i] - 1) & (~0x3)) + 4;
- > dev_err(&client->dev, "%s: [%d] fw_size = %d, fw_buf = 0x%p\n",
- > __func__, i, fw_size[i], fw_buf[i]);
- 916,918c942,945
- < err = ce147_power_en(1,sd);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_power_en(on)\n", __func__);
- ---
- > err = ce147_power_en(1, sd);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_power_en(on)\n",
- > __func__);
- 921c948
- < }
- ---
- > }
- 925,928c952,958
- < // [1] set fw updater info
- < err = ce147_i2c_write_multi(client, CMD_FW_INFO, fw_buf[0], 4);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for 0xf2, fw_size[0]: %d, fw_buf[0]: 0x%02x\n", __func__, fw_size[0], (unsigned int)(fw_buf[0]));
- ---
- > /* [1] set fw updater info */
- > err = ce147_i2c_write_multi(client, CMD_FW_INFO, fw_buf[0], 4);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for 0xf2, "
- > "fw_size[0]: %d, fw_buf[0]: 0x%02x\n",
- > __func__, fw_size[0],
- > (unsigned int)(fw_buf[0]));
- 931,932c961,962
- < }
- < msleep(100);
- ---
- > }
- > msleep(100);
- 934c964,966
- < //printk("ce147_update_fw: i2c_write for 0xf2, fw_size[0]: %d, fw_buf[0]: 0x%02x\n", fw_size[0], fw_buf[0]);
- ---
- > /* pr_debug("ce147_update_fw: i2c_write for 0xf2, "
- > "fw_size[0]: %d, fw_buf[0]: 0x%02x\n",
- > fw_size[0], fw_buf[0]); */
- 938,939c970,971
- < // [2] update firmware
- < for (k = 0; k < packet_num; k++){
- ---
- > /* [2] update firmware */
- > for (k = 0; k < packet_num; k++) {
- 941,943c973,977
- < err = ce147_i2c_read_multi(client, CMD_FWU_UPDATE, data, packet_size, &res, 1);
- < if(err < 0){
- < dev_err(&client->dev, "%s: fail: i2c_read for 0xf3, data: 0x%02x\n", __func__, data[0]);
- ---
- > err = ce147_i2c_read_multi(client, CMD_FWU_UPDATE,
- > data, packet_size, &res, 1);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: fail: i2c_read for 0xf3, "
- > "data: 0x%02x\n", __func__, data[0]);
- 946c980
- < }
- ---
- > }
- 948,949c982,984
- < j = j + 129;
- < //printk("ce147_update_fw: i2c_read for 0xf3, data: 0x%02x, count: %d\n", data[0], k);
- ---
- > j += 129;
- > /* pr_debug("ce147_update_fw: i2c_read for 0xf3, "
- > "data: 0x%02x, count: %d\n", data[0], k); */
- 953c988
- < // [3] get fw status
- ---
- > /* [3] get fw status */
- 956,959c991,996
- <
- < err = ce147_i2c_read_multi(client, CMD_FW_STATUS, NULL, 0, &res, 1);
- < if(err < 0){
- < dev_err(&client->dev, "%s: fail: i2c_read for 0xf5", __func__);
- ---
- >
- > err = ce147_i2c_read_multi(client, CMD_FW_STATUS, NULL, 0,
- > &res, 1);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: fail: i2c_read for 0xf5",
- > __func__);
- 962,963c999,1001
- < }
- < //printk("ce147_update_fw: i2c_read for 0xf5, data: 0x%02x\n", res);
- ---
- > }
- > /* pr_debug("ce147_update_fw: i2c_read for 0xf5, "
- > "data: 0x%02x\n", res); */
- 966,967c1004,1006
- < if(k == 500) break;
- < } while(res != 0x05);
- ---
- > if (k == 500)
- > break;
- > } while (res != 0x05);
- 973c1012
- < // [4] set fw updater info
- ---
- > /* [4] set fw updater info */
- 975,976c1014,1018
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for 0xf2, fw_size[2]: %d, fw_buf[2]: 0x%02x\n", __func__, fw_size[2], (unsigned int)(fw_buf[2]));
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for 0xf2, "
- > "fw_size[2]: %d, fw_buf[2]: 0x%02x\n",
- > __func__, fw_size[2],
- > (unsigned int)(fw_buf[2]));
- 982c1024,1025
- < //printk("ce147_update_fw: i2c_write for 0xf2, fw_size[2]: %d, fw_buf[2]: 0x%02x\n", fw_size[2], fw_buf[2]);
- ---
- > /* pr_debug("ce147_update_fw: i2c_write for 0xf2, fw_size[2]: %d,
- > fw_buf[2]: 0x%02x\n", fw_size[2], fw_buf[2]); */
- 984c1027
- < packet_num = *(fw_buf[2]) + (*(fw_buf[2]+1)<<8);
- ---
- > packet_num = *(fw_buf[2]) + (*(fw_buf[2] + 1) << 8);
- 986c1029
- < //printk("ce147_update_fw: packet_num: %d\n", packet_num);
- ---
- > /* pr_debug("ce147_update_fw: packet_num: %d\n", packet_num); */
- 989,995c1032,1041
- <
- < // [5] update firmware
- < for (l = 0; l < packet_num; l++){
- < memcpy(&data2[0], fw_buf[3]+j, packet_size);
- < err = ce147_i2c_write_multi(client, CMD_FW_UPDATE, data2, packet_size);
- < if(err < 0){
- < dev_err(&client->dev, "%s: fail: i2c_read for 0xf4, data:2 0x%02x\n", __func__, data2[0]);
- ---
- >
- > /* [5] update firmware */
- > for (l = 0; l < packet_num; l++) {
- > memcpy(&data2[0], fw_buf[3] + j, packet_size);
- > err = ce147_i2c_write_multi(client, CMD_FW_UPDATE,
- > data2, packet_size);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: fail: i2c_read "
- > "for 0xf4, data:2 0x%02x\n",
- > __func__, data2[0]);
- 1000,1001c1046,1048
- < //printk("ce147_update_fw: i2c_write for 0xf4, data2: 0x%02x, count: %d\n", data2[0], l);
- <
- ---
- > /* pr_debug("ce147_update_fw: i2c_write for 0xf4, "
- > "data2: 0x%02x, count: %d\n", data2[0], l); */
- >
- 1003c1050
- < j = j + 129;
- ---
- > j += 129;
- 1005c1052
- <
- ---
- >
- 1007c1054
- < // [6] get fw status
- ---
- > /* [6] get fw status */
- 1009d1055
- <
- 1011,1014c1057,1062
- <
- < err = ce147_i2c_read_multi(client, CMD_FW_STATUS, NULL, 0, &res, 1);
- < if(err < 0){
- < dev_err(&client->dev, "%s: fail: i2c_read for 0xf5", __func__);
- ---
- >
- > err = ce147_i2c_read_multi(client, CMD_FW_STATUS,
- > NULL, 0, &res, 1);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: fail: i2c_read for 0xf5",
- > __func__);
- 1017,1018c1065,1067
- < }
- < //printk("ce147_update_fw: i2c_read for 0xf5, data: 0x%02x\n", res);
- ---
- > }
- > /* pr_debug("ce147_update_fw: i2c_read for 0xf5, "
- > "data: 0x%02x\n", res); */
- 1020,1022c1069,1072
- < l++;
- < if(l == 500) break;
- < } while(res != 0x06);
- ---
- > l++;
- > if (l == 500)
- > break;
- > } while (res != 0x06);
- 1025,1030c1075,1081
- <
- < err = ce147_power_en(0,sd);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_power_en(off)\n", __func__);
- < return -EIO;
- < }
- ---
- >
- > err = ce147_power_en(0, sd);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_power_en(off)\n",
- > __func__);
- > return -EIO;
- > }
- 1033c1084
- <
- ---
- >
- 1050c1101
- < struct ce147_state *state = to_state(sd);
- ---
- > struct ce147_state *state = to_state(sd);
- 1055c1106
- < int i = 0;
- ---
- > int i = 0;
- 1058c1109
- < const unsigned int packet_size = 129; //Data 128 + Checksum 1
- ---
- > const unsigned int packet_size = 129; /* Data 128 + Checksum 1 */
- 1064c1115,1117
- < //dev_err(&client->dev, "%s: ce147_fw: buf = 0x%p, len = %d\n", __func__, (void*)state->fw_info.addr, state->fw_info.size);
- ---
- > /* dev_err(&client->dev, "%s: ce147_fw: buf = 0x%p, len = %d\n",
- > __func__, (void*)state->fw_info.addr,
- > state->fw_info.size); */
- 1068c1121
- < if(NULL == mbuf){
- ---
- > if (!mbuf)
- 1070d1122
- < }
- 1072c1124,1125
- < if (copy_from_user(mbuf, (void*)state->fw_info.addr, state->fw_info.size)){
- ---
- > if (copy_from_user(mbuf, (void *)state->fw_info.addr,
- > state->fw_info.size)) {
- 1077,1081c1130,1136
- < /** The firmware buffer is now copied to mbuf, so the firmware code is now in mbuf.
- < * We can use mbuf with i2c_tranfer call */
- < for(i = 0; i < 4; i++){
- < if(index > state->fw_info.size - 4){
- < dev_err(&client->dev, "%s:Error size parameter\n", __func__);
- ---
- > /* The firmware buffer is now copied to mbuf,
- > * so the firmware code is now in mbuf.
- > * We can use mbuf with i2c_tranfer call */
- > for (i = 0; i < 4; i++) {
- > if (index > state->fw_info.size - 4) {
- > dev_err(&client->dev, "%s:Error size parameter\n",
- > __func__);
- 1084c1139
- < memcpy(fw_size+i, mbuf + index, 4);
- ---
- > memcpy(fw_size + i, mbuf + index, 4);
- 1087,1088c1142,1144
- < index += ((fw_size[i]-1) & (~0x3)) + 4;
- < dev_err(&client->dev, "%s: [%d] fw_size = %d, fw_buf = 0x%p\n", __func__, i, fw_size[i], fw_buf[i]);
- ---
- > index += ((fw_size[i] - 1) & (~0x3)) + 4;
- > dev_err(&client->dev, "%s: [%d] fw_size = %d, fw_buf = 0x%p\n",
- > __func__, i, fw_size[i], fw_buf[i]);
- 1090c1146
- <
- ---
- >
- 1092,1097d1147
- <
- < for(j = 0; j < fw_size[0]; j++){
- < printk("ce147_update_fw: , fw_size[0]: %d, test[0]: 0x%x\n", fw_size[0], test[0][j]);
- < test[0][j] = ((test[0][j]&0xff00)>>8)|((test[0][j]&0x00ff)<<8);
- < printk("ce147_update_fw: , test1[0]: 0x%x\n", test[0][j]);
- < }
- 1099,1100c1149,1158
- < /*for mdnie tuning*/
- <
- ---
- > for (j = 0; j < fw_size[0]; j++) {
- > pr_debug("ce147_update_fw: , fw_size[0]: %d, test[0]: 0x%x\n",
- > fw_size[0], test[0][j]);
- > test[0][j] = ((test[0][j] & 0xff00) >> 8) |
- > ((test[0][j] & 0x00ff) << 8);
- > pr_debug("ce147_update_fw: , test1[0]: 0x%x\n", test[0][j]);
- > }
- >
- > /* for mdnie tuning */
- >
- 1102,1103c1160,1161
- < //mDNIe_txtbuf_to_parsing_for_lightsensor();
- < //mDNIe_txtbuf_to_parsing_for_backlight();
- ---
- > /* mDNIe_txtbuf_to_parsing_for_lightsensor(); */
- > /* mDNIe_txtbuf_to_parsing_for_backlight(); */
- 1109d1166
- <
- 1113c1170
- < struct ce147_state *state = to_state(sd);
- ---
- > struct ce147_state *state = to_state(sd);
- 1121,1122c1178,1179
- < const unsigned int packet_size = 129; //Data 128 + Checksum 1
- < unsigned int packet_num, k, j = 0, l = 0;
- ---
- > const unsigned int packet_size = 129; /* Data 128 + Checksum 1 */
- > unsigned int packet_num, k, j = 0, l = 0;
- 1126,1128c1183,1185
- < unsigned char addr[4] = {0x03, 0x00, 0x00, 0x01};
- < unsigned int addr_len = 4;
- < unsigned char dump[1] = {0x00};
- ---
- > unsigned char addr[4] = { 0x03, 0x00, 0x00, 0x01 };
- > unsigned int addr_len = 4;
- > unsigned char dump[1] = { 0x00 };
- 1130c1187,1188
- < //dev_err(&client->dev, "%s: ce147_fw: buf = 0x%p, len = %d\n", __func__, (void*)state->fw_info.addr, state->fw_info.size);
- ---
- > /* dev_err(&client->dev, "%s: ce147_fw: buf = 0x%p, len = %d\n",
- > __func__, (void*)state->fw_info.addr, state->fw_info.size); */
- 1134c1192
- < if(NULL == mbuf){
- ---
- > if (NULL == mbuf)
- 1136d1193
- < }
- 1138c1195,1196
- < if (copy_from_user(mbuf, (void*)state->fw_info.addr, state->fw_info.size)){
- ---
- > if (copy_from_user(mbuf, (void *)state->fw_info.addr,
- > state->fw_info.size)) {
- 1143,1147c1201,1207
- < /** The firmware buffer is now copied to mbuf, so the firmware code is now in mbuf.
- < * We can use mbuf with i2c_tranfer call */
- < for(i = 0; i < 4; i++){
- < if(index > state->fw_info.size - 4){
- < dev_err(&client->dev, "%s:Error size parameter\n", __func__);
- ---
- > /* The firmware buffer is now copied to mbuf,
- > * so the firmware code is now in mbuf.
- > * We can use mbuf with i2c_tranfer call */
- > for (i = 0; i < 4; i++) {
- > if (index > state->fw_info.size - 4) {
- > dev_err(&client->dev, "%s:Error size parameter\n",
- > __func__);
- 1153,1154c1213,1215
- < index += ((fw_size[i]-1) & (~0x3)) + 4;
- < dev_err(&client->dev, "%s: [%d] fw_size = %d, fw_buf = 0x%p\n", __func__, i, fw_size[i], fw_buf[i]);
- ---
- > index += ((fw_size[i] - 1) & (~0x3)) + 4;
- > dev_err(&client->dev, "%s: [%d] fw_size = %d, fw_buf = 0x%p\n",
- > __func__, i, fw_size[i], fw_buf[i]);
- 1158,1159c1219,1221
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_power_en(on)\n", __func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_power_en(on)\n",
- > __func__);
- 1162c1224
- < }
- ---
- > }
- 1166,1169c1228,1234
- < // [1] set fw updater info
- < err = ce147_i2c_write_multi(client, CMD_FW_INFO, fw_buf[0], 4);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for 0xf2, fw_size[0]: %d, fw_buf[0]: 0x%02x\n", __func__, fw_size[0], (unsigned int)(fw_buf[0]));
- ---
- > /* [1] set fw updater info */
- > err = ce147_i2c_write_multi(client, CMD_FW_INFO, fw_buf[0], 4);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for 0xf2, "
- > "fw_size[0]: %d, fw_buf[0]: 0x%02x\n",
- > __func__, fw_size[0],
- > (unsigned int)(fw_buf[0]));
- 1172,1173c1237,1238
- < }
- < msleep(100);
- ---
- > }
- > msleep(100);
- 1175c1240,1241
- < //printk("ce147_update_fw: i2c_write for 0xf2, fw_size[0]: %d, fw_buf[0]: 0x%02x\n", fw_size[0], fw_buf[0]);
- ---
- > /* pr_debug("ce147_update_fw: i2c_write for 0xf2, fw_size[0]: %d, "
- > "fw_buf[0]: 0x%02x\n", fw_size[0], fw_buf[0]); */
- 1177c1243
- < packet_num = *(fw_buf[0]) + (*(fw_buf[0]+1)<<8);
- ---
- > packet_num = *(fw_buf[0]) + (*(fw_buf[0] + 1) << 8);
- 1179,1184c1245,1252
- < // [2] update firmware
- < for (k = 0; k < packet_num; k++){
- < memcpy(&data[0], fw_buf[1]+j, packet_size);
- < err = ce147_i2c_read_multi(client, CMD_FWU_UPDATE, data, packet_size, &res, 1);
- < if(err < 0){
- < dev_err(&client->dev, "%s: fail: i2c_read for 0xf3, data: 0x%02x\n", __func__, data[0]);
- ---
- > /* [2] update firmware */
- > for (k = 0; k < packet_num; k++) {
- > memcpy(&data[0], fw_buf[1] + j, packet_size);
- > err = ce147_i2c_read_multi(client, CMD_FWU_UPDATE,
- > data, packet_size, &res, 1);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: fail: i2c_read for 0xf3, "
- > "data: 0x%02x\n", __func__, data[0]);
- 1187c1255
- < }
- ---
- > }
- 1189,1190c1257,1259
- < j = j + 129;
- < //printk("ce147_update_fw: i2c_read for 0xf3, data: 0x%02x, count: %d\n", data[0], k);
- ---
- > j += 129;
- > /* pr_debug("ce147_update_fw: i2c_read for 0xf3, data: 0x%02x, "
- > "count: %d\n", data[0], k); */
- 1194c1263
- < // [3] get fw status
- ---
- > /* [3] get fw status */
- 1197,1200c1266,1271
- <
- < err = ce147_i2c_read_multi(client, CMD_FW_STATUS, NULL, 0, &res, 1);
- < if(err < 0){
- < dev_err(&client->dev, "%s: fail: i2c_read for 0xf5", __func__);
- ---
- >
- > err = ce147_i2c_read_multi(client, CMD_FW_STATUS, NULL, 0,
- > &res, 1);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: fail: i2c_read for 0xf5",
- > __func__);
- 1203,1204c1274,1276
- < }
- < //printk("ce147_update_fw: i2c_read for 0xf5, data: 0x%02x\n", res);
- ---
- > }
- > /* pr_debug("ce147_update_fw: i2c_read for 0xf5, "
- > "data: 0x%02x\n", res); */
- 1207,1208c1279,1281
- < if(k == 500) break;
- < } while(res != 0x05);
- ---
- > if (k == 500)
- > break;
- > } while (res != 0x05);
- 1212c1285
- < // [4] change from dump mode
- ---
- > /* [4] change from dump mode */
- 1214,1215c1287,1289
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for 0xfb, 0x00", __func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for 0xfb, 0x00",
- > __func__);
- 1223c1297
- < // [5] check fw mode is in dump mode
- ---
- > /* [5] check fw mode is in dump mode */
- 1225,1226c1299,1300
- < if(err < 0){
- < dev_err(&client->dev, "%s: fail: i2c_read for 0xfb", __func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: fail: i2c_read for 0xfb", __func__);
- 1229c1303
- < }
- ---
- > }
- 1231,1232c1305,1306
- < if(res != 1){
- < dev_err(&client->dev, "%s: fail: res is %x", __func__, res);
- ---
- > if (res != 1) {
- > dev_err(&client->dev, "%s: fail: res is %x", __func__, res);
- 1235c1309
- < }
- ---
- > }
- 1239c1313
- < // [6] set dump start address
- ---
- > /* [6] set dump start address */
- 1241,1242c1315,1317
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for 0xfb, 0x03", __func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for 0xfb, 0x03",
- > __func__);
- 1250,1251c1325,1327
- < packet_num = *(fw_buf[2]) + (*(fw_buf[2]+1)<<8);
- < //printk("ce147_update_fw: i2c_read for 0xfb, packet_num: %d\n", packet_num);
- ---
- > packet_num = *(fw_buf[2]) + (*(fw_buf[2] + 1) << 8);
- > /* pr_debug("ce147_update_fw: i2c_read for 0xfb, packet_num: %d\n",
- > packet_num); */
- 1255,1259c1331,1337
- < // [7] dump firmware data
- < for (l = 0; l < packet_num; l++){
- < err = ce147_i2c_read_multi(client, CMD_FW_DUMP, dump, 1, data2, packet_size+1);
- < if(err < 0){
- < dev_err(&client->dev, "%s: fail: i2c_read for 0xfb,0x04\n", __func__);
- ---
- > /* [7] dump firmware data */
- > for (l = 0; l < packet_num; l++) {
- > err = ce147_i2c_read_multi(client, CMD_FW_DUMP, dump, 1,
- > data2, packet_size + 1);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: fail: i2c_read for 0xfb, "
- > "0x04\n", __func__);
- 1262,1264c1340,1342
- < }
- < memcpy(fw_buf[3]+j, &data2[0], packet_size - 1);
- <
- ---
- > }
- > memcpy(fw_buf[3] + j, &data2[0], packet_size - 1);
- >
- 1266,1267c1344,1346
- < j = j + 129;
- < //printk("ce147_update_fw: i2c_read for 0xfb, count: %d\n", l);
- ---
- > j += 129;
- > /* pr_debug("ce147_update_fw: i2c_read for 0xfb, count: %d\n",
- > l); */
- 1272c1351,1352
- < if (copy_to_user((void *)(state->fw_info.addr), fw_buf[3], state->fw_dump_size)) {
- ---
- > if (copy_to_user((void *)(state->fw_info.addr), fw_buf[3],
- > state->fw_dump_size)) {
- 1276c1356
- <
- ---
- >
- 1278c1358
- <
- ---
- >
- 1280,1283c1360,1364
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_power_en(off)\n", __func__);
- < return -EIO;
- < }
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_power_en(off)\n",
- > __func__);
- > return -EIO;
- > }
- 1286c1367
- <
- ---
- >
- 1302,1304c1383,1387
- < err = ce147_i2c_write_multi(client, CMD_CHECK_DATALINE, ce147_buf_check_dataline, ce147_len_check_dataline);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for check_dataline\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_CHECK_DATALINE,
- > ce147_buf_check_dataline, ce147_len_check_dataline);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "check_dataline\n", __func__);
- 1321,1323c1404,1408
- < err = ce147_i2c_write_multi(client, CMD_CHECK_DATALINE, ce147_buf_check_dataline, ce147_len_check_dataline);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for check_dataline stop\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_CHECK_DATALINE,
- > ce147_buf_check_dataline, ce147_len_check_dataline);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "check_dataline stop\n", __func__);
- 1338c1423,1424
- < unsigned char ce147_regbuf_preview_size[2] = { 0x04, 0x01 }; /* Default VGA resolution */
- ---
- > /* Default VGA resolution = { 0x04, 0x01 } */
- > unsigned char ce147_regbuf_preview_size[2] = { 0x04, 0x01 };
- 1345,1351c1431,1437
- < switch(index){
- < case CE147_PREVIEW_QCIF:
- < ce147_regbuf_preview_size[0] = 0x1E;
- < break;
- < case CE147_PREVIEW_QVGA:
- < ce147_regbuf_preview_size[0] = 0x02;
- < break;
- ---
- > switch (index) {
- > case CE147_PREVIEW_QCIF:
- > ce147_regbuf_preview_size[0] = 0x1E;
- > break;
- > case CE147_PREVIEW_QVGA:
- > ce147_regbuf_preview_size[0] = 0x02;
- > break;
- 1353,1355c1439,1441
- < case CE147_PREVIEW_592x480:
- < ce147_regbuf_preview_size[0] = 0x24;
- < break;
- ---
- > case CE147_PREVIEW_592x480:
- > ce147_regbuf_preview_size[0] = 0x24;
- > break;
- 1357,1378c1443,1465
- < case CE147_PREVIEW_VGA:
- < ce147_regbuf_preview_size[0] = 0x04;
- < break;
- < case CE147_PREVIEW_WVGA:
- < ce147_regbuf_preview_size[0] = 0x13;
- < break;
- < case CE147_PREVIEW_D1:
- < ce147_regbuf_preview_size[0] = 0x20;
- < break;
- < case CE147_PREVIEW_720P:
- < ce147_regbuf_preview_size[0] = 0x16;
- < ce147_regbuf_preview_size[1] = 0x02;
- < break;
- < case CE147_PREVIEW_VERTICAL_QCIF:
- < ce147_regbuf_preview_size[0] = 0x26;
- < break;
- < default:
- < /* When running in image capture mode, the call comes here.
- < * Set the default video resolution - CE147_PREVIEW_VGA
- < */
- < ce147_msg(&client->dev, "Setting preview resoution as VGA for image capture mode\n");
- < break;
- ---
- > case CE147_PREVIEW_VGA:
- > ce147_regbuf_preview_size[0] = 0x04;
- > break;
- > case CE147_PREVIEW_WVGA:
- > ce147_regbuf_preview_size[0] = 0x13;
- > break;
- > case CE147_PREVIEW_D1:
- > ce147_regbuf_preview_size[0] = 0x20;
- > break;
- > case CE147_PREVIEW_720P:
- > ce147_regbuf_preview_size[0] = 0x16;
- > ce147_regbuf_preview_size[1] = 0x02;
- > break;
- > case CE147_PREVIEW_VERTICAL_QCIF:
- > ce147_regbuf_preview_size[0] = 0x26;
- > break;
- > default:
- > /* When running in image capture mode, the call comes here.
- > * Set the default video resolution - CE147_PREVIEW_VGA
- > */
- > ce147_msg(&client->dev, "Setting preview resoution as VGA "
- > "for image capture mode\n");
- > break;
- 1381,1382c1468
- < if(index == CE147_PREVIEW_720P)
- < {
- ---
- > if (index == CE147_PREVIEW_720P) {
- 1384,1395c1470,1485
- < //state->hd_preview_on = 1;
- < //printk("[5B] ce147_set_preview_size: preview_size is HD (%d)\n", state->hd_preview_on);
- < err = ce147_i2c_write_multi(client, CMD_HD_PREVIEW, ce147_regbuf_hd_preview, ce147_reglen_hd_preview);
- < if(err < 0)
- < return -EIO;
- < }
- < else
- < {
- < //state->hd_preview_on = 0;
- < //printk("[5B] ce147_set_preview_size: preview_size is not HD (%d)\n", state->hd_preview_on);
- < err = ce147_i2c_write_multi(client, CMD_HD_PREVIEW, ce147_regbuf_hd_preview, ce147_reglen_hd_preview);
- < if(err < 0)
- ---
- > state->hd_preview_on = 1;
- > pr_info("%s: preview_size is HD (%d)\n",
- > __func__, state->hd_preview_on);
- > err = ce147_i2c_write_multi(client, CMD_HD_PREVIEW,
- > ce147_regbuf_hd_preview,
- > ce147_reglen_hd_preview);
- > if (err < 0)
- > return -EIO;
- > } else {
- > state->hd_preview_on = 0;
- > pr_info("%s: preview_size is not HD (%d)\n",
- > __func__, state->hd_preview_on);
- > err = ce147_i2c_write_multi(client, CMD_HD_PREVIEW,
- > ce147_regbuf_hd_preview,
- > ce147_reglen_hd_preview);
- > if (err < 0)
- 1400,1419c1490,1495
- < err = ce147_i2c_write_multi(client, CMD_PREVIEW_SIZE, ce147_regbuf_preview_size, ce147_reglen_preview_size);
- < if(err < 0)
- < return -EIO;
- <
- < ce147_msg(&client->dev, "Done\n");
- <
- < return err;
- < }
- < #if 0
- < static int ce147_set_fps(struct v4l2_subdev *sd)
- < {
- < int err;
- < struct i2c_client *client = v4l2_get_subdevdata(sd);
- < struct ce147_state *state = to_state(sd);
- < int ce147_reglen_fps = 2;
- < unsigned char ce147_regbuf_fps[2] = { 0x1E, 0x00 }; /* Default 30 fps */
- <
- < if(state->fps <= 0 || state->fps > 30){
- < dev_err(&client->dev, "%s: Currently %d fps not supported.\n",__func__, state->fps);
- < return -EINVAL;
- ---
- > err = ce147_i2c_write_multi(client, CMD_PREVIEW_SIZE,
- > ce147_regbuf_preview_size, ce147_reglen_preview_size);
- > if (err < 0) {
- > pr_info("%s: preview_size is not HD (%d)\n",
- > __func__, state->hd_preview_on);
- > return -EIO;
- 1421,1426d1496
- <
- < ce147_regbuf_fps[0] = state->fps;
- <
- < err = ce147_i2c_write_multi(client, CMD_FPS, ce147_regbuf_fps, ce147_reglen_fps);
- < if(err < 0)
- < return -EIO;
- 1428c1498
- < ce147_msg(&client->dev, "FPS = %d\n", state->fps);
- ---
- > ce147_msg(&client->dev, "Done\n");
- 1430c1500
- < return 0;
- ---
- > return err;
- 1432c1502
- < #endif
- ---
- >
- 1437c1507
- < struct ce147_state *state = to_state(sd);
- ---
- > struct ce147_state *state = to_state(sd);
- 1440,1445c1510,1514
- < unsigned int ce147_reglen_fps = 2;
- <
- < switch(state->fps)
- < {
- < case FRAME_RATE_7:
- < ce147_regbuf_fps[0] = 0x07;
- ---
- > unsigned int ce147_reglen_fps = 2;
- >
- > switch (state->fps) {
- > case FRAME_RATE_7:
- > ce147_regbuf_fps[0] = 0x07;
- 1448,1449c1517,1518
- < case FRAME_RATE_15:
- < ce147_regbuf_fps[0] = 0x0F;
- ---
- > case FRAME_RATE_10:
- > ce147_regbuf_fps[0] = 0x0A;
- 1452,1453c1521,1522
- < case FRAME_RATE_60:
- < ce147_regbuf_fps[0] = 0x3C;
- ---
- > case FRAME_RATE_15:
- > ce147_regbuf_fps[0] = 0x0F;
- 1456,1457c1525,1531
- < case FRAME_RATE_120:
- < ce147_regbuf_fps[0] = 0x78;
- ---
- > case FRAME_RATE_20:
- > ce147_regbuf_fps[0] = 0x14;
- > break;
- >
- > case FRAME_RATE_30:
- > ce147_regbuf_fps[0] = 0x1E;
- > break;
- 1459,1461c1533,1535
- < case FRAME_RATE_30:
- < default:
- < ce147_regbuf_fps[0] = 0x1E;
- ---
- > case FRAME_RATE_60:
- > ce147_regbuf_fps[0] = 0x3C;
- > break;
- 1462a1537,1538
- > case FRAME_RATE_120:
- > ce147_regbuf_fps[0] = 0x78;
- 1463a1540,1542
- >
- > default:
- > return -EINVAL;
- 1466,1468c1545,1549
- < err = ce147_i2c_write_multi(client, CMD_FPS, ce147_regbuf_fps, ce147_reglen_fps);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for set_frame_rate\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_FPS, ce147_regbuf_fps,
- > ce147_reglen_fps);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write "
- > "for set_frame_rate\n", __func__);
- 1471c1552
- < #if 0 //remove batch
- ---
- > #if 0 /* remove batch */
- 1473,1475c1554,1557
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_get_batch_reflection_status for set_frame_rate\n", __func__);
- < return -EIO;
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_get_batch_reflection"
- > "_status for set_frame_rate\n", __func__);
- > return -EIO;
- 1487c1569
- < struct ce147_state *state = to_state(sd);
- ---
- > struct ce147_state *state = to_state(sd);
- 1492,1495c1574,1576
- < switch(state->anti_banding)
- < {
- < case ANTI_BANDING_OFF:
- < ce147_regbuf_anti_banding[0] = 0x00;
- ---
- > switch (state->anti_banding) {
- > case ANTI_BANDING_OFF:
- > ce147_regbuf_anti_banding[0] = 0x00;
- 1498,1499c1579,1580
- < case ANTI_BANDING_AUTO:
- < ce147_regbuf_anti_banding[0] = 0x01;
- ---
- > case ANTI_BANDING_AUTO:
- > ce147_regbuf_anti_banding[0] = 0x01;
- 1502,1503c1583,1584
- < case ANTI_BANDING_50HZ:
- < ce147_regbuf_anti_banding[0] = 0x02;
- ---
- > case ANTI_BANDING_50HZ:
- > ce147_regbuf_anti_banding[0] = 0x02;
- 1506,1508c1587,1589
- < case ANTI_BANDING_60HZ:
- < default:
- < ce147_regbuf_anti_banding[0] = 0x03;
- ---
- > case ANTI_BANDING_60HZ:
- > default:
- > ce147_regbuf_anti_banding[0] = 0x03;
- 1512,1514c1593,1597
- < err = ce147_i2c_write_multi(client, CMD_SET_ANTI_BANDING, ce147_regbuf_anti_banding, ce147_reglen_anti_banding);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for anti_banding\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_SET_ANTI_BANDING,
- > ce147_regbuf_anti_banding, ce147_reglen_anti_banding);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "anti_banding\n", __func__);
- 1531c1614
- < //printk("[5B] ce147_set_preview_stop: (%d)\n", state->runmode);
- ---
- > /* pr_debug("%s: (%d)\n", __func__, state->runmode); */
- 1533,1536c1616,1622
- < if(CE147_RUNMODE_RUNNING == state->runmode){
- < err = ce147_i2c_write_multi(client, CMD_PREVIEW, ce147_regbuf_preview_stop, ce147_reglen_preview);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for preview_stop\n", __func__);
- ---
- > if (CE147_RUNMODE_RUNNING == state->runmode) {
- > err = ce147_i2c_write_multi(client, CMD_PREVIEW,
- > ce147_regbuf_preview_stop,
- > ce147_reglen_preview);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write "
- > "for preview_stop\n", __func__);
- 1540,1542c1626,1630
- < err = ce147_waitfordone_timeout(client, CMD_PREVIEW_STATUS, 0x00, 3000, POLL_TIME_MS);
- < if(err < 0){
- < dev_err(&client->dev, "%s: Wait for preview_stop failed\n", __func__ );
- ---
- > err = ce147_waitfordone_timeout(client, CMD_PREVIEW_STATUS,
- > 0x00, 3000, POLL_TIME_MS);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: Wait for preview_stop "
- > "failed\n", __func__);
- 1545c1633,1634
- < ce147_msg(&client->dev, "%s: preview_stop - wait time %d ms\n", __func__, err);
- ---
- > ce147_msg(&client->dev, "%s: preview_stop - wait time %d ms\n",
- > __func__, err);
- 1561,1565c1650,1656
- <
- < if(CE147_RUNMODE_RUNNING == state->runmode){
- < err = ce147_i2c_write_multi(client, CMD_SET_DZOOM, &ce147_buf_set_dzoom[ctrl->value], 1);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for set_dzoom\n", __func__);
- ---
- >
- > if (CE147_RUNMODE_RUNNING == state->runmode) {
- > err = ce147_i2c_write_multi(client, CMD_SET_DZOOM,
- > &ce147_buf_set_dzoom[ctrl->value], 1);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write "
- > "for set_dzoom\n", __func__);
- 1569,1574c1660,1669
- < //To Do: This code needs to use ce147_waitfordone_timeout() API
- < for(count = 0; count < 300; count++)
- < {
- < err = ce147_i2c_read_multi(client, CMD_GET_DZOOM_LEVEL, NULL, 0, ce147_buf_get_dzoom_status, ce147_len_get_dzoom_status);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_read for set_dzoom\n", __func__);
- ---
- > /* TODO: This code needs to use
- > * ce147_waitfordone_timeout() API
- > */
- > for (count = 0; count < 300; count++) {
- > err = ce147_i2c_read_multi(client, CMD_GET_DZOOM_LEVEL,
- > NULL, 0, ce147_buf_get_dzoom_status,
- > ce147_len_get_dzoom_status);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_read "
- > "for set_dzoom\n", __func__);
- 1577c1672,1673
- < if(ce147_buf_get_dzoom_status[1] == 0x00) break;
- ---
- > if (ce147_buf_get_dzoom_status[1] == 0x00)
- > break;
- 1599c1695
- < unsigned int ce147_len_get_dzoom_status = 2;
- ---
- > unsigned int ce147_len_get_dzoom_status = 2;
- 1601c1697
- < if( !state->pix.width || !state->pix.height || !state->fps){
- ---
- > if (!state->pix.width || !state->pix.height || !state->fps)
- 1603d1698
- < }
- 1605,1608c1700,1701
- < //This is for 15 testmode
- < if(state->check_dataline)
- < {
- < LOGV("%s state->check_dataline = 1", __func__);
- ---
- > /* This is for 15 testmode */
- > if (state->check_dataline) {
- 1610,1611c1703,1705
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: Could not check data line.\n", __func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: Could not check data"
- > "line.\n", __func__);
- 1614,1619c1708,1709
- < }
- < //Normal preview sequence
- < else
- < {
- < LOGV("%s state->check_dataline = Normal preview sequence", __func__);
- < /* Stop it if it is already running */
- ---
- > } else { /* Normal preview sequence */
- > /* Stop it if it is already running */
- 1621,1622c1711,1713
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: Could not stop the running preview.\n", __func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: Could not stop the "
- > "running preview.\n", __func__);
- 1627,1635c1718,1730
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: Could not set preview size\n", __func__);
- < return -EIO;
- < }
- <
- < if(DZoom_State != 0){
- < err = ce147_i2c_write_multi(client, CMD_SET_DZOOM, &ce147_buf_set_dzoom[DZoom_State], 1);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for set_dzoom in preview_start\n", __func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: Could not set "
- > "preview size\n", __func__);
- > return -EIO;
- > }
- >
- > if (DZoom_State != 0) {
- > err = ce147_i2c_write_multi(client, CMD_SET_DZOOM,
- > &ce147_buf_set_dzoom[DZoom_State], 1);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write "
- > "for set_dzoom in "
- > "preview_start\n", __func__);
- 1639,1643c1734,1743
- < for(count = 0; count < 300; count++)
- < {
- < err = ce147_i2c_read_multi(client, CMD_GET_DZOOM_LEVEL, NULL, 0, ce147_buf_get_dzoom_status, ce147_len_get_dzoom_status);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_read for set_dzoom in preview_start\n", __func__);
- ---
- > for (count = 0; count < 300; count++) {
- > err = ce147_i2c_read_multi(client,
- > CMD_GET_DZOOM_LEVEL, NULL, 0,
- > ce147_buf_get_dzoom_status,
- > ce147_len_get_dzoom_status);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: "
- > "i2c_read for set_dzoom"
- > "in preview_start\n",
- > __func__);
- 1646c1746,1747
- < if(ce147_buf_get_dzoom_status[1] == 0x00) break;
- ---
- > if (ce147_buf_get_dzoom_status[1] == 0x00)
- > break;
- 1651,1654c1752,1756
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: Could not set anti banding\n", __func__);
- < return -EIO;
- < }
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: Could not set anti "
- > "banding\n", __func__);
- > return -EIO;
- > }
- 1657,1660c1759,1763
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: Could not set fps\n", __func__);
- < return -EIO;
- < }
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: Could not set fps\n",
- > __func__);
- > return -EIO;
- > }
- 1662,1664c1765
- < if(state->runmode != CE147_RUNMODE_READY)
- < {
- < LOGV("%s CE147_RUNMODE_READY", __func__);
- ---
- > if (state->runmode != CE147_RUNMODE_READY) {
- 1666,1669c1767,1771
- < //ctrl.value = state->iso;
- < err = ce147_set_iso(sd, ISO_AUTO);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_set_iso, err %d\n", __func__, err);
- ---
- > ctrl.value = state->iso;
- > err = ce147_set_iso(sd, &ctrl);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_set_"
- > "iso, err %d\n", __func__, err);
- 1674,1677c1776,1781
- < //ctrl.value = state->metering;
- < err = ce147_set_metering(sd, METERING_MATRIX);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_set_metering, err %d\n", __func__, err);
- ---
- > ctrl.value = state->metering;
- > err = ce147_set_metering(sd, &ctrl);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_set_"
- > "metering, err %d\n",
- > __func__, err);
- 1682,1685c1786,1790
- < //ctrl.value = state->ev;
- < err = ce147_set_ev(sd, EV_DEFAULT);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_set_ev, err %d\n", __func__, err);
- ---
- > ctrl.value = state->ev;
- > err = ce147_set_ev(sd, &ctrl);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_set_"
- > "ev, err %d\n", __func__, err);
- 1688c1793
- <
- ---
- >
- 1690,1693c1795,1800
- < //ctrl.value = state->effect;
- < err = ce147_set_effect(sd, IMAGE_EFFECT_NONE);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_set_effect, err %d\n", __func__, err);
- ---
- > ctrl.value = state->effect;
- > err = ce147_set_effect(sd, &ctrl);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_set_"
- > "effect, err %d\n",
- > __func__, err);
- 1697,1701c1804,1810
- < /* wb*/
- < //ctrl.value = state->wb;
- < err = ce147_set_white_balance(sd, WHITE_BALANCE_AUTO);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_set_white_balance, err %d\n", __func__, err);
- ---
- > /* wb */
- > ctrl.value = state->wb;
- > err = ce147_set_white_balance(sd, &ctrl);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_set_"
- > "white_balance, err %d\n",
- > __func__, err);
- 1704d1812
- <
- 1706,1710c1814,1819
- < /* slow ae */
- < //ctrl.value = state->hd_slow_ae;
- < err = ce147_set_slow_ae(sd, state->hd_slow_ae);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_set_slow_ae, err %d\n", __func__, err);
- ---
- > /* slow ae */
- > ctrl.value = state->hd_slow_ae;
- > err = ce147_set_slow_ae(sd, &ctrl);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_set_slow_ae, "
- > "err %d\n", __func__, err);
- 1715,1718c1824,1828
- < //ctrl.value = state->hd_gamma;
- < err = ce147_set_gamma(sd, state->hd_gamma);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_set_gamma, err %d\n", __func__, err);
- ---
- > ctrl.value = state->hd_gamma;
- > err = ce147_set_gamma(sd, &ctrl);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_set_gamma, "
- > "err %d\n", __func__, err);
- 1724,1726c1834,1838
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_get_batch_reflection_status for set_frame_rate\n", __func__);
- < return -EIO;
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_get_batch_"
- > "reflection_status for "
- > "set_frame_rate\n", __func__);
- > return -EIO;
- 1729c1841
- < /* Release AWB unLock */
- ---
- > /* Release AWB unLock */
- 1731,1732c1843,1845
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_set_awb_lock, err %d\n", __func__, err);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_set_awb_lock, "
- > "err %d\n", __func__, err);
- 1735c1848
- <
- ---
- >
- 1737,1745c1850,1863
- < err = ce147_i2c_write_multi(client, CMD_PREVIEW, ce147_regbuf_preview_start, ce147_reglen_preview);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for preview_start\n", __func__);
- < return -EIO;
- < }
- <
- < err = ce147_waitfordone_timeout(client, CMD_PREVIEW_STATUS, 0x08, 3000, POLL_TIME_MS);
- < if(err < 0){
- < dev_err(&client->dev, "%s: Wait for preview_start failed\n", __func__ );
- ---
- > err = ce147_i2c_write_multi(client, CMD_PREVIEW,
- > ce147_regbuf_preview_start,
- > ce147_reglen_preview);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "preview_start\n", __func__);
- > return -EIO;
- > }
- >
- > err = ce147_waitfordone_timeout(client, CMD_PREVIEW_STATUS,
- > 0x08, 3000, POLL_TIME_MS);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: Wait for preview_start "
- > "failed\n", __func__);
- 1748c1866,1867
- < ce147_msg(&client->dev, "%s: preview_start - wait time %d ms\n", __func__, err);
- ---
- > ce147_msg(&client->dev, "%s: preview_start - wait time %d ms\n",
- > __func__, err);
- 1763c1882,1883
- < unsigned char ce147_regbuf_capture_size[4] = { 0x0B, 0x00, 0x01, 0x00}; /* Default 5 MP */
- ---
- > /* Default 5 MP = { 0x08, 0x00, 0x01, 0x00 } */
- > unsigned char ce147_regbuf_capture_size[4] = { 0x0B, 0x00, 0x01, 0x00 };
- 1766c1886
- < switch(index){
- ---
- > switch (index) {
- 1775c1895
- < break;
- ---
- > break;
- 1792,1793c1912,1913
- < /* The framesize index was not set properly.
- < * Check s_fmt call - it must be for video mode. */
- ---
- > /* The framesize index was not set properly.
- > * Check s_fmt call - it must be for video mode. */
- 1798,1801c1918,1923
- < err = ce147_i2c_write_multi(client, CMD_CAPTURE_SIZE, ce147_regbuf_capture_size, ce147_reglen_capture_size);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for capture_resolution\n", __func__);
- < return -EIO;
- ---
- > err = ce147_i2c_write_multi(client, CMD_CAPTURE_SIZE,
- > ce147_regbuf_capture_size, ce147_reglen_capture_size);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write "
- > "for capture_resolution\n", __func__);
- > return -EIO;
- 1804,1813c1926,1934
- < //This is for postview
- < if(ce147_regbuf_capture_size[0] < 0x0C)
- < {
- < state->preview_size = CE147_PREVIEW_VGA;
- < //printk("[5B] ce147_set_capture_size: preview_size is VGA (%d)\n", state->preview_size);
- < }
- < else
- < {
- < state->preview_size = CE147_PREVIEW_WVGA;
- < //printk("[5B] ce147_set_capture_size: preview_size is WVGA (%d)\n", state->preview_size);
- ---
- > /* This is for postview */
- > if (ce147_regbuf_capture_size[0] < 0x0C) {
- > state->preview_size = CE147_PREVIEW_VGA;
- > /* pr_debug("%s: preview_size is VGA (%d)\n",
- > __func__, state->preview_size); */
- > } else {
- > state->preview_size = CE147_PREVIEW_WVGA;
- > /* pr_debug("%s: preview_size is WVGA (%d)\n",
- > __func__, state->preview_size); */
- 1816c1937
- < //printk("ce147_set_capture_size: 0x%02x\n", index);
- ---
- > /* pr_debug("%s: 0x%02x\n", __func__, index); */
- 1818c1939
- < return 0;
- ---
- > return 0;
- 1821c1942
- < static int ce147_set_ae_awb(struct v4l2_subdev *sd, int ae_awb)
- ---
- > static int ce147_set_ae_awb(struct v4l2_subdev *sd, struct v4l2_control *ctrl)
- 1827,1832d1947
- <
- < switch(ae_awb)
- < {
- < case AE_LOCK_AWB_UNLOCK:
- < ce147_buf_set_ae_awb[0] = 0x01;
- < break;
- 1834,1840c1949,1960
- < case AE_UNLOCK_AWB_LOCK:
- < ce147_buf_set_ae_awb[0] = 0x10;
- < break;
- <
- < case AE_LOCK_AWB_LOCK:
- < ce147_buf_set_ae_awb[0] = 0x11;
- < break;
- ---
- > switch (ctrl->value) {
- > case AE_LOCK_AWB_UNLOCK:
- > ce147_buf_set_ae_awb[0] = 0x01;
- > break;
- >
- > case AE_UNLOCK_AWB_LOCK:
- > ce147_buf_set_ae_awb[0] = 0x10;
- > break;
- >
- > case AE_LOCK_AWB_LOCK:
- > ce147_buf_set_ae_awb[0] = 0x11;
- > break;
- 1842,1844c1962,1964
- < case AE_UNLOCK_AWB_UNLOCK:
- < default:
- < ce147_buf_set_ae_awb[0] = 0x00;
- ---
- > case AE_UNLOCK_AWB_UNLOCK:
- > default:
- > ce147_buf_set_ae_awb[0] = 0x00;
- 1847,1849c1967,1971
- < err = ce147_i2c_write_multi(client, CMD_AE_WB_LOCK, ce147_buf_set_ae_awb, 1);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for set_effect\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_AE_WB_LOCK,
- > ce147_buf_set_ae_awb, 1);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for set_effect\n",
- > __func__);
- 1859c1981
- < * lock: 1 to lock, 0 to unlock
- ---
- > * lock: 1 to lock, 0 to unlock
- 1869c1991
- < if(lock)
- ---
- > if (lock)
- 1874,1876c1996,2000
- < err = ce147_i2c_write_multi(client, CMD_AE_WB_LOCK, ce147_regbuf_awb_lock, ce147_reglen_awb_lock);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for awb_lock\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_AE_WB_LOCK,
- > ce147_regbuf_awb_lock, ce147_reglen_awb_lock);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for awb_lock\n",
- > __func__);
- 1893,1895c2017,2022
- < err = ce147_i2c_write_multi(client, CMD_BUFFERING_CAPTURE, ce147_regbuf_buffering_capture, ce147_reglen_buffering_capture);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for buffering_capture\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_BUFFERING_CAPTURE,
- > ce147_regbuf_buffering_capture,
- > ce147_reglen_buffering_capture);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write "
- > "for buffering_capture\n", __func__);
- 1912c2039
- < if ((onoff == 0) && (state->thumb_null ==0))
- ---
- > if ((onoff == 0) && (state->thumb_null == 0))
- 1914c2041
- < else if ((onoff == 1) && (state->thumb_null ==0))
- ---
- > else if ((onoff == 1) && (state->thumb_null == 0))
- 1916c2043
- < else if ((onoff == 0) && (state->thumb_null ==0))
- ---
- > else if ((onoff == 0) && (state->thumb_null == 0))
- 1918c2045
- < else if ((onoff == 0) && (state->thumb_null ==1))
- ---
- > else if ((onoff == 0) && (state->thumb_null == 1))
- 1920c2047
- < else if((onoff == 1) && (state->thumb_null ==1))
- ---
- > else if ((onoff == 1) && (state->thumb_null == 1))
- 1923,1927c2050,2054
- < //ce147_regbuf_exif_ctrl[1] = 0x00;
- <
- < err = ce147_i2c_write_multi(client, CMD_SET_EXIF_CTRL, ce147_regbuf_exif_ctrl, ce147_reglen_exif_ctrl);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for ce147_reglen_exif_ctrl\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_SET_EXIF_CTRL,
- > ce147_regbuf_exif_ctrl, ce147_reglen_exif_ctrl);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write "
- > "for ce147_reglen_exif_ctrl\n", __func__);
- 1934a2062
- >
- 1937,1939d2064
- < LOGV("%s ENTER", __func__);
- <
- < #if 0
- 1944c2069
- < struct rtc_time gps_timestamp;//ykh
- ---
- > struct rtc_time gps_timestamp;
- 1946c2071,2073
- < unsigned char ce147_regbuf_exif[7] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
- ---
- > unsigned char ce147_regbuf_exif[7] = {
- > 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- > };
- 1949c2076,2078
- < unsigned char ce147_regbuf_timestamp[7] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
- ---
- > unsigned char ce147_regbuf_timestamp[7] = {
- > 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- > };
- 1953c2082
- < unsigned int ce147_reglen_rot = 1;
- ---
- > unsigned int ce147_reglen_rot = 1;
- 1955,1959c2084,2088
- < unsigned char ce147_model_name[130] = {0x00,};
- < unsigned int ce147_reglen_model = 130;
- <
- < unsigned char ce147_gps_processing[130] = {0x00,};
- < unsigned int ce147_reglen_gps_processing = 130;
- ---
- > unsigned char ce147_model_name[130] = { 0x00, };
- > unsigned int ce147_reglen_model = 130;
- >
- > unsigned char ce147_gps_processing[130] = { 0x00, };
- > unsigned int ce147_reglen_gps_processing = 130;
- 1962c2091
- < #else // Modify NTTS1
- ---
- > #else /* Modify NTTS1 */
- 1965c2094,2097
- <
- ---
- > #if 0
- > struct timeval curr_time;
- > struct rtc_time time;
- > #endif
- 1968,1969c2100,2101
- < LOGV("%s WTH GPS in KERNAL", __func__);
- < memcpy(ce147_model_name+2, ce147_str_model, sizeof(ce147_str_model));
- ---
- >
- > memcpy(ce147_model_name + 2, ce147_str_model, sizeof(ce147_str_model));
- 1973,1974d2104
- < LOGV("%s WTH GPS in KERNAL", __func__);
- < //memcpy(ce147_gps_processing+2, state->gpsInfo.gps_processingmethod, sizeof(state->gpsInfo.gps_processingmethod));
- 1976,1984c2106,2107
- < //state->exifTimeInfo->tm_year += 1900;
- < //state->exifTimeInfo->tm_mon += 1;
- < //ce147_regbuf_exif[0] = (state->exifTimeInfo->tm_year & 0x00FF);
- < //ce147_regbuf_exif[1] = (state->exifTimeInfo->tm_year & 0xFF00) >> 8;
- < //ce147_regbuf_exif[2] = state->exifTimeInfo->tm_mon;
- < //ce147_regbuf_exif[3] = state->exifTimeInfo->tm_mday;
- < //ce147_regbuf_exif[4] = state->exifTimeInfo->tm_hour;
- < //ce147_regbuf_exif[5] = state->exifTimeInfo->tm_min;
- < //ce147_regbuf_exif[6] = state->exifTimeInfo->tm_sec;
- ---
- > memcpy(ce147_gps_processing + 2, state->gpsInfo.gps_processingmethod,
- > sizeof(state->gpsInfo.gps_processingmethod));
- 1986,2008c2109,2161
- < LOGV("%s WTH GPS in KERNAL", __func__);
- <
- < //FIXME get time from rtc not GPS
- < //rtc_time_to_tm(state->gpsInfo.gps_timeStamp, &gps_timestamp);
- < //gps_timestamp.tm_year += 2000;
- < //gps_timestamp.tm_mon += 1;
- <
- < //LOGV("====!! Exif Time YEAR: %ld, MONTH: %d, DAY: %d, HOUR: %d, MIN: %d, SEC: %d\n", \
- < //gps_timestamp.tm_year, gps_timestamp.tm_mon, gps_timestamp.tm_mday, \
- < //gps_timestamp.tm_hour, gps_timestamp.tm_min, gps_timestamp.tm_sec);
- <
- < //ce147_regbuf_timestamp[0] = (gps_timestamp.tm_year & 0x00FF);
- < //ce147_regbuf_timestamp[1] = (gps_timestamp.tm_year & 0xFF00) >> 8;
- < //ce147_regbuf_timestamp[2] = gps_timestamp.tm_mon;
- < //ce147_regbuf_timestamp[3] = gps_timestamp.tm_mday;
- < //ce147_regbuf_timestamp[4] = gps_timestamp.tm_hour;
- < //ce147_regbuf_timestamp[5] = gps_timestamp.tm_min;
- < //ce147_regbuf_timestamp[6] = gps_timestamp.tm_sec;
- <
- <
- < //LOGV(KERN_DEBUG "Exif Time YEAR: %ld, MONTH: %d, DAY: %d, HOUR: %d, MIN: %d, SEC: %d\n", \
- < //state->exifTimeInfo->tm_year, state->exifTimeInfo->tm_mon, state->exifTimeInfo->tm_mday, \
- < //state->exifTimeInfo->tm_hour, state->exifTimeInfo->tm_min, state->exifTimeInfo->tm_sec);
- ---
- > #if 0
- > do_gettimeofday(&curr_time);
- > rtc_time_to_tm(curr_time.tv_sec, &time);
- >
- > time.tm_year += 1900;
- > time.tm_mon += 1;
- >
- > ce147_regbuf_exif[0] = (time.tm_year & 0x00FF);
- > ce147_regbuf_exif[1] = (time.tm_year & 0xFF00) >> 8;
- > ce147_regbuf_exif[2] = time.tm_mon;
- > ce147_regbuf_exif[3] = time.tm_mday;
- > ce147_regbuf_exif[4] = time.tm_hour;
- > ce147_regbuf_exif[5] = time.tm_min;
- > ce147_regbuf_exif[6] = time.tm_sec;
- > #else
- > state->exifTimeInfo->tm_year += 1900;
- > state->exifTimeInfo->tm_mon += 1;
- > ce147_regbuf_exif[0] = (state->exifTimeInfo->tm_year & 0x00FF);
- > ce147_regbuf_exif[1] = (state->exifTimeInfo->tm_year & 0xFF00) >> 8;
- > ce147_regbuf_exif[2] = state->exifTimeInfo->tm_mon;
- > ce147_regbuf_exif[3] = state->exifTimeInfo->tm_mday;
- > ce147_regbuf_exif[4] = state->exifTimeInfo->tm_hour;
- > ce147_regbuf_exif[5] = state->exifTimeInfo->tm_min;
- > ce147_regbuf_exif[6] = state->exifTimeInfo->tm_sec;
- > #endif
- >
- > rtc_time_to_tm(state->gpsInfo.gps_timeStamp, &gps_timestamp);
- > gps_timestamp.tm_year += 1900;
- > gps_timestamp.tm_mon += 1;
- >
- > pr_debug("====!! Exif Time YEAR: %d, MONTH: %d, "
- > "DAY: %d, HOUR: %d, MIN: %d, SEC: %d\n",
- > gps_timestamp.tm_year, gps_timestamp.tm_mon,
- > gps_timestamp.tm_mday, gps_timestamp.tm_hour,
- > gps_timestamp.tm_min, gps_timestamp.tm_sec);
- >
- > ce147_regbuf_timestamp[0] = (gps_timestamp.tm_year & 0x00FF);
- > ce147_regbuf_timestamp[1] = (gps_timestamp.tm_year & 0xFF00) >> 8;
- > ce147_regbuf_timestamp[2] = gps_timestamp.tm_mon;
- > ce147_regbuf_timestamp[3] = gps_timestamp.tm_mday;
- > ce147_regbuf_timestamp[4] = gps_timestamp.tm_hour;
- > ce147_regbuf_timestamp[5] = gps_timestamp.tm_min;
- > ce147_regbuf_timestamp[6] = gps_timestamp.tm_sec;
- >
- >
- > pr_debug("Exif Time YEAR: %ld, MONTH: %d, DAY: %d, "
- > "HOUR: %d, MIN: %d, SEC: %d\n",
- > state->exifTimeInfo->tm_year,
- > state->exifTimeInfo->tm_mon,
- > state->exifTimeInfo->tm_mday,
- > state->exifTimeInfo->tm_hour,
- > state->exifTimeInfo->tm_min,
- > state->exifTimeInfo->tm_sec);
- 2012,2014c2165,2169
- < err = ce147_i2c_write_multi(client, CMD_INFO_MODEL, ce147_model_name, ce147_reglen_model);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for exif model name\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_INFO_MODEL, ce147_model_name,
- > ce147_reglen_model);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for exif model "
- > "name\n", __func__);
- 2018,2020c2173,2177
- < err = ce147_i2c_write_multi(client, CMD_INFO_EXIF, ce147_regbuf_exif, ce147_reglen_exif);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for exif\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_INFO_EXIF, ce147_regbuf_exif,
- > ce147_reglen_exif);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for exif\n",
- > __func__);
- 2024,2026c2181,2219
- < err = ce147_i2c_write_multi(client, CMD_INFO_ROT, ce147_regbuf_rot, ce147_reglen_rot);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for exif\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_INFO_ROT, ce147_regbuf_rot,
- > ce147_reglen_rot);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for exif\n",
- > __func__);
- > return -EIO;
- > }
- >
- > err = ce147_i2c_write_multi(client, CMD_INFO_LONGITUDE_LATITUDE,
- > state->gpsInfo.ce147_gps_buf,
- > sizeof(state->gpsInfo.ce147_gps_buf));
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for gps "
- > "longitude latitude\n", __func__);
- > return -EIO;
- > }
- >
- > err = ce147_i2c_write_multi(client, CMD_INFO_ALTITUDE,
- > state->gpsInfo.ce147_altitude_buf,
- > sizeof(state->gpsInfo.ce147_altitude_buf));
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for gps "
- > "altitude\n", __func__);
- > return -EIO;
- > }
- >
- > err = ce147_i2c_write_multi(client, CMD_GPS_TIMESTAMP,
- > ce147_regbuf_timestamp, ce147_reglen_timestamp);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for gps "
- > "timestamp\n", __func__);
- > return -EIO;
- > }
- >
- > err = ce147_i2c_write_multi(client, CMD_INFO_MODEL,
- > ce147_gps_processing, ce147_reglen_gps_processing);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for gps method\n",
- > __func__);
- 2030,2053d2222
- < //err = ce147_i2c_write_multi(client, CMD_INFO_LONGITUDE_LATITUDE, state->gpsInfo.ce147_gps_buf, sizeof(state->gpsInfo.ce147_gps_buf));
- < //if(err < 0){
- < // dev_err(&client->dev, "%s: failed: i2c_write for gps longitude latitude\n", __func__);
- < // return -EIO;
- < //}
- <
- < //err = ce147_i2c_write_multi(client, CMD_INFO_ALTITUDE, state->gpsInfo.ce147_altitude_buf, sizeof(state->gpsInfo.ce147_altitude_buf));
- < //if(err < 0){
- < // dev_err(&client->dev, "%s: failed: i2c_write for gps altitude\n", __func__);
- < // return -EIO;
- < //}
- <
- < //err = ce147_i2c_write_multi(client, CMD_GPS_TIMESTAMP, ce147_regbuf_timestamp, ce147_reglen_timestamp);
- < //if(err < 0){
- < // dev_err(&client->dev, "%s: failed: i2c_write for gps timestamp\n", __func__);
- < // return -EIO;
- < //}
- <
- < //err = ce147_i2c_write_multi(client, CMD_INFO_MODEL, ce147_gps_processing, ce147_reglen_gps_processing);
- < //if(err < 0){
- < // dev_err(&client->dev, "%s: failed: i2c_write for gps method\n", __func__);
- < // return -EIO;
- < //}
- <
- 2055,2056c2224
- < #endif
- < LOGV("%s OUT", __func__);
- ---
- >
- 2066c2234,2236
- < unsigned char ce147_regbuf_jpeg_comp_level[7] = { 0x00, 0xF4, 0x01, 0x90, 0x01, 0x05, 0x01 };
- ---
- > unsigned char ce147_regbuf_jpeg_comp_level[7] = {
- > 0x00, 0xF4, 0x01, 0x90, 0x01, 0x05, 0x01
- > };
- 2073c2243
- < if(state->jpeg.quality < 0)
- ---
- > if (state->jpeg.quality < 0)
- 2075c2245
- < if(state->jpeg.quality > 100)
- ---
- > if (state->jpeg.quality > 100)
- 2079,2082c2249,2253
- < ce147_regbuf_jpeg_comp_level[1] = comp_ratio & 0xFF;
- < ce147_regbuf_jpeg_comp_level[2] = (comp_ratio & 0xFF00) >> 8;
- <
- < ce147_msg(&client->dev, "Quality = %d, Max value = %d\n", state->jpeg.quality, comp_ratio);
- ---
- > ce147_regbuf_jpeg_comp_level[1] = comp_ratio & 0xFF;
- > ce147_regbuf_jpeg_comp_level[2] = (comp_ratio & 0xFF00) >> 8;
- >
- > ce147_msg(&client->dev, "Quality = %d, Max value = %d\n",
- > state->jpeg.quality, comp_ratio);
- 2084,2086c2255,2258
- < comp_ratio = (comp_ratio * 9) / 10; /* 10% range for final JPEG image size */
- < ce147_regbuf_jpeg_comp_level[3] = comp_ratio & 0xFF;
- < ce147_regbuf_jpeg_comp_level[4] = (comp_ratio & 0xFF00) >> 8;
- ---
- > /* 10% range for final JPEG image size */
- > comp_ratio = (comp_ratio * 9) / 10;
- > ce147_regbuf_jpeg_comp_level[3] = comp_ratio & 0xFF;
- > ce147_regbuf_jpeg_comp_level[4] = (comp_ratio & 0xFF00) >> 8;
- 2088c2260,2261
- < ce147_msg(&client->dev, "Quality = %d, Min Comp Ratio = %d\n", state->jpeg.quality, comp_ratio);
- ---
- > ce147_msg(&client->dev, "Quality = %d, Min Comp Ratio = %d\n",
- > state->jpeg.quality, comp_ratio);
- 2091c2264,2266
- < unsigned char ce147_regbuf_jpeg_comp_level[7] = { 0x00, 0xA4, 0x06, 0x78, 0x05, 0x05, 0x01 };
- ---
- > unsigned char ce147_regbuf_jpeg_comp_level[7] = {
- > 0x00, 0xA4, 0x06, 0x78, 0x05, 0x05, 0x01
- > };
- 2094c2269
- < unsigned int compressionRatio = 0;
- ---
- > unsigned int compressionRatio = 0;
- 2098,2142c2273,2295
- < // dev_err(&client->dev, "%s: quality = %d\n", __func__, quality);
- <
- < if(quality >= 91 && quality <= 100) { // 91 ~ 100
- < compressionRatio = 17; // 17%
- < }
- <
- < else if(quality >= 81 && quality <= 90) { // 81 ~ 90
- < compressionRatio = 16; // 16%
- < }
- <
- < else if(quality >= 71 && quality <= 80) { // 71 ~ 80
- < compressionRatio = 15; // 15%
- < }
- <
- < else if(quality >= 61 && quality <= 70) { // 61 ~ 70
- < compressionRatio = 14; // 14%
- < }
- <
- < else if(quality >= 51 && quality <= 60) { // 51 ~ 60
- < compressionRatio = 13; // 13%
- < }
- <
- < else if(quality >= 41 && quality <= 50) { // 41 ~ 50
- < compressionRatio = 12; // 12%
- < }
- <
- < else if(quality >= 31 && quality <= 40) { // 31 ~ 40
- < compressionRatio = 11; // 11%
- < }
- <
- < else if(quality >= 21 && quality <= 30) { // 21 ~ 30
- < compressionRatio = 10; // 10%
- < }
- <
- < else if(quality >= 11 && quality <= 20) { // 11 ~ 20
- < compressionRatio = 9; // 9%
- < }
- <
- < else if(quality >= 1 && quality <= 10) { // 1 ~ 10
- < compressionRatio = 8; // 8%
- < }
- <
- < else {
- < dev_err(&client->dev, "%s: Invalid Quality(%d)\n", __func__, quality);
- <
- ---
- > if (quality >= 91 && quality <= 100) { /* 91 ~ 100 */
- > compressionRatio = 17; /* 17% */
- > } else if (quality >= 81 && quality <= 90) { /* 81 ~ 90 */
- > compressionRatio = 16; /* 16% */
- > } else if (quality >= 71 && quality <= 80) { /* 71 ~ 80 */
- > compressionRatio = 15; /* 15% */
- > } else if (quality >= 61 && quality <= 70) { /* 61 ~ 70 */
- > compressionRatio = 14; /* 14% */
- > } else if (quality >= 51 && quality <= 60) { /* 51 ~ 60 */
- > compressionRatio = 13; /* 13% */
- > } else if (quality >= 41 && quality <= 50) { /* 41 ~ 50 */
- > compressionRatio = 12; /* 12% */
- > } else if (quality >= 31 && quality <= 40) { /* 31 ~ 40 */
- > compressionRatio = 11; /* 11% */
- > } else if (quality >= 21 && quality <= 30) { /* 21 ~ 30 */
- > compressionRatio = 10; /* 10% */
- > } else if (quality >= 11 && quality <= 20) { /* 11 ~ 20 */
- > compressionRatio = 9; /* 9% */
- > } else if (quality >= 1 && quality <= 10) { /* 1 ~ 10 */
- > compressionRatio = 8; /* 8% */
- > } else {
- > dev_err(&client->dev, "%s: Invalid Quality(%d)\n",
- > __func__, quality);
- 2146,2160c2299,2315
- < minimumCompressionRatio = compressionRatio - 3; // ex) if compression ratio is 17%, minimum compression ratio is 14%
- < ce147_regbuf_jpeg_comp_level[1] = (compressionRatio * 100) & 0xFF;
- < ce147_regbuf_jpeg_comp_level[2] = ((compressionRatio * 100) & 0xFF00) >> 8;
- < ce147_regbuf_jpeg_comp_level[3] = (minimumCompressionRatio * 100) & 0xFF;
- < ce147_regbuf_jpeg_comp_level[4] = ((minimumCompressionRatio * 100) & 0xFF00) >> 8;
- <
- < // dev_err(&client->dev, "%s: compression ratio low byte: 0x%x, high byte: 0x%x\n", __func__, ce147_regbuf_jpeg_comp_level[1], ce147_regbuf_jpeg_comp_level[2]);
- <
- < // dev_err(&client->dev, "%s: minimum compression ratio low byte: 0x%x, high byte: 0x%x\n", __func__, ce147_regbuf_jpeg_comp_level[3], ce147_regbuf_jpeg_comp_level[4]);
- <
- < err = ce147_i2c_write_multi(client, CMD_JPEG_CONFIG, ce147_regbuf_jpeg_comp_level, ce147_reglen_jpeg_comp_level);
- <
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for jpeg_comp_level\n", __func__);
- <
- ---
- > /* ex) if compression ratio is 17%, minimum compression ratio is 14%*/
- > minimumCompressionRatio = compressionRatio - 3;
- > ce147_regbuf_jpeg_comp_level[1] = (compressionRatio * 100) & 0xFF;
- > ce147_regbuf_jpeg_comp_level[2] = ((compressionRatio * 100) & 0xFF00)
- > >> 8;
- > ce147_regbuf_jpeg_comp_level[3] = (minimumCompressionRatio * 100)
- > & 0xFF;
- > ce147_regbuf_jpeg_comp_level[4] = ((minimumCompressionRatio * 100)
- > & 0xFF00) >> 8;
- >
- > err = ce147_i2c_write_multi(client, CMD_JPEG_CONFIG,
- > ce147_regbuf_jpeg_comp_level,
- > ce147_reglen_jpeg_comp_level);
- >
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "jpeg_comp_level\n", __func__);
- 2177,2178c2332,2333
- < unsigned char ce147_regbuf_set_lump2[1] = {0x00};
- < unsigned int ce147_reglen_set_lump2 = 1;
- ---
- > /* unsigned char ce147_regbuf_set_lump2[1] = {0x00};
- > unsigned int ce147_reglen_set_lump2 = 1; */
- 2181,2182c2336,2338
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_set_jpeg_quality\n", __func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_set_jpeg_quality\n",
- > __func__);
- 2186,2188c2342,2344
- < if(preview_size != CE147_PREVIEW_VGA)
- < {
- < //printk("[5B] ce147_set_jpeg_config: preview_size is WVGA (%d)\n", preview_size);
- ---
- > if (preview_size != CE147_PREVIEW_VGA) {
- > /* pr_debug("[5B] ce147_set_jpeg_config: preview_size is WVGA "
- > "(%d)\n", preview_size); */
- 2192,2198c2348,2357
- < //if(!state->thumb_null)
- < err = ce147_i2c_write_multi(client, CMD_JPEG_BUFFERING, ce147_regbuf_set_lump, ce147_reglen_set_lump);
- < //else if(state->thumb_null)
- < //err = ce147_i2c_write_multi(client, CMD_JPEG_BUFFERING2, ce147_regbuf_set_lump2, ce147_reglen_set_lump2);
- <
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for set_lump\n", __func__);
- ---
- > /* if (!state->thumb_null) */
- > err = ce147_i2c_write_multi(client, CMD_JPEG_BUFFERING,
- > ce147_regbuf_set_lump, ce147_reglen_set_lump);
- > /* else if (state->thumb_null) */
- > /* err = ce147_i2c_write_multi(client, CMD_JPEG_BUFFERING2,
- > ce147_regbuf_set_lump2, ce147_reglen_set_lump2); */
- >
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for set_lump\n",
- > __func__);
- 2220c2379
- < unsigned char jpeg_status_len = 3;
- ---
- > unsigned char jpeg_status_len = 3;
- 2222,2223c2381,2382
- < unsigned char jpeg_framesize[4] = { 0x00, 0x00, 0x00, 0x00 };
- < unsigned int jpeg_framesize_len = 4;
- ---
- > unsigned char jpeg_framesize[4] = { 0x00, 0x00, 0x00, 0x00 };
- > unsigned int jpeg_framesize_len = 4;
- 2225c2384
- < if(state->jpeg.enable){
- ---
- > if (state->jpeg.enable) {
- 2228,2230c2387,2392
- < err = ce147_i2c_read_multi(client, CMD_JPEG_SIZE, cmd_buf_framesize, cmd_len_framesize, jpeg_framesize, jpeg_framesize_len);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_read for jpeg_framesize\n", __func__);
- ---
- > err = ce147_i2c_read_multi(client, CMD_JPEG_SIZE,
- > cmd_buf_framesize, cmd_len_framesize,
- > jpeg_framesize, jpeg_framesize_len);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_read for "
- > "jpeg_framesize\n", __func__);
- 2232,2233c2394,2397
- < }
- < state->jpeg.main_size = jpeg_framesize[1] | (jpeg_framesize[2] << 8) | (jpeg_framesize[3] << 16);
- ---
- > }
- > state->jpeg.main_size = jpeg_framesize[1]
- > | (jpeg_framesize[2] << 8)
- > | (jpeg_framesize[3] << 16);
- 2235c2399,2400
- < ce147_info(&client->dev, "%s: JPEG main filesize = %d bytes\n", __func__, state->jpeg.main_size );
- ---
- > ce147_info(&client->dev, "%s: JPEG main filesize = %d bytes\n",
- > __func__, state->jpeg.main_size);
- 2238,2248c2403,2417
- < if(!state->thumb_null)
- < {
- < cmd_buf_framesize[0] = 0x01;
- < err = ce147_i2c_read_multi(client, CMD_JPEG_SIZE, cmd_buf_framesize, cmd_len_framesize, jpeg_framesize, jpeg_framesize_len);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_read for jpeg_framesize\n", __func__);
- < return -EIO;
- < }
- < state->jpeg.thumb_size = jpeg_framesize[1] | (jpeg_framesize[2] << 8) | (jpeg_framesize[3] << 16);
- < }
- < else
- ---
- > if (!state->thumb_null) {
- > cmd_buf_framesize[0] = 0x01;
- > err = ce147_i2c_read_multi(client, CMD_JPEG_SIZE,
- > cmd_buf_framesize, cmd_len_framesize,
- > jpeg_framesize, jpeg_framesize_len);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_read "
- > "for jpeg_framesize\n",
- > __func__);
- > return -EIO;
- > }
- > state->jpeg.thumb_size = jpeg_framesize[1]
- > | (jpeg_framesize[2] << 8)
- > | (jpeg_framesize[3] << 16);
- > } else
- 2251c2420,2421
- < ce147_msg(&client->dev, "%s: JPEG thumb filesize = %d bytes\n", __func__, state->jpeg.thumb_size );
- ---
- > ce147_msg(&client->dev, "%s: JPEG thumb filesize = %d bytes\n",
- > __func__, state->jpeg.thumb_size);
- 2253c2423
- < state->jpeg.main_offset = 0;
- ---
- > state->jpeg.main_offset = 0;
- 2258c2428
- < if(state->jpeg.enable)
- ---
- > if (state->jpeg.enable)
- 2263,2265c2433,2438
- < err = ce147_i2c_read_multi(client, CMD_SET_DATA, cmd_buf_setdata, cmd_len_setdata, jpeg_status, jpeg_status_len);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_read for set_data\n", __func__);
- ---
- > err = ce147_i2c_read_multi(client, CMD_SET_DATA,
- > cmd_buf_setdata, cmd_len_setdata,
- > jpeg_status, jpeg_status_len);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_read for set_data\n",
- > __func__);
- 2268,2270c2441,2443
- < ce147_msg(&client->dev, "%s:JPEG framesize (after set_data_out) = 0x%02x.%02x.%02x\n",__func__,\
- < jpeg_status[2], jpeg_status[1],jpeg_status[0]);
- <
- ---
- > ce147_msg(&client->dev, "%s:JPEG framesize (after set_data_out) = "
- > "0x%02x.%02x.%02x\n", __func__,
- > jpeg_status[2], jpeg_status[1], jpeg_status[0]);
- 2273,2275c2446,2450
- < err = ce147_i2c_read_multi(client, CMD_DATA_OUT_REQ, NULL, 0, jpeg_status, jpeg_status_len);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_read for set_data_request\n", __func__);
- ---
- > err = ce147_i2c_read_multi(client, CMD_DATA_OUT_REQ, NULL, 0,
- > jpeg_status, jpeg_status_len);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_read for "
- > "set_data_request\n", __func__);
- 2278,2279c2453,2455
- < ce147_msg(&client->dev, "%s:JPEG framesize (after set_data_request) = 0x%02x.%02x.%02x\n",__func__,\
- < jpeg_status[2], jpeg_status[1],jpeg_status[0]);
- ---
- > ce147_msg(&client->dev, "%s:JPEG framesize (after set_data_request) "
- > "= 0x%02x.%02x.%02x\n", __func__,
- > jpeg_status[2], jpeg_status[1], jpeg_status[0]);
- 2286c2462,2463
- < static int ce147_set_capture_config(struct v4l2_subdev *sd)
- ---
- > static int ce147_set_capture_config(struct v4l2_subdev *sd,
- > struct v4l2_control *ctrl)
- 2290d2466
- < struct ce147_state *state = to_state(sd);
- 2296,2298c2472,2475
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for capture_resolution\n", __func__);
- < return -EIO;
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "capture_resolution\n", __func__);
- > return -EIO;
- 2300c2477
- <
- ---
- >
- 2302,2306c2479,2481
- < * Set DZoom
- < */
- <
- < #if 0
- < if(DZoom_State != 0){
- ---
- > * Set DZoom
- > */
- > if (DZoom_State != 0) {
- 2309,2311c2484,2487
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: Could not set Zoom in Capture_start \n", __func__);
- < return -EIO;
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: Could not set Zoom "
- > "in Capture_start\n", __func__);
- > return -EIO;
- 2314,2315c2490
- < #endif
- <
- ---
- >
- 2317,2318c2492,2493
- < * Set AWB Lock
- < */
- ---
- > * Set AWB Lock
- > */
- 2320,2321c2495,2497
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_set_awb_lock, err %d\n", __func__, err);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_set_awb_lock, "
- > "err %d\n", __func__, err);
- 2328,2330c2504,2507
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: set_capture_cmd failed\n", __func__);
- < return err;
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: set_capture_cmd failed\n",
- > __func__);
- > return err;
- 2332c2509
- <
- ---
- >
- 2336c2513,2514
- < static int ce147_set_capture_start(struct v4l2_subdev *sd)
- ---
- > static int ce147_set_capture_start(struct v4l2_subdev *sd,
- > struct v4l2_control *ctrl)
- 2344c2522,2523
- < * 3. Wait for capture to complete for ce147_set_capture_cmd() in ce147_set_capture_config()
- ---
- > * 3. Wait for capture to complete for ce147_set_capture_cmd()
- > * in ce147_set_capture_config()
- 2346d2524
- < LOGV("%s 1", __func__);
- 2348,2349c2526,2528
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: Wait for buffering_capture\n", __func__ );
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: Wait for "
- > "buffering_capture\n", __func__);
- 2352,2353c2531,2533
- < LOGV("%s 2", __func__);
- < ce147_msg(&client->dev, "%s: buffering_capture - wait time %d ms\n", __func__, err);
- ---
- > ce147_msg(&client->dev, "%s: buffering_capture - wait time %d ms\n",
- > __func__, err);
- >
- 2355d2534
- < LOGV("%s 3", __func__);
- 2357,2363c2536,2543
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: set_capture_cmd failed\n", __func__);
- < return err;
- < }
- <
- < LOGV("%s 4", __func__);
- < if(state->jpeg.enable){
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: set_capture_cmd failed\n",
- > __func__);
- > return err;
- > }
- >
- >
- > if (state->jpeg.enable) {
- 2366,2367c2546
- < */
- < LOGV("%s 5", __func__);
- ---
- > */
- 2369,2370c2548,2550
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for exif\n", __func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "exif\n", __func__);
- 2377d2556
- < LOGV("%s 6", __func__);
- 2379,2380c2558,2560
- < if(err < 0){
- < dev_err(&client->dev, "%s: Setting JPEG encoding parameters\n", __func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: Setting JPEG encoding "
- > "parameters\n", __func__);
- 2386,2389c2566,2570
- < LOGV("%s 7", __func__);
- < err = ce147_waitfordone_timeout(client, 0x6C, 0x00, 3000, POLL_TIME_MS);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: Wait for jpeg_encoding\n", __func__ );
- ---
- > err = ce147_waitfordone_timeout(client, 0x6C, 0x00, 3000,
- > POLL_TIME_MS);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: Wait for "
- > "jpeg_encoding\n", __func__);
- 2392c2573,2574
- < ce147_msg(&client->dev, "%s: jpeg_encoding - wait time %d ms\n", __func__, err);
- ---
- > ce147_msg(&client->dev, "%s: jpeg_encoding - wait time %d ms\n",
- > __func__, err);
- 2396,2397c2578
- < */
- < LOGV("%s 8", __func__);
- ---
- > */
- 2399,2400c2580,2582
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: get_snapshot_data\n", __func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: get_snapshot_data\n",
- > __func__);
- 2404c2586
- < * 9. Wait for done
- ---
- > * 9. Wait for done
- 2406d2587
- < LOGV("%s 9", __func__);
- 2408,2409c2589,2591
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: Wait for data_transfer\n", __func__ );
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: Wait for data_transfer\n",
- > __func__);
- 2411,2413c2593,2596
- < }
- < ce147_msg(&client->dev, "%s: data_transfer - wait time %d ms\n", __func__, err);
- <
- ---
- > }
- > ce147_msg(&client->dev, "%s: data_transfer - wait time %d ms\n",
- > __func__, err);
- >
- 2417c2600,2601
- < static int ce147_get_focus_mode(struct i2c_client *client, unsigned char cmd, unsigned char *value)
- ---
- > static int ce147_get_focus_mode(struct i2c_client *client, unsigned char cmd,
- > unsigned char *value)
- 2424c2608
- < // set focus mode: AF or MACRO
- ---
- > /* set focus mode: AF or MACRO */
- 2426,2427c2610,2612
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for get_focus_mode\n", __func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "get_focus_mode\n", __func__);
- 2429,2432c2614,2616
- < }
- < //check whether af data is valid or not
- < for(count = 0; count < 600; count++)
- < {
- ---
- > }
- > /* check whether af data is valid or not */
- > for (count = 0; count < 600; count++) {
- 2435,2437c2619,2623
- < err = ce147_i2c_read_multi(client, CMD_CHECK_AUTO_FOCUS_SEARCH, NULL, 0, ce147_buf_get_af_status, 1);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_read for get_focus_mode\n", __func__);
- ---
- > err = ce147_i2c_read_multi(client, CMD_CHECK_AUTO_FOCUS_SEARCH,
- > NULL, 0, ce147_buf_get_af_status, 1);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_read for "
- > "get_focus_mode\n", __func__);
- 2440c2626,2627
- < if((ce147_buf_get_af_status[0]&0x01) == 0x00) break;
- ---
- > if ((ce147_buf_get_af_status[0] & 0x01) == 0x00)
- > break;
- 2443c2630
- < if((ce147_buf_get_af_status[0]&0x01) != 0x00)
- ---
- > if ((ce147_buf_get_af_status[0] & 0x01) != 0x00)
- 2446c2633
- < return ce147_buf_get_af_status[0]&0x01;
- ---
- > return ce147_buf_get_af_status[0] & 0x01;
- 2460,2465c2647,2653
- < if(state->runmode > CE147_RUNMODE_IDLE)
- < {
- < // make lens landing mode
- < err = ce147_i2c_write_multi(client, CMD_SET_AUTO_FOCUS_MODE, ce147_buf_set_af_land, ce147_len_set_af_land);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for auto_focus\n", __func__);
- ---
- > if (state->runmode > CE147_RUNMODE_IDLE) {
- > /* make lens landing mode */
- > err = ce147_i2c_write_multi(client, CMD_SET_AUTO_FOCUS_MODE,
- > ce147_buf_set_af_land, ce147_len_set_af_land);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "auto_focus\n", __func__);
- 2467,2470c2655,2657
- < }
- < //check whether af data is valid or not
- < for(count = 0; count < 600; count++)
- < {
- ---
- > }
- > /* check whether af data is valid or not */
- > for (count = 0; count < 600; count++) {
- 2473,2475c2660,2666
- < err = ce147_i2c_read_multi(client, CMD_CHECK_AUTO_FOCUS_SEARCH, NULL, 0, ce147_buf_get_af_status, 1);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_read for get_focus_mode\n", __func__);
- ---
- > err = ce147_i2c_read_multi(client,
- > CMD_CHECK_AUTO_FOCUS_SEARCH, NULL, 0,
- > ce147_buf_get_af_status, 1);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_read "
- > "for get_focus_mode\n",
- > __func__);
- 2478c2669,2670
- < if((ce147_buf_get_af_status[0]) == 0x08) break;
- ---
- > if ((ce147_buf_get_af_status[0]) == 0x08)
- > break;
- 2484c2676
- < static int ce147_set_flash(struct v4l2_subdev *sd, int flash)
- ---
- > static int ce147_set_flash(struct v4l2_subdev *sd, struct v4l2_control *ctrl)
- 2493,2498d2684
- <
- < switch(flash)
- < {
- < case FLASH_MODE_OFF:
- < ce147_buf_set_flash[1] = 0x00;
- < break;
- 2500,2501c2686,2688
- < case FLASH_MODE_AUTO:
- < ce147_buf_set_flash[1] = 0x02;
- ---
- > switch (ctrl->value) {
- > case FLASH_MODE_OFF:
- > ce147_buf_set_flash[1] = 0x00;
- 2504,2505c2691,2692
- < case FLASH_MODE_ON:
- < ce147_buf_set_flash[1] = 0x01;
- ---
- > case FLASH_MODE_AUTO:
- > ce147_buf_set_flash[1] = 0x02;
- 2508,2509c2695,2696
- < case FLASH_MODE_TORCH:
- < ce147_buf_set_flash_manual[1] = 0x01;
- ---
- > case FLASH_MODE_ON:
- > ce147_buf_set_flash[1] = 0x01;
- 2512,2513c2699,2701
- < default:
- < ce147_buf_set_flash[1] = 0x00;
- ---
- > case FLASH_MODE_TORCH:
- > ce147_buf_set_flash_manual[1] = 0x01;
- > break;
- 2514a2703,2704
- > default:
- > ce147_buf_set_flash[1] = 0x00;
- 2518,2523c2708,2715
- < //need to modify flash off for torch mode
- < if(flash == FLASH_MODE_OFF)
- < {
- < err = ce147_i2c_write_multi(client, CMD_SET_FLASH_MANUAL, ce147_buf_set_flash_manual, ce147_len_set_flash_manual);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for set_flash\n", __func__);
- ---
- > /* need to modify flash off for torch mode */
- > if (ctrl->value == FLASH_MODE_OFF) {
- > err = ce147_i2c_write_multi(client, CMD_SET_FLASH_MANUAL,
- > ce147_buf_set_flash_manual,
- > ce147_len_set_flash_manual);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "set_flash\n", __func__);
- 2525c2717
- < }
- ---
- > }
- 2528,2530c2720,2724
- < err = ce147_i2c_write_multi(client, CMD_SET_FLASH, ce147_buf_set_flash, ce147_len_set_flash);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for set_flash\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_SET_FLASH,
- > ce147_buf_set_flash, ce147_len_set_flash);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for set_flash\n",
- > __func__);
- 2533,2534c2727,2729
- <
- < ce147_msg(&client->dev, "%s: done, flash: 0x%02x\n", __func__, ce147_buf_set_flash[1]);
- ---
- >
- > ce147_msg(&client->dev, "%s: done, flash: 0x%02x\n",
- > __func__, ce147_buf_set_flash[1]);
- 2539c2734
- < static int ce147_set_effect(struct v4l2_subdev *sd, int effect)
- ---
- > static int ce147_set_effect(struct v4l2_subdev *sd, struct v4l2_control *ctrl)
- 2546,2551d2740
- <
- < switch(effect)
- < {
- < case IMAGE_EFFECT_NONE:
- < ce147_buf_set_effect[1] = 0x00;
- < break;
- 2553,2554c2742,2744
- < case IMAGE_EFFECT_BNW:
- < ce147_buf_set_effect[1] = 0x01;
- ---
- > switch (ctrl->value) {
- > case IMAGE_EFFECT_NONE:
- > ce147_buf_set_effect[1] = 0x00;
- 2557,2558c2747,2748
- < case IMAGE_EFFECT_SEPIA:
- < ce147_buf_set_effect[1] = 0x03;
- ---
- > case IMAGE_EFFECT_BNW:
- > ce147_buf_set_effect[1] = 0x01;
- 2561,2562c2751,2752
- < case IMAGE_EFFECT_AQUA:
- < ce147_buf_set_effect[1] = 0x0D;
- ---
- > case IMAGE_EFFECT_SEPIA:
- > ce147_buf_set_effect[1] = 0x03;
- 2565,2566c2755,2756
- < case IMAGE_EFFECT_ANTIQUE:
- < ce147_buf_set_effect[1] = 0x06;
- ---
- > case IMAGE_EFFECT_AQUA:
- > ce147_buf_set_effect[1] = 0x0D;
- 2569,2570c2759,2760
- < case IMAGE_EFFECT_NEGATIVE:
- < ce147_buf_set_effect[1] = 0x05;
- ---
- > case IMAGE_EFFECT_ANTIQUE:
- > ce147_buf_set_effect[1] = 0x06;
- 2573,2574c2763,2764
- < case IMAGE_EFFECT_SHARPEN:
- < ce147_buf_set_effect[1] = 0x04;
- ---
- > case IMAGE_EFFECT_NEGATIVE:
- > ce147_buf_set_effect[1] = 0x05;
- 2577,2578c2767,2769
- < default:
- < ce147_buf_set_effect[1] = 0x00;
- ---
- > case IMAGE_EFFECT_SHARPEN:
- > ce147_buf_set_effect[1] = 0x04;
- > break;
- 2579a2771,2772
- > default:
- > ce147_buf_set_effect[1] = 0x00;
- 2583,2585c2776,2780
- < err = ce147_i2c_write_multi(client, CMD_SET_EFFECT, ce147_buf_set_effect, ce147_len_set_effect);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for set_effect\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_SET_EFFECT,
- > ce147_buf_set_effect, ce147_len_set_effect);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for set_effect\n",
- > __func__);
- 2588c2783
- < #if 0 //remove batch
- ---
- > #if 0 /* remove batch */
- 2590,2592c2785,2788
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_get_batch_reflection_status for set_effect\n", __func__);
- < return -EIO;
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_get_batch_"
- > "reflection_status for set_effect\n", __func__);
- > return -EIO;
- 2600c2796,2797
- < static int ce147_set_saturation(struct v4l2_subdev *sd, int saturation)
- ---
- > static int ce147_set_saturation(struct v4l2_subdev *sd,
- > struct v4l2_control *ctrl)
- 2607,2612d2803
- <
- < switch(saturation)
- < {
- < case SATURATION_MINUS_2:
- < ce147_buf_set_saturation[1] = 0x01;
- < break;
- 2614,2615c2805,2807
- < case SATURATION_MINUS_1:
- < ce147_buf_set_saturation[1] = 0x02;
- ---
- > switch (ctrl->value) {
- > case SATURATION_MINUS_2:
- > ce147_buf_set_saturation[1] = 0x01;
- 2618,2619c2810,2811
- < case SATURATION_DEFAULT:
- < ce147_buf_set_saturation[1] = 0x03;
- ---
- > case SATURATION_MINUS_1:
- > ce147_buf_set_saturation[1] = 0x02;
- 2622,2623c2814,2815
- < case SATURATION_PLUS_1:
- < ce147_buf_set_saturation[1] = 0x04;
- ---
- > case SATURATION_DEFAULT:
- > ce147_buf_set_saturation[1] = 0x03;
- 2626,2627c2818,2819
- < case SATURATION_PLUS_2:
- < ce147_buf_set_saturation[1] = 0x05;
- ---
- > case SATURATION_PLUS_1:
- > ce147_buf_set_saturation[1] = 0x04;
- 2630,2631c2822,2824
- < default:
- < ce147_buf_set_saturation[1] = 0x03;
- ---
- > case SATURATION_PLUS_2:
- > ce147_buf_set_saturation[1] = 0x05;
- > break;
- 2632a2826,2827
- > default:
- > ce147_buf_set_saturation[1] = 0x03;
- 2636,2638c2831,2835
- < err = ce147_i2c_write_multi(client, CMD_SET_EFFECT, ce147_buf_set_saturation, ce147_len_set_saturation);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for set_saturation\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_SET_EFFECT,
- > ce147_buf_set_saturation, ce147_len_set_saturation);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "set_saturation\n", __func__);
- 2641c2838
- < #if 0 //remove batch
- ---
- > #if 0 /* remove batch */
- 2643,2645c2840,2844
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_get_batch_reflection_status for set_saturation\n", __func__);
- < return -EIO;
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_get_batch_"
- > "reflection_status for set_saturation\n",
- > __func__);
- > return -EIO;
- 2648c2847,2848
- < ce147_msg(&client->dev, "%s: done, saturation: 0x%02x\n", __func__, ce147_buf_set_saturation[1]);
- ---
- > ce147_msg(&client->dev, "%s: done, saturation: 0x%02x\n",
- > __func__, ce147_buf_set_saturation[1]);
- 2653c2853
- < static int ce147_set_contrast(struct v4l2_subdev *sd, int contrast)
- ---
- > static int ce147_set_contrast(struct v4l2_subdev *sd, struct v4l2_control *ctrl)
- 2660,2665d2859
- <
- < switch(contrast)
- < {
- < case CONTRAST_MINUS_2:
- < ce147_buf_set_contrast[1] = 0x01;
- < break;
- 2667,2668c2861,2863
- < case CONTRAST_MINUS_1:
- < ce147_buf_set_contrast[1] = 0x02;
- ---
- > switch (ctrl->value) {
- > case CONTRAST_MINUS_2:
- > ce147_buf_set_contrast[1] = 0x01;
- 2671,2672c2866,2867
- < case CONTRAST_DEFAULT:
- < ce147_buf_set_contrast[1] = 0x03;
- ---
- > case CONTRAST_MINUS_1:
- > ce147_buf_set_contrast[1] = 0x02;
- 2675,2676c2870,2871
- < case CONTRAST_PLUS_1:
- < ce147_buf_set_contrast[1] = 0x04;
- ---
- > case CONTRAST_DEFAULT:
- > ce147_buf_set_contrast[1] = 0x03;
- 2679,2680c2874,2875
- < case CONTRAST_PLUS_2:
- < ce147_buf_set_contrast[1] = 0x05;
- ---
- > case CONTRAST_PLUS_1:
- > ce147_buf_set_contrast[1] = 0x04;
- 2683,2684c2878,2880
- < default:
- < ce147_buf_set_contrast[1] = 0x03;
- ---
- > case CONTRAST_PLUS_2:
- > ce147_buf_set_contrast[1] = 0x05;
- > break;
- 2685a2882,2883
- > default:
- > ce147_buf_set_contrast[1] = 0x03;
- 2689,2691c2887,2891
- < err = ce147_i2c_write_multi(client, CMD_SET_EFFECT, ce147_buf_set_contrast, ce147_len_set_contrast);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for set_contrast\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_SET_EFFECT,
- > ce147_buf_set_contrast, ce147_len_set_contrast);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "set_contrast\n", __func__);
- 2694c2894
- < #if 0 //remove batch
- ---
- > #if 0 /* remove batch */
- 2696,2698c2896,2900
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_get_batch_reflection_status for set_contrast\n", __func__);
- < return -EIO;
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_get_batch_"
- > "reflection_status for set_contrast\n",
- > __func__);
- > return -EIO;
- 2701c2903,2904
- < ce147_msg(&client->dev, "%s: done, contrast: 0x%02x\n", __func__, ce147_buf_set_contrast[1]);
- ---
- > ce147_msg(&client->dev, "%s: done, contrast: 0x%02x\n",
- > __func__, ce147_buf_set_contrast[1]);
- 2706c2909,2910
- < static int ce147_set_sharpness(struct v4l2_subdev *sd, int sharpness)
- ---
- > static int ce147_set_sharpness(struct v4l2_subdev *sd,
- > struct v4l2_control *ctrl)
- 2713,2718d2916
- <
- < switch(sharpness)
- < {
- < case SHARPNESS_MINUS_2:
- < ce147_buf_set_saturation[1] = 0x01;
- < break;
- 2720,2721c2918,2920
- < case SHARPNESS_MINUS_1:
- < ce147_buf_set_saturation[1] = 0x02;
- ---
- > switch (ctrl->value) {
- > case SHARPNESS_MINUS_2:
- > ce147_buf_set_saturation[1] = 0x01;
- 2724,2725c2923,2924
- < case SHARPNESS_DEFAULT:
- < ce147_buf_set_saturation[1] = 0x03;
- ---
- > case SHARPNESS_MINUS_1:
- > ce147_buf_set_saturation[1] = 0x02;
- 2728,2729c2927,2928
- < case SHARPNESS_PLUS_1:
- < ce147_buf_set_saturation[1] = 0x04;
- ---
- > case SHARPNESS_DEFAULT:
- > ce147_buf_set_saturation[1] = 0x03;
- 2732,2733c2931,2932
- < case SHARPNESS_PLUS_2:
- < ce147_buf_set_saturation[1] = 0x05;
- ---
- > case SHARPNESS_PLUS_1:
- > ce147_buf_set_saturation[1] = 0x04;
- 2736,2737c2935,2937
- < default:
- < ce147_buf_set_saturation[1] = 0x03;
- ---
- > case SHARPNESS_PLUS_2:
- > ce147_buf_set_saturation[1] = 0x05;
- > break;
- 2738a2939,2940
- > default:
- > ce147_buf_set_saturation[1] = 0x03;
- 2742,2744c2944,2948
- < err = ce147_i2c_write_multi(client, CMD_SET_EFFECT, ce147_buf_set_saturation, ce147_len_set_saturation);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for set_saturation\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_SET_EFFECT,
- > ce147_buf_set_saturation, ce147_len_set_saturation);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "set_saturation\n", __func__);
- 2747c2951
- < #if 0 //remove batch
- ---
- > #if 0 /* remove batch */
- 2749,2751c2953,2957
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_get_batch_reflection_status for set_saturation\n", __func__);
- < return -EIO;
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_get_batch_"
- > "reflection_status for set_saturation\n",
- > __func__);
- > return -EIO;
- 2754c2960,2961
- < ce147_msg(&client->dev, "%s: done, sharpness: 0x%02x\n", __func__, ce147_buf_set_saturation[1]);
- ---
- > ce147_msg(&client->dev, "%s: done, sharpness: 0x%02x\n",
- > __func__, ce147_buf_set_saturation[1]);
- 2759c2966
- < static int ce147_set_wdr(struct v4l2_subdev *sd, int wdr)
- ---
- > static int ce147_set_wdr(struct v4l2_subdev *sd, struct v4l2_control *ctrl)
- 2766,2770c2973,2976
- <
- < switch(wdr)
- < {
- < case WDR_ON:
- < ce147_buf_set_wdr[0] = 0x01;
- ---
- >
- > switch (ctrl->value) {
- > case WDR_ON:
- > ce147_buf_set_wdr[0] = 0x01;
- 2772,2775d2977
- <
- < case WDR_OFF:
- < default:
- < ce147_buf_set_wdr[0] = 0x00;
- 2776a2979,2981
- > case WDR_OFF:
- > default:
- > ce147_buf_set_wdr[0] = 0x00;
- 2780,2782c2985,2989
- < err = ce147_i2c_write_multi(client, CMD_SET_WDR, ce147_buf_set_wdr, ce147_len_set_wdr);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for set_wdr\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_SET_WDR,
- > ce147_buf_set_wdr, ce147_len_set_wdr);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for set_wdr\n",
- > __func__);
- 2786c2993,2994
- < ce147_msg(&client->dev, "%s: done, wdr: 0x%02x\n", __func__, ce147_buf_set_wdr[0]);
- ---
- > ce147_msg(&client->dev, "%s: done, wdr: 0x%02x\n",
- > __func__, ce147_buf_set_wdr[0]);
- 2791c2999,3000
- < static int ce147_set_anti_shake(struct v4l2_subdev *sd, int anti_shake)
- ---
- > static int ce147_set_anti_shake(struct v4l2_subdev *sd,
- > struct v4l2_control *ctrl)
- 2798,2803d3006
- <
- < switch(anti_shake)
- < {
- < case ANTI_SHAKE_STILL_ON:
- < ce147_buf_set_anti_shake[0] = 0x01;
- < break;
- 2805,2806c3008,3010
- < case ANTI_SHAKE_MOVIE_ON:
- < ce147_buf_set_anti_shake[0] = 0x10;
- ---
- > switch (ctrl->value) {
- > case ANTI_SHAKE_STILL_ON:
- > ce147_buf_set_anti_shake[0] = 0x01;
- 2809,2811c3013,3015
- < case ANTI_SHAKE_OFF:
- < default:
- < ce147_buf_set_anti_shake[0] = 0x00;
- ---
- > case ANTI_SHAKE_MOVIE_ON:
- > ce147_buf_set_anti_shake[0] = 0x10;
- > break;
- 2812a3017,3019
- > case ANTI_SHAKE_OFF:
- > default:
- > ce147_buf_set_anti_shake[0] = 0x00;
- 2816,2818c3023,3027
- < err = ce147_i2c_write_multi(client, CMD_SET_ANTI_SHAKE, ce147_buf_set_anti_shake, ce147_len_set_anti_shake);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for anti_shake\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_SET_ANTI_SHAKE,
- > ce147_buf_set_anti_shake, ce147_len_set_anti_shake);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for anti_shake\n",
- > __func__);
- 2822c3031,3032
- < ce147_msg(&client->dev, "%s: done, AHS: 0x%02x\n", __func__, ce147_buf_set_anti_shake[0]);
- ---
- > ce147_msg(&client->dev, "%s: done, AHS: 0x%02x\n",
- > __func__, ce147_buf_set_anti_shake[0]);
- 2827c3037,3038
- < static int ce147_set_continous_af(struct v4l2_subdev *sd, int af)
- ---
- > static int ce147_set_continous_af(struct v4l2_subdev *sd,
- > struct v4l2_control *ctrl)
- 2840,2841c3051
- < /* need to set face_detection with noline */
- < //
- ---
- > /* need to set face_detection with noline */
- 2843,2847c3053,3058
- < if(af)
- < {
- < err = ce147_get_focus_mode(client, CMD_SET_AUTO_FOCUS_MODE, ce147_buf_set_caf);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: start_continous_af\n", __func__);
- ---
- > if (ctrl->value) {
- > err = ce147_get_focus_mode(client, CMD_SET_AUTO_FOCUS_MODE,
- > ce147_buf_set_caf);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: "
- > "start_continous_af\n", __func__);
- 2851,2854c3062,3068
- < //start af search
- < err = ce147_i2c_write_multi(client, CMD_START_AUTO_FOCUS_SEARCH, ce147_buf_start_af_search, ce147_len_start_af_search);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for start_continous_af\n", __func__);
- ---
- > /* start af search */
- > err = ce147_i2c_write_multi(client, CMD_START_AUTO_FOCUS_SEARCH,
- > ce147_buf_start_af_search,
- > ce147_len_start_af_search);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "start_continous_af\n", __func__);
- 2857,2862c3071,3076
- < }
- < else
- < {
- < err = ce147_get_focus_mode(client, CMD_STOP_LENS_MOVEMENT, ce147_buf_stop_lens_movement);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: stop_continous_af\n", __func__);
- ---
- > } else {
- > err = ce147_get_focus_mode(client, CMD_STOP_LENS_MOVEMENT,
- > ce147_buf_stop_lens_movement);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: stop_continous_af\n",
- > __func__);
- 2866,2868c3080,3084
- < err = ce147_get_focus_mode(client, CMD_SET_AUTO_FOCUS_MODE, ce147_buf_set_af);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: stop_continous_af\n", __func__);
- ---
- > err = ce147_get_focus_mode(client, CMD_SET_AUTO_FOCUS_MODE,
- > ce147_buf_set_af);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: stop_continous_af\n",
- > __func__);
- 2879c3095,3096
- < static int ce147_set_object_tracking(struct v4l2_subdev *sd, int object_tracking)
- ---
- > static int ce147_set_object_tracking(struct v4l2_subdev *sd,
- > struct v4l2_control *ctrl)
- 2885c3102
- <
- ---
- >
- 2893c3110
- < unsigned char ce147_buf_stop_lens[1] = { 0x00 };
- ---
- > unsigned char ce147_buf_stop_lens[1] = { 0x00 };
- 2899,2903c3116,3119
- < if(object_tracking = OT_START)
- < {
- < ce147_buf_set_object_tracking[3] = (x & 0x00FF);
- < ce147_buf_set_object_tracking[4] = ((x & 0xFF00) >> 8);
- < ce147_buf_set_object_tracking[5] = (y & 0x00FF);
- ---
- > if (OT_START) {
- > ce147_buf_set_object_tracking[3] = (x & 0x00FF);
- > ce147_buf_set_object_tracking[4] = ((x & 0xFF00) >> 8);
- > ce147_buf_set_object_tracking[5] = (y & 0x00FF);
- 2905,2908c3121,3127
- <
- < err = ce147_i2c_write_multi(client, CMD_START_OT, ce147_buf_set_object_tracking, ce147_len_set_object_tracking);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for object_tracking\n", __func__);
- ---
- >
- > err = ce147_i2c_write_multi(client, CMD_START_OT,
- > ce147_buf_set_object_tracking,
- > ce147_len_set_object_tracking);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "object_tracking\n", __func__);
- 2912,2914c3131,3132
- < /* Read status whether AF Tracking is successful or fail */
- < for(count = 0; count < 300; count++)
- < {
- ---
- > /* Read status whether AF Tracking is successful or fail */
- > for (count = 0; count < 300; count++) {
- 2917,2919c3135,3142
- < err = ce147_i2c_read_multi(client, CMD_CHECK_OT, NULL, 0, ce147_buf_check_object_tracking, ce147_len_check_object_tracking);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_read for object_tracking\n", __func__);
- ---
- > err = ce147_i2c_read_multi(client, CMD_CHECK_OT,
- > NULL, 0,
- > ce147_buf_check_object_tracking,
- > ce147_len_check_object_tracking);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_read "
- > "for object_tracking\n",
- > __func__);
- 2922,2923c3145,3148
- < if(ce147_buf_check_object_tracking[0] == 0x02 || ce147_buf_check_object_tracking[0] == 0x03) break;
- < }
- ---
- > if (ce147_buf_check_object_tracking[0] == 0x02
- > || ce147_buf_check_object_tracking[0] == 0x03)
- > break;
- > }
- 2925,2927c3150,3151
- < /* OT status: searching an object in progess */
- < if(ce147_buf_check_object_tracking[0] == 0x01)
- < {
- ---
- > /* OT status: searching an object in progess */
- > if (ce147_buf_check_object_tracking[0] == 0x01) {
- 2929,2936c3153,3159
- < }
- <
- < /* OT status: an object is detected successfully */
- < else if(ce147_buf_check_object_tracking[0] == 0x02)
- < {
- < err = ce147_set_continous_af(sd, object_tracking);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_start_continous_af for object_tracking\n", __func__);
- ---
- > } else if (ce147_buf_check_object_tracking[0] == 0x02) {
- > /* OT status: an object is detected successfully */
- > err = ce147_set_continous_af(sd, ctrl);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: "
- > "ce147_start_continous_af for "
- > "object_tracking\n", __func__);
- 2940,2944c3163,3164
- < }
- <
- < /* OT status: an object detecting is failed */
- < else if(ce147_buf_check_object_tracking[0] == 0x03)
- < {
- ---
- > } else if (ce147_buf_check_object_tracking[0] == 0x03) {
- > /* OT status: an object detecting is failed */
- 2947,2952c3167,3173
- < }
- < else
- < {
- < err = ce147_get_focus_mode(client, CMD_STOP_LENS_MOVEMENT, ce147_buf_stop_lens);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_start_continous_af for object_tracking\n", __func__);
- ---
- > } else {
- > err = ce147_get_focus_mode(client, CMD_STOP_LENS_MOVEMENT,
- > ce147_buf_stop_lens);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: "
- > "ce147_start_continous_af for "
- > "object_tracking\n", __func__);
- 2954c3175
- < }
- ---
- > }
- 2956,2958c3177,3182
- < err = ce147_i2c_write_multi(client, CMD_START_OT, ce147_buf_set_object_tracking, ce147_len_set_object_tracking);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for object_tracking\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_START_OT,
- > ce147_buf_set_object_tracking,
- > ce147_len_set_object_tracking);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "object_tracking\n", __func__);
- 2962c3186
- < ce147_msg(&client->dev, "%s: done\n", __func__);
- ---
- > ce147_msg(&client->dev, "%s: done\n", __func__);
- 2967c3191,3192
- < static int ce147_get_object_tracking(struct v4l2_subdev *sd, struct v4l2_control *ctrl)
- ---
- > static int ce147_get_object_tracking(struct v4l2_subdev *sd,
- > struct v4l2_control *ctrl)
- 2978,2980c3203,3208
- < err = ce147_i2c_read_multi(client, CMD_CHECK_OT, NULL, 0, ce147_buf_check_object_tracking, ce147_len_check_object_tracking);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_read for object_tracking\n", __func__);
- ---
- > err = ce147_i2c_read_multi(client, CMD_CHECK_OT, NULL, 0,
- > ce147_buf_check_object_tracking,
- > ce147_len_check_object_tracking);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_read for "
- > "object_tracking\n", __func__);
- 2985,2986c3213
- < if(ce147_buf_check_object_tracking[0] == 0x01)
- < {
- ---
- > if (ce147_buf_check_object_tracking[0] == 0x01) {
- 2988,2992c3215,3216
- < }
- <
- < /* OT status: an object is detected successfully */
- < else if(ce147_buf_check_object_tracking[0] == 0x02)
- < {
- ---
- > } else if (ce147_buf_check_object_tracking[0] == 0x02) {
- > /* OT status: an object is detected successfully */
- 2994,2998c3218,3219
- < }
- <
- < /* OT status: an object detecting is failed */
- < else if(ce147_buf_check_object_tracking[0] == 0x03)
- < {
- ---
- > } else if (ce147_buf_check_object_tracking[0] == 0x03) {
- > /* OT status: an object detecting is failed */
- 3000,3004c3221,3222
- < }
- <
- < /* OT status: detected object is missing */
- < else if(ce147_buf_check_object_tracking[0] == 0x04)
- < {
- ---
- > } else if (ce147_buf_check_object_tracking[0] == 0x04) {
- > /* OT status: detected object is missing */
- 3006,3008c3224,3226
- < }
- <
- < ce147_msg(&client->dev, "%s: done\n", __func__);
- ---
- > }
- >
- > ce147_msg(&client->dev, "%s: done\n", __func__);
- 3013c3231,3232
- < static int ce147_set_face_detection(struct v4l2_subdev *sd, int face_detection)
- ---
- > static int ce147_set_face_detection(struct v4l2_subdev *sd,
- > struct v4l2_control *ctrl)
- 3019,3026c3238,3244
- < unsigned int ce147_len_set_fd = 3;
- <
- < switch(face_detection)
- < {
- < case FACE_DETECTION_ON:
- < ce147_buf_set_fd[0] = 0x03;
- < ce147_buf_set_fd[1] = 0x01;
- < ce147_buf_set_fd[2] = 0x0A;
- ---
- > unsigned int ce147_len_set_fd = 3;
- >
- > switch (ctrl->value) {
- > case FACE_DETECTION_ON:
- > ce147_buf_set_fd[0] = 0x03;
- > ce147_buf_set_fd[1] = 0x01;
- > ce147_buf_set_fd[2] = 0x0A;
- 3029,3032c3247,3250
- < case FACE_DETECTION_ON_BEAUTY:
- < ce147_buf_set_fd[0] = 0x01;
- < ce147_buf_set_fd[1] = 0x01;
- < ce147_buf_set_fd[2] = 0x0A;
- ---
- > case FACE_DETECTION_ON_BEAUTY:
- > ce147_buf_set_fd[0] = 0x01;
- > ce147_buf_set_fd[1] = 0x01;
- > ce147_buf_set_fd[2] = 0x0A;
- 3035,3038c3253,3256
- < case FACE_DETECTION_NOLINE:
- < ce147_buf_set_fd[0] = 0x03;
- < ce147_buf_set_fd[1] = 0x00;
- < ce147_buf_set_fd[2] = 0x0A;
- ---
- > case FACE_DETECTION_NOLINE:
- > ce147_buf_set_fd[0] = 0x03;
- > ce147_buf_set_fd[1] = 0x00;
- > ce147_buf_set_fd[2] = 0x0A;
- 3041,3045c3259,3263
- < case FACE_DETECTION_OFF:
- < default:
- < ce147_buf_set_fd[0] = 0x00;
- < ce147_buf_set_fd[1] = 0x00;
- < ce147_buf_set_fd[2] = 0x00;
- ---
- > case FACE_DETECTION_OFF:
- > default:
- > ce147_buf_set_fd[0] = 0x00;
- > ce147_buf_set_fd[1] = 0x00;
- > ce147_buf_set_fd[2] = 0x00;
- 3048,3051c3266,3271
- <
- < err = ce147_i2c_write_multi(client, CMD_SET_FACE_DETECTION, ce147_buf_set_fd, ce147_len_set_fd);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for face_detection\n", __func__);
- ---
- >
- > err = ce147_i2c_write_multi(client, CMD_SET_FACE_DETECTION,
- > ce147_buf_set_fd, ce147_len_set_fd);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "face_detection\n", __func__);
- 3060c3280,3281
- < static int ce147_set_smart_auto(struct v4l2_subdev *sd, int smart_auto)
- ---
- > static int ce147_set_smart_auto(struct v4l2_subdev *sd,
- > struct v4l2_control *ctrl)
- 3067,3069c3288,3289
- <
- < if(smart_auto == SMART_AUTO_ON)
- < {
- ---
- >
- > if (ctrl->value == SMART_AUTO_ON) {
- 3071,3073c3291,3296
- < err = ce147_i2c_write_multi(client, CMD_SET_SMART_AUTO, ce147_buf_set_smart_auto, ce147_len_set_smart_auto);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for smart_auto\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_SET_SMART_AUTO,
- > ce147_buf_set_smart_auto,
- > ce147_len_set_smart_auto);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "smart_auto\n", __func__);
- 3078,3079c3301,3303
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: CAF_START for smart_auto\n", __func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: CAF_START for "
- > "smart_auto\n", __func__);
- 3083,3086c3307,3308
- < }
- < else
- < {
- < #if 0
- ---
- > } else {
- > #if 0
- 3088,3089c3310,3312
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: CAF_START for smart_auto\n", __func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: CAF_START for "
- > "smart_auto\n", __func__);
- 3093c3316
- <
- ---
- >
- 3095,3097c3318,3323
- < err = ce147_i2c_write_multi(client, CMD_SET_SMART_AUTO, ce147_buf_set_smart_auto, ce147_len_set_smart_auto);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for smart_auto\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_SET_SMART_AUTO,
- > ce147_buf_set_smart_auto,
- > ce147_len_set_smart_auto);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "smart_auto\n", __func__);
- 3107c3333,3334
- < static int ce147_get_smart_auto_status(struct v4l2_subdev *sd, struct v4l2_control *ctrl)
- ---
- > static int ce147_get_smart_auto_status(struct v4l2_subdev *sd,
- > struct v4l2_control *ctrl)
- 3111c3338
- < struct ce147_state *state = to_state(sd);
- ---
- > struct ce147_state *state = to_state(sd);
- 3117,3119c3344,3348
- < err = ce147_i2c_read_multi(client, CMD_GET_SMART_AUTO_STATUS, NULL, 0, ce147_buf_smart_auto_status, 2);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_read for auto_status\n", __func__);
- ---
- > err = ce147_i2c_read_multi(client, CMD_GET_SMART_AUTO_STATUS, NULL, 0,
- > ce147_buf_smart_auto_status, 2);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_read for auto_status\n",
- > __func__);
- 3123,3124c3352,3353
- < if(ce147_buf_smart_auto_status[0] == 0x00 || ce147_buf_smart_auto_status[0] == 0x01)
- < {
- ---
- > if (ce147_buf_smart_auto_status[0] == 0x00
- > || ce147_buf_smart_auto_status[0] == 0x01) {
- 3126,3132c3355,3358
- < }
- < else
- < {
- < switch(ce147_buf_smart_auto_status[1])
- < {
- < case 0x00:
- < state->sa_status = SMART_AUTO_STATUS_LANDSCAPE;
- ---
- > } else {
- > switch (ce147_buf_smart_auto_status[1]) {
- > case 0x00:
- > state->sa_status = SMART_AUTO_STATUS_LANDSCAPE;
- 3134,3136c3360,3362
- <
- < case 0x01:
- < state->sa_status = SMART_AUTO_STATUS_PORTRAIT;
- ---
- >
- > case 0x01:
- > state->sa_status = SMART_AUTO_STATUS_PORTRAIT;
- 3138,3140c3364,3366
- <
- < case 0x02:
- < state->sa_status = SMART_AUTO_STATUS_NIGHT;
- ---
- >
- > case 0x02:
- > state->sa_status = SMART_AUTO_STATUS_NIGHT;
- 3142,3144c3368,3370
- <
- < case 0x03:
- < state->sa_status = SMART_AUTO_STATUS_PORTRAIT_NIGHT;
- ---
- >
- > case 0x03:
- > state->sa_status = SMART_AUTO_STATUS_PORTRAIT_NIGHT;
- 3146,3152c3372,3374
- <
- < case 0x04:
- < state->sa_status = SMART_AUTO_STATUS_MACRO;
- < break;
- <
- < case 0x05:
- < state->sa_status = SMART_AUTO_STATUS_PORTRAIT_BACKLIT;
- ---
- >
- > case 0x04:
- > state->sa_status = SMART_AUTO_STATUS_MACRO;
- 3154,3156c3376,3382
- <
- < case 0x06:
- < state->sa_status = SMART_AUTO_STATUS_PORTRAIT_ANTISHAKE;
- ---
- >
- > case 0x05:
- > state->sa_status = SMART_AUTO_STATUS_PORTRAIT_BACKLIT;
- > break;
- >
- > case 0x06:
- > state->sa_status = SMART_AUTO_STATUS_PORTRAIT_ANTISHAKE;
- 3158,3162c3384,3388
- <
- < case 0x07:
- < state->sa_status = SMART_AUTO_STATUS_ANTISHAKE;
- < break;
- < }
- ---
- >
- > case 0x07:
- > state->sa_status = SMART_AUTO_STATUS_ANTISHAKE;
- > break;
- > }
- 3165c3391,3392
- < ce147_msg(&client->dev, "%s: done(smartauto_status:%d)\n", __func__,state->sa_status);
- ---
- > ce147_msg(&client->dev, "%s: done(smartauto_status:%d)\n",
- > __func__, state->sa_status);
- 3170c3397,3398
- < static int ce147_set_touch_auto_focus(struct v4l2_subdev *sd, int focus)
- ---
- > static int ce147_set_touch_auto_focus(struct v4l2_subdev *sd,
- > struct v4l2_control *ctrl)
- 3182c3410
- < #if defined(CONFIG_ARIES_NTT) // Modify NTTS1
- ---
- > #if defined(CONFIG_ARIES_NTT) /* Modify NTTS1 */
- 3184,3185c3412,3414
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_set_awb_lock, err %d\n", __func__, err);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_set_awb_lock, "
- > "err %d\n", __func__, err);
- 3192,3194c3421,3422
- <
- < if(focus == TOUCH_AF_START)
- < {
- ---
- >
- > if (ctrl->value == TOUCH_AF_START) {
- 3198c3426
- < ce147_buf_set_touch_af[3] = ((x - 0x32) & 0x00FF);
- ---
- > ce147_buf_set_touch_af[3] = ((x - 0x32) & 0x00FF);
- 3200c3428
- < ce147_buf_set_touch_af[5] = ((y - 0x32) & 0x00FF);
- ---
- > ce147_buf_set_touch_af[5] = ((y - 0x32) & 0x00FF);
- 3202c3430
- < ce147_buf_set_touch_af[7] = ((x + 0x32) & 0x00FF);
- ---
- > ce147_buf_set_touch_af[7] = ((x + 0x32) & 0x00FF);
- 3204c3432
- < ce147_buf_set_touch_af[9] = ((y + 0x32) & 0x00FF);
- ---
- > ce147_buf_set_touch_af[9] = ((y + 0x32) & 0x00FF);
- 3207,3210c3435,3440
- <
- < err = ce147_i2c_write_multi(client, CMD_SET_TOUCH_AUTO_FOCUS, ce147_buf_set_touch_af, ce147_len_set_touch_af);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for touch_auto_focus\n", __func__);
- ---
- >
- > err = ce147_i2c_write_multi(client, CMD_SET_TOUCH_AUTO_FOCUS,
- > ce147_buf_set_touch_af, ce147_len_set_touch_af);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "touch_auto_focus\n", __func__);
- 3219c3449,3450
- < static int ce147_set_focus_mode(struct v4l2_subdev *sd, int focus_mode)
- ---
- > static int ce147_set_focus_mode(struct v4l2_subdev *sd,
- > struct v4l2_control *ctrl)
- 3227,3234c3458,3461
- < switch(focus_mode)
- < {
- < case FOCUS_MODE_MACRO:
- < case FOCUS_MODE_MACRO_DEFAULT:
- < ce147_buf_set_focus_mode[0] = 0x01;
- < break;
- <
- < case FOCUS_MODE_FACEDETECT:
- ---
- > switch (ctrl->value) {
- > case FOCUS_MODE_MACRO:
- > case FOCUS_MODE_MACRO_DEFAULT:
- > ce147_buf_set_focus_mode[0] = 0x01;
- 3237,3241c3464,3471
- < case FOCUS_MODE_AUTO:
- < case FOCUS_MODE_AUTO_DEFAULT:
- < case FOCUS_MODE_FACEDETECT_DEFAULT:
- < default:
- < ce147_buf_set_focus_mode[0] = 0x00;
- ---
- > /* case FOCUS_MODE_FD:
- > break; */
- >
- > case FOCUS_MODE_AUTO:
- > case FOCUS_MODE_AUTO_DEFAULT:
- > /* case FOCUS_MODE_FD_DEFAULT: */
- > default:
- > ce147_buf_set_focus_mode[0] = 0x00;
- 3244,3257c3474,3476
- < state->cur_af_status = ce147_buf_set_focus_mode[0];
- <
- < if(focus_mode != FOCUS_MODE_FACEDETECT)
- < {
- < if((state->pre_af_status != state->cur_af_status) \
- < || (focus_mode == FOCUS_MODE_MACRO_DEFAULT)||(focus_mode == FOCUS_MODE_AUTO_DEFAULT)|| (focus_mode == FOCUS_MODE_FACEDETECT_DEFAULT))
- < {
- < #if defined(CONFIG_ARIES_NTT) // Modify NTTS1
- < ce147_msg(&client->dev, "%s: unlock\n", __func__);
- < err = ce147_set_awb_lock(sd, 0);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_set_awb_unlock, err %d\n", __func__, err);
- < return -EIO;
- < }
- ---
- > #if 0
- > if (state->hd_preview_on == 1)
- > ce147_buf_set_focus_mode[0] = 0x07;
- 3259,3265c3478,3499
- < //printk("[5B] ce147_set_focus_mode: %d\n", ce147_buf_set_focus_mode[0]);
- < err = ce147_get_focus_mode(client, CMD_SET_AUTO_FOCUS_MODE, ce147_buf_set_focus_mode);
- < if(err < 0)
- < {
- < dev_err(&client->dev, "%s: failed: get_focus_mode\n", __func__);
- < return -EIO;
- < }
- ---
- > /* if (ctrl->value != FOCUS_MODE_FD) { */
- > if ((state->pre_focus_mode != ce147_buf_set_focus_mode[0])
- > || (ctrl->value == FOCUS_MODE_MACRO_DEFAULT)
- > || (ctrl->value == FOCUS_MODE_AUTO_DEFAULT)) {
- > /* || (ctrl->value == FOCUS_MODE_FD_DEFAULT)) */
- > #if defined(CONFIG_ARIES_NTT) /* Modify NTTS1 */
- > ce147_msg(&client->dev, "%s: unlock\n", __func__);
- > err = ce147_set_awb_lock(sd, 0);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_set_awb_"
- > "unlock, err %d\n", __func__, err);
- > return -EIO;
- > }
- > #endif
- > /* pr_debug("[5B] ce147_set_focus_mode: %d\n",
- > ce147_buf_set_focus_mode[0]); */
- > err = ce147_get_focus_mode(client, CMD_SET_AUTO_FOCUS_MODE,
- > ce147_buf_set_focus_mode);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: get_focus_mode\n",
- > __func__);
- > return -EIO;
- 3267,3268c3501,3504
- < state->pre_af_status = state->cur_af_status;
- < }
- ---
- > }
- > state->pre_focus_mode = ce147_buf_set_focus_mode[0];
- > /* } */
- >
- 3272c3508,3509
- < static int ce147_set_vintage_mode(struct v4l2_subdev *sd, int vintage_mode)
- ---
- > static int ce147_set_vintage_mode(struct v4l2_subdev *sd,
- > struct v4l2_control *ctrl)
- 3277,3285c3514,3523
- < unsigned char ce147_buf_set_vintage_mode[4] = { 0x10, 0x01, 0x32, 0x00 };
- < unsigned int ce147_len_set_vintage_mode = 4;
- <
- < switch(vintage_mode)
- < {
- < case VINTAGE_MODE_OFF:
- < ce147_buf_set_vintage_mode[1] = 0x00;
- < ce147_buf_set_vintage_mode[2] = 0x00;
- < ce147_buf_set_vintage_mode[3] = 0x00;
- ---
- > unsigned char ce147_buf_set_vintage_mode[4] = {
- > 0x10, 0x01, 0x32, 0x00
- > };
- > unsigned int ce147_len_set_vintage_mode = 4;
- >
- > switch (ctrl->value) {
- > case VINTAGE_MODE_OFF:
- > ce147_buf_set_vintage_mode[1] = 0x00;
- > ce147_buf_set_vintage_mode[2] = 0x00;
- > ce147_buf_set_vintage_mode[3] = 0x00;
- 3288,3289c3526,3527
- < case VINTAGE_MODE_NORMAL:
- < ce147_buf_set_vintage_mode[3] = 0x00;
- ---
- > case VINTAGE_MODE_NORMAL:
- > ce147_buf_set_vintage_mode[3] = 0x00;
- 3292,3293c3530,3531
- < case VINTAGE_MODE_WARM:
- < ce147_buf_set_vintage_mode[3] = 0x02;
- ---
- > case VINTAGE_MODE_WARM:
- > ce147_buf_set_vintage_mode[3] = 0x02;
- 3296,3297c3534,3535
- < case VINTAGE_MODE_COOL:
- < ce147_buf_set_vintage_mode[3] = 0x01;
- ---
- > case VINTAGE_MODE_COOL:
- > ce147_buf_set_vintage_mode[3] = 0x01;
- 3299,3301c3537,3539
- <
- < case VINTAGE_MODE_BNW:
- < ce147_buf_set_vintage_mode[3] = 0x03;
- ---
- >
- > case VINTAGE_MODE_BNW:
- > ce147_buf_set_vintage_mode[3] = 0x03;
- 3304,3307c3542,3545
- < default:
- < ce147_buf_set_vintage_mode[1] = 0x00;
- < ce147_buf_set_vintage_mode[2] = 0x00;
- < ce147_buf_set_vintage_mode[3] = 0x00;
- ---
- > default:
- > ce147_buf_set_vintage_mode[1] = 0x00;
- > ce147_buf_set_vintage_mode[2] = 0x00;
- > ce147_buf_set_vintage_mode[3] = 0x00;
- 3311,3313c3549,3554
- < err = ce147_i2c_write_multi(client, CMD_SET_EFFECT_SHOT, ce147_buf_set_vintage_mode, ce147_len_set_vintage_mode);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for vintage_mode\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_SET_EFFECT_SHOT,
- > ce147_buf_set_vintage_mode,
- > ce147_len_set_vintage_mode);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "vintage_mode\n", __func__);
- 3322c3563,3564
- < static int ce147_set_face_beauty(struct v4l2_subdev *sd, int face_beauty)
- ---
- > static int ce147_set_face_beauty(struct v4l2_subdev *sd,
- > struct v4l2_control *ctrl)
- 3330,3335c3572,3576
- < switch(face_beauty)
- < {
- < case BEAUTY_SHOT_ON:
- < ce147_buf_set_face_beauty[1] = 0x01;
- < ce147_buf_set_face_beauty[2] = 0x32;
- < ce147_buf_set_face_beauty[3] = 0x01;
- ---
- > switch (ctrl->value) {
- > case BEAUTY_SHOT_ON:
- > ce147_buf_set_face_beauty[1] = 0x01;
- > ce147_buf_set_face_beauty[2] = 0x32;
- > ce147_buf_set_face_beauty[3] = 0x01;
- 3337,3339c3578,3580
- <
- < case BEAUTY_SHOT_OFF:
- < default:
- ---
- >
- > case BEAUTY_SHOT_OFF:
- > default:
- 3343,3346c3584,3589
- < //Need to set face detection as 'face beauty on' mode.
- < err = ce147_i2c_write_multi(client, CMD_SET_EFFECT_SHOT, ce147_buf_set_face_beauty, ce147_len_set_face_beauty);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for set_face_beauty\n", __func__);
- ---
- > /* Need to set face detection as 'face beauty on' mode. */
- > err = ce147_i2c_write_multi(client, CMD_SET_EFFECT_SHOT,
- > ce147_buf_set_face_beauty, ce147_len_set_face_beauty);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "set_face_beauty\n", __func__);
- 3355,3360d3597
- < #define CAMERA_WHITE_BALANCE_AUTO 0x00
- < #define CAMERA_WHITE_BALANCE_SUNNY 0x00
- < #define CAMERA_WHITE_BALANCE_CLOUDY 0x01
- < #define CAMERA_WHITE_BALANCE_TUNGSTEN 0x02
- < #define CAMERA_WHITE_BALANCE_FLUORESCENT 0x03
- < #define CAMERA_WHITE_BALANCE_DEFAULT CAMERA_WHITE_BALANCE_AUTO
- 3362c3599,3600
- < static int ce147_set_white_balance(struct v4l2_subdev *sd, int wb)
- ---
- > static int ce147_set_white_balance(struct v4l2_subdev *sd,
- > struct v4l2_control *ctrl)
- 3370c3608
- < unsigned int ce147_len_set_wb = 2;
- ---
- > unsigned int ce147_len_set_wb = 2;
- 3372,3376c3610,3612
- <
- < switch(wb)
- < {
- < case WHITE_BALANCE_AUTO:
- < ce147_buf_set_wb_auto[0] = CAMERA_WHITE_BALANCE_AUTO;
- ---
- > switch (ctrl->value) {
- > case WHITE_BALANCE_AUTO:
- > ce147_buf_set_wb_auto[0] = 0x00;
- 3379,3380c3615,3616
- < case WHITE_BALANCE_SUNNY:
- < ce147_buf_set_wb[1] = CAMERA_WHITE_BALANCE_SUNNY;
- ---
- > case WHITE_BALANCE_SUNNY:
- > ce147_buf_set_wb[1] = 0x00;
- 3383,3384c3619,3620
- < case WHITE_BALANCE_CLOUDY:
- < ce147_buf_set_wb[1] = CAMERA_WHITE_BALANCE_CLOUDY;
- ---
- > case WHITE_BALANCE_CLOUDY:
- > ce147_buf_set_wb[1] = 0x01;
- 3387,3388c3623,3624
- < case WHITE_BALANCE_TUNGSTEN:
- < ce147_buf_set_wb[1] = CAMERA_WHITE_BALANCE_TUNGSTEN;
- ---
- > case WHITE_BALANCE_TUNGSTEN:
- > ce147_buf_set_wb[1] = 0x02;
- 3391,3392c3627,3628
- < case WHITE_BALANCE_FLUORESCENT:
- < ce147_buf_set_wb[1] = CAMERA_WHITE_BALANCE_FLUORESCENT;
- ---
- > case WHITE_BALANCE_FLUORESCENT:
- > ce147_buf_set_wb[1] = 0x03;
- 3395,3397c3631,3634
- < default:
- < //pr_warn("%s: white balance mode %d not defined assuming default white balance", __func__, ctrl->value);
- < break;
- ---
- > default:
- > dev_err(&client->dev, "%s: failed: to set_white_balance, "
- > "enum: %d\n", __func__, ctrl->value);
- > return -EINVAL;
- 3400,3404c3637,3642
- < if(wb != WHITE_BALANCE_AUTO)
- < {
- < err = ce147_i2c_write_multi(client, CMD_SET_WB, ce147_buf_set_wb, ce147_len_set_wb);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for white_balance\n", __func__);
- ---
- > if (ctrl->value != WHITE_BALANCE_AUTO) {
- > err = ce147_i2c_write_multi(client, CMD_SET_WB,
- > ce147_buf_set_wb, ce147_len_set_wb);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "white_balance\n", __func__);
- 3408,3410c3646,3650
- < err = ce147_i2c_write_multi(client, CMD_SET_WB_AUTO, ce147_buf_set_wb_auto, ce147_len_set_wb_auto);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for white_balance\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_SET_WB_AUTO,
- > ce147_buf_set_wb_auto, ce147_len_set_wb_auto);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "white_balance\n", __func__);
- 3413c3653,3661
- <
- ---
- > #if 0 /* remove batch */
- > err = ce147_get_batch_reflection_status(sd);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_get_batch_"
- > "reflection_status for white_balance\n",
- > __func__);
- > return -EIO;
- > }
- > #endif
- 3419c3667
- < static int ce147_set_ev(struct v4l2_subdev *sd, int ev)
- ---
- > static int ce147_set_ev(struct v4l2_subdev *sd, struct v4l2_control *ctrl)
- 3426c3674
- < unsigned int ce147_len_set_ev = 2;
- ---
- > unsigned int ce147_len_set_ev = 2;
- 3429,3432c3677,3679
- < switch(ev)
- < {
- < case EV_MINUS_4:
- < ce147_buf_set_ev[1] = 0x02;
- ---
- > switch (ctrl->value) {
- > case EV_MINUS_4:
- > ce147_buf_set_ev[1] = 0x02;
- 3435,3436c3682,3683
- < case EV_MINUS_3:
- < ce147_buf_set_ev[1] = 0x03;
- ---
- > case EV_MINUS_3:
- > ce147_buf_set_ev[1] = 0x03;
- 3439,3440c3686,3687
- < case EV_MINUS_2:
- < ce147_buf_set_ev[1] = 0x04;
- ---
- > case EV_MINUS_2:
- > ce147_buf_set_ev[1] = 0x04;
- 3443,3444c3690,3691
- < case EV_MINUS_1:
- < ce147_buf_set_ev[1] = 0x05;
- ---
- > case EV_MINUS_1:
- > ce147_buf_set_ev[1] = 0x05;
- 3447,3448c3694,3695
- < case EV_DEFAULT:
- < ce147_buf_set_ev[1] = 0x06;
- ---
- > case EV_DEFAULT:
- > ce147_buf_set_ev[1] = 0x06;
- 3451,3452c3698,3699
- < case EV_PLUS_1:
- < ce147_buf_set_ev[1] = 0x07;
- ---
- > case EV_PLUS_1:
- > ce147_buf_set_ev[1] = 0x07;
- 3455,3460c3702,3703
- < case EV_PLUS_2:
- < ce147_buf_set_ev[1] = 0x08;
- < break;
- <
- < case EV_PLUS_3:
- < ce147_buf_set_ev[1] = 0x09;
- ---
- > case EV_PLUS_2:
- > ce147_buf_set_ev[1] = 0x08;
- 3463,3465c3706,3708
- < case EV_PLUS_4:
- < ce147_buf_set_ev[1] = 0x0A;
- < break;
- ---
- > case EV_PLUS_3:
- > ce147_buf_set_ev[1] = 0x09;
- > break;
- 3467,3469c3710,3711
- < default:
- < ce147_buf_set_ev[1] = 0x06;
- < // pr_warn("%s: ev mode %d not defined assuming default ev", __func__, ctrl->value);
- ---
- > case EV_PLUS_4:
- > ce147_buf_set_ev[1] = 0x0A;
- 3470a3713,3717
- >
- > default:
- > dev_err(&client->dev, "%s: failed: to set_ev, enum: %d\n",
- > __func__, ctrl->value);
- > return -EINVAL;
- 3473,3475c3720,3721
- < if(state->hd_preview_on) //This is for HD REC preview
- < {
- < ce147_buf_set_ev[1]+=ce147_ev_offset;
- ---
- > if (state->hd_preview_on) { /* This is for HD REC preview */
- > ce147_buf_set_ev[1] += ce147_ev_offset;
- 3476a3723,3724
- > /* pr_debug("ce147_set_ev: set_ev:, data: 0x%02x\n",
- > ce147_buf_set_ev[1]); */
- 3478,3480c3726,3731
- < err = ce147_i2c_write_multi(client, CMD_SET_WB, ce147_buf_set_ev, ce147_len_set_ev);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for set_ev, HD preview(%d)\n", __func__, state->hd_preview_on);
- ---
- > err = ce147_i2c_write_multi(client, CMD_SET_WB,
- > ce147_buf_set_ev, ce147_len_set_ev);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for set_ev, "
- > "HD preview(%d)\n",
- > __func__, state->hd_preview_on);
- 3482a3734,3741
- > #if 0 /* remove batch */
- > err = ce147_get_batch_reflection_status(sd);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_get_batch_"
- > "reflection_status for set_ev\n", __func__);
- > return -EIO;
- > }
- > #endif
- 3488,3495c3747
- <
- < #define CAMERA_METERING_MATRIX 0x02
- < #define CAMERA_METERING_CENTER 0x00
- < #define CAMERA_METERING_SPOT 0x01
- < #define CAMERA_METERING_HD 0x03
- < #define CAMERA_METERING_DEFAULT CAMERA_METERING_MATRIX
- <
- < static int ce147_set_metering(struct v4l2_subdev *sd, int metering)
- ---
- > static int ce147_set_metering(struct v4l2_subdev *sd, struct v4l2_control *ctrl)
- 3497d3748
- <
- 3504,3509c3755,3772
- <
- <
- < /* when in HD mode we don't care about the other meterings*/
- < if(state->hd_preview_on)
- < {
- < ce147_buf_set_metering[1] = CAMERA_METERING_HD;
- ---
- >
- > switch (ctrl->value) {
- > case METERING_MATRIX:
- > ce147_buf_set_metering[1] = 0x02;
- > break;
- >
- > case METERING_CENTER:
- > ce147_buf_set_metering[1] = 0x00;
- > break;
- >
- > case METERING_SPOT:
- > ce147_buf_set_metering[1] = 0x01;
- > break;
- >
- > default:
- > dev_err(&client->dev, "%s: failed: to set_photometry, "
- > "enum: %d\n", __func__, ctrl->value);
- > return -EINVAL;
- 3511,3532d3773
- < else
- < {
- < switch(metering)
- < {
- < case METERING_MATRIX:
- < ce147_buf_set_metering[1] = CAMERA_METERING_MATRIX;
- < break;
- <
- < case METERING_CENTER:
- < ce147_buf_set_metering[1] = CAMERA_METERING_CENTER;
- < break;
- <
- < case METERING_SPOT:
- < ce147_buf_set_metering[1] = CAMERA_METERING_SPOT;
- < break;
- <
- < default:
- < //default we asume that we want matrix metering
- < ce147_buf_set_metering[1] = CAMERA_METERING_DEFAULT;
- < //pr_warn("%s: metering mode %d not defined assuming default metering", __func__, ctrl->value);
- < break;
- < }
- 3533a3775,3783
- > if (state->hd_preview_on)
- > ce147_buf_set_metering[1] = 0x03;
- >
- > err = ce147_i2c_write_multi(client, CMD_SET_WB,
- > ce147_buf_set_metering, ce147_len_set_metering);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "set_photometry\n", __func__);
- > return -EIO;
- 3535,3538c3785,3790
- <
- < err = ce147_i2c_write_multi(client, CMD_SET_WB, ce147_buf_set_metering, ce147_len_set_metering);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for set_photometry\n", __func__);
- ---
- > #if 0 /* remove batch */
- > err = ce147_get_batch_reflection_status(sd);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_get_batch_"
- > "reflection_status for set_photometry\n",
- > __func__);
- 3541c3793
- <
- ---
- > #endif
- 3547c3799
- < static int ce147_set_iso(struct v4l2_subdev *sd, int iso)
- ---
- > static int ce147_set_iso(struct v4l2_subdev *sd, struct v4l2_control *ctrl)
- 3555,3561c3807
- < ce147_msg(&client->dev, "%s: Enter : iso %d\n", __func__, iso);
- <
- < switch(iso)
- < {
- < case ISO_AUTO:
- < ce147_buf_set_iso[1] = 0x06;
- < break;
- ---
- > ce147_msg(&client->dev, "%s: Enter : iso %d\n", __func__, ctrl->value);
- 3563,3564c3809,3811
- < case ISO_50:
- < ce147_buf_set_iso[1] = 0x07;
- ---
- > switch (ctrl->value) {
- > case ISO_AUTO:
- > ce147_buf_set_iso[1] = 0x06;
- 3567,3568c3814,3815
- < case ISO_100:
- < ce147_buf_set_iso[1] = 0x08;
- ---
- > case ISO_50:
- > ce147_buf_set_iso[1] = 0x07;
- 3571,3572c3818,3819
- < case ISO_200:
- < ce147_buf_set_iso[1] = 0x09;
- ---
- > case ISO_100:
- > ce147_buf_set_iso[1] = 0x08;
- 3575,3576c3822,3823
- < case ISO_400:
- < ce147_buf_set_iso[1] = 0x0A;
- ---
- > case ISO_200:
- > ce147_buf_set_iso[1] = 0x09;
- 3579,3580c3826,3827
- < case ISO_800:
- < ce147_buf_set_iso[1] = 0x0B;
- ---
- > case ISO_400:
- > ce147_buf_set_iso[1] = 0x0A;
- 3583,3584c3830,3831
- < case ISO_1600:
- < ce147_buf_set_iso[1] = 0x0C;
- ---
- > case ISO_800:
- > ce147_buf_set_iso[1] = 0x0B;
- 3587,3589c3834,3835
- < /* This is additional setting for Sports' scene mode */
- < case ISO_SPORTS:
- < ce147_buf_set_iso[1] = 0x12;
- ---
- > case ISO_1600:
- > ce147_buf_set_iso[1] = 0x0C;
- 3591,3594c3837,3840
- <
- < /* This is additional setting for 'Night' scene mode */
- < case ISO_NIGHT:
- < ce147_buf_set_iso[1] = 0x17;
- ---
- >
- > /* This is additional setting for Sports' scene mode */
- > case ISO_SPORTS:
- > ce147_buf_set_iso[1] = 0x12;
- 3597,3599c3843,3845
- < /* This is additional setting for video recording mode */
- < case ISO_MOVIE:
- < ce147_buf_set_iso[1] = 0x02;
- ---
- > /* This is additional setting for 'Night' scene mode */
- > case ISO_NIGHT:
- > ce147_buf_set_iso[1] = 0x17;
- 3602,3604c3848,3850
- < default:
- < ce147_buf_set_iso[1] = 0x06;
- < //pr_warn("%s: ISO mode %d not defined assuming default ISO", __func__, ctrl->value);
- ---
- > /* This is additional setting for video recording mode */
- > case ISO_MOVIE:
- > ce147_buf_set_iso[1] = 0x02;
- 3605a3852,3856
- >
- > default:
- > dev_err(&client->dev, "%s: failed: to set_iso, enum: %d\n",
- > __func__, ctrl->value);
- > return -EINVAL;
- 3608,3610c3859,3863
- < err = ce147_i2c_write_multi(client, CMD_SET_WB, ce147_buf_set_iso, ce147_len_set_iso);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for set_iso\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_SET_WB,
- > ce147_buf_set_iso, ce147_len_set_iso);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for set_iso\n",
- > __func__);
- 3613,3614c3866,3875
- <
- < ce147_msg(&client->dev, "%s: done, iso: 0x%02x\n", __func__, ce147_buf_set_iso[1]);
- ---
- > #if 0 /* remove batch */
- > err = ce147_get_batch_reflection_status(sd);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_get_batch_"
- > "reflection_status for set_iso\n", __func__);
- > return -EIO;
- > }
- > #endif
- > ce147_msg(&client->dev, "%s: done, iso: 0x%02x\n",
- > __func__, ce147_buf_set_iso[1]);
- 3619c3880
- < static int ce147_set_gamma(struct v4l2_subdev *sd, int gamma)
- ---
- > static int ce147_set_gamma(struct v4l2_subdev *sd, struct v4l2_control *ctrl)
- 3629c3890
- < unsigned int ce147_len_set_uv = 2;
- ---
- > unsigned int ce147_len_set_uv = 2;
- 3631,3634c3892,3893
- < if(gamma == GAMMA_ON)
- < {
- < if(state->hd_preview_on)
- < {
- ---
- > if (ctrl->value == GAMMA_ON) {
- > if (state->hd_preview_on) {
- 3639,3643c3898,3903
- <
- < err = ce147_i2c_write_multi(client, CMD_SET_EFFECT, ce147_buf_set_gamma, ce147_len_set_gamma);
- < if(err < 0)
- < {
- < dev_err(&client->dev, "%s: failed: i2c_write for ce147_set_gamma\n", __func__);
- ---
- >
- > err = ce147_i2c_write_multi(client, CMD_SET_EFFECT,
- > ce147_buf_set_gamma, ce147_len_set_gamma);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "ce147_set_gamma\n", __func__);
- 3647,3650c3907,3911
- < err = ce147_i2c_write_multi(client, CMD_SET_EFFECT, ce147_buf_set_uv, ce147_len_set_uv);
- < if(err < 0)
- < {
- < dev_err(&client->dev, "%s: failed: i2c_write for ce147_set_gamma\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_SET_EFFECT,
- > ce147_buf_set_uv, ce147_len_set_uv);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "ce147_set_gamma\n", __func__);
- 3653,3654c3914,3917
- <
- < ce147_msg(&client->dev, "%s: done, gamma: 0x%02x, uv: 0x%02x, hd: %d\n", __func__, ce147_buf_set_gamma[1], ce147_buf_set_uv[1], state->hd_preview_on);
- ---
- >
- > ce147_msg(&client->dev, "%s: done, gamma: 0x%02x, uv: 0x%02x, hd: %d\n",
- > __func__, ce147_buf_set_gamma[1], ce147_buf_set_uv[1],
- > state->hd_preview_on);
- 3659c3922
- < static int ce147_set_slow_ae(struct v4l2_subdev *sd, int ae)
- ---
- > static int ce147_set_slow_ae(struct v4l2_subdev *sd, struct v4l2_control *ctrl)
- 3668,3671c3931,3932
- < if(ae == SLOW_AE_ON)
- < {
- < if(state->hd_preview_on)
- < {
- ---
- > if (ctrl->value == SLOW_AE_ON)
- > if (state->hd_preview_on)
- 3673,3674d3933
- < }
- < }
- 3676,3679c3935,3939
- < err = ce147_i2c_write_multi(client, CMD_SET_WB, ce147_buf_set_slow_ae, ce147_len_set_slow_ae);
- < if(err < 0)
- < {
- < dev_err(&client->dev, "%s: failed: i2c_write for ce147_set_slow_ae\n", __func__);
- ---
- > err = ce147_i2c_write_multi(client, CMD_SET_WB,
- > ce147_buf_set_slow_ae, ce147_len_set_slow_ae);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "ce147_set_slow_ae\n", __func__);
- 3682,3683c3942,3945
- <
- < ce147_msg(&client->dev, "%s: done, slow_ae: 0x%02x, hd: %d\n", __func__, ce147_buf_set_slow_ae[1], state->hd_preview_on);
- ---
- >
- > ce147_msg(&client->dev, "%s: done, slow_ae: 0x%02x, hd: %d\n",
- > __func__, ce147_buf_set_slow_ae[1],
- > state->hd_preview_on);
- 3687,3688c3949,3951
- <
- < static int ce147_set_face_lock(struct v4l2_subdev *sd, int face_lock)
- ---
- >
- > static int ce147_set_face_lock(struct v4l2_subdev *sd,
- > struct v4l2_control *ctrl)
- 3695,3699c3958,3961
- <
- < switch(face_lock)
- < {
- < case FACE_LOCK_ON:
- < ce147_buf_set_fd_lock[0] = 0x01;
- ---
- >
- > switch (ctrl->value) {
- > case FACE_LOCK_ON:
- > ce147_buf_set_fd_lock[0] = 0x01;
- 3702,3703c3964,3965
- < case FIRST_FACE_TRACKING:
- < ce147_buf_set_fd_lock[0] = 0x02;
- ---
- > case FIRST_FACE_TRACKING:
- > ce147_buf_set_fd_lock[0] = 0x02;
- 3706,3708c3968,3970
- < case FACE_LOCK_OFF:
- < default:
- < ce147_buf_set_fd_lock[0] = 0x00;
- ---
- > case FACE_LOCK_OFF:
- > default:
- > ce147_buf_set_fd_lock[0] = 0x00;
- 3711,3714c3973,3978
- <
- < err = ce147_i2c_write_multi(client, CMD_SET_FACE_LOCK, ce147_buf_set_fd_lock, ce147_len_set_fd_lock);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for face_lock\n", __func__);
- ---
- >
- > err = ce147_i2c_write_multi(client, CMD_SET_FACE_LOCK,
- > ce147_buf_set_fd_lock, ce147_len_set_fd_lock);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "face_lock\n", __func__);
- 3723c3987,3988
- < static int ce147_set_auto_focus(struct v4l2_subdev *sd, int auto_focus)
- ---
- > static int ce147_start_auto_focus(struct v4l2_subdev *sd,
- > struct v4l2_control *ctrl)
- 3727d3991
- <
- 3729c3993,3994
- < unsigned int ce147_len_set_af = 1;
- ---
- > unsigned int ce147_len_set_af = 1;
- > struct ce147_state *state = to_state(sd);
- 3731,3747c3996,4007
- < if (auto_focus)
- < {
- < //start af
- < err = ce147_i2c_write_multi(client, CMD_START_AUTO_FOCUS_SEARCH, ce147_buf_set_af, ce147_len_set_af);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for auto_focus\n", __func__);
- < return -EIO;
- < }
- < }
- < else
- < {
- < //stop af
- < err = ce147_i2c_write_multi(client, CMD_STOP_LENS_MOVEMENT, ce147_buf_set_af, ce147_len_set_af);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_write for auto_focus\n", __func__);
- < return -EIO;
- < }
- ---
- > ce147_msg(&client->dev, "%s\n", __func__);
- >
- > /* start af */
- > err = ce147_i2c_write_multi(client, CMD_START_AUTO_FOCUS_SEARCH,
- > ce147_buf_set_af, ce147_len_set_af);
- > state->af_status = AF_START;
- > INIT_COMPLETION(state->af_complete);
- >
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_write for "
- > "auto_focus\n", __func__);
- > return -EIO;
- 3751c4011
- < }
- ---
- > }
- 3753,3756c4013,4014
- < static int ce147_get_auto_focus_status(struct v4l2_subdev *sd, struct v4l2_control *ctrl)
- < {
- < int err;
- < unsigned char ce147_buf_get_af_status[1] = { 0x00 };
- ---
- > static int ce147_stop_auto_focus(struct v4l2_subdev *sd)
- > {
- 3757a4016,4034
- > struct ce147_state *state = to_state(sd);
- > int err;
- > unsigned char ce147_buf_set_af = 0x00;
- >
- > ce147_msg(&client->dev, "%s\n", __func__);
- > /* stop af */
- > err = ce147_i2c_write_multi(client, CMD_STOP_LENS_MOVEMENT,
- > &ce147_buf_set_af, 1);
- > if (err < 0)
- > dev_err(&client->dev, "%s: failed: i2c_write for auto_focus\n",
- > __func__);
- >
- > if (state->af_status != AF_START) {
- > /* we weren't in the middle auto focus operation, we're done */
- > dev_dbg(&client->dev,
- > "%s: auto focus not in progress, done\n", __func__);
- >
- > return 0;
- > }
- 3759c4036,4048
- < #if defined(CONFIG_ARIES_NTT) // Modify NTTS1
- ---
- > state->af_status = AF_CANCEL;
- >
- > mutex_unlock(&state->ctrl_lock);
- > wait_for_completion(&state->af_complete);
- > mutex_lock(&state->ctrl_lock);
- >
- > return err;
- > }
- >
- > static int ce147_get_auto_focus_status(struct v4l2_subdev *sd,
- > struct v4l2_control *ctrl)
- > {
- > struct i2c_client *client = v4l2_get_subdevdata(sd);
- 3761c4050,4092
- < #endif
- ---
- > unsigned char ce147_buf_get_af_status[1] = { 0x00 };
- > int count;
- > int err;
- >
- > ce147_msg(&client->dev, "%s\n", __func__);
- >
- > if (state->af_status == AF_NONE) {
- > dev_err(&client->dev,
- > "%s: auto focus never started, returning 0x2\n",
- > __func__);
- > pr_debug("%s: AUTO_FOCUS_CANCELLED\n", __func__);
- > ctrl->value = AUTO_FOCUS_CANCELLED;
- > return 0;
- > }
- >
- > /* status check whether AF searching is successful or not */
- > for (count = 0; count < 600; count++) {
- > mutex_unlock(&state->ctrl_lock);
- > msleep(10);
- > mutex_lock(&state->ctrl_lock);
- >
- > if (state->af_status == AF_CANCEL) {
- > dev_err(&client->dev,
- > "%s: AF is cancelled while doing\n", __func__);
- > ctrl->value = AUTO_FOCUS_CANCELLED;
- > goto out;
- > }
- >
- > ce147_buf_get_af_status[0] = 0xFF;
- > err = ce147_i2c_read_multi(client,
- > CMD_CHECK_AUTO_FOCUS_SEARCH, NULL, 0,
- > ce147_buf_get_af_status, 1);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: i2c_read "
- > "for auto_focus\n", __func__);
- > return -EIO;
- > }
- > if (ce147_buf_get_af_status[0] == 0x05)
- > continue;
- > if (ce147_buf_get_af_status[0] == 0x00
- > || ce147_buf_get_af_status[0] == 0x02
- > || ce147_buf_get_af_status[0] == 0x04)
- > break;
- 3763,3779c4094,4103
- < ce147_buf_get_af_status[0] = 0xFF;
- < err = ce147_i2c_read_multi(client, CMD_CHECK_AUTO_FOCUS_SEARCH, NULL, 0, ce147_buf_get_af_status, 1);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: i2c_read for auto_focus_status\n", __func__);
- < return -EIO;
- < }
- < ctrl->value = ce147_buf_get_af_status[0];
- <
- < #if defined(CONFIG_ARIES_NTT) // Modify NTTS1
- < if((ctrl->value == 2)&& !state->disable_aeawb_lock)
- < {
- < err = ce147_set_awb_lock(sd, 1);
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_set_awb_lock, err %d\n", __func__, err);
- < return -EIO;
- < }
- < }
- ---
- > #if defined(CONFIG_ARIES_NTT) /* Modify NTTS1 */
- > if ((ctrl->value == 2) && !state->disable_aeawb_lock) {
- > err = ce147_set_awb_lock(sd, 1);
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: "
- > "ce147_set_awb_lock, err %d\n",
- > __func__, err);
- > return -EIO;
- > }
- > }
- 3780a4105,4120
- > }
- >
- > ctrl->value = FOCUS_MODE_AUTO_DEFAULT;
- >
- > if (ce147_buf_get_af_status[0] == 0x02) {
- > ctrl->value = AUTO_FOCUS_DONE;
- > } else {
- > ce147_set_focus_mode(sd, ctrl);
- > ctrl->value = AUTO_FOCUS_FAILED;
- > goto out;
- > }
- > ce147_msg(&client->dev, "%s: done\n", __func__);
- >
- > out:
- > state->af_status = AF_NONE;
- > complete(&state->af_complete);
- 3782c4122
- < //printk("ce147_get_auto_focus_status is called");
- ---
- > /* pr_debug("ce147_get_auto_focus_status is called"); */
- 3795,3797c4135,4137
- < state->framesize_index = CE147_PREVIEW_VGA;
- < state->fps = 30; /* Default value */
- <
- ---
- > /* state->framesize_index = CE147_PREVIEW_VGA; */
- > /*state->fps = 30;*/ /* Default value */
- >
- 3815,3818c4155,4159
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_power_en(on)\n", __func__);
- < return -EIO;
- < }
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_power_en(on)\n",
- > __func__);
- > return -EIO;
- > }
- 3821,3822c4162,4164
- < if(err < 0){
- < dev_err(&client->dev, "%s: Failed: Camera Initialization\n", __func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: Failed: Camera Initialization\n",
- > __func__);
- 3825,3827c4167,4169
- <
- < //printk("ce147_get_fw_data: ce147_load_fw is ok\n");
- <
- ---
- >
- > /* pr_debug("ce147_get_fw_data: ce147_load_fw is ok\n"); */
- >
- 3830c4172
- < //printk("ce147_get_fw_data: ce147_init_parameters is ok\n");
- ---
- > /* pr_debug("ce147_get_fw_data: ce147_init_parameters is ok\n"); */
- 3833,3834c4175,4177
- < if(err < 0){
- < dev_err(&client->dev, "%s: Failed: Reading firmware version\n",__func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: Failed: Reading firmware version\n",
- > __func__);
- 3838c4181
- < //printk("ce147_get_fw_data: ce147_get_fw_version is ok\n");
- ---
- > /* pr_debug("ce147_get_fw_data: ce147_get_fw_version is ok\n"); */
- 3841,3842c4184,4186
- < if(err < 0){
- < dev_err(&client->dev, "%s: Failed: Reading dateinfo\n",__func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: Failed: Reading dateinfo\n",
- > __func__);
- 3846c4190
- < //printk("ce147_get_fw_data: ce147_get_dateinfo is ok\n");
- ---
- > /* pr_debug("ce147_get_fw_data: ce147_get_dateinfo is ok\n"); */
- 3849,3850c4193,4195
- < if(err < 0){
- < dev_err(&client->dev, "%s: Failed: Reading sensor info\n",__func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: Failed: Reading sensor info\n",
- > __func__);
- 3854c4199
- < //printk("ce147_get_fw_data: ce147_get_sensor_version is ok\n");
- ---
- > /* pr_debug("ce147_get_fw_data: ce147_get_sensor_version is ok\n"); */
- 3857,3858c4202,4204
- < if(err < 0){
- < dev_err(&client->dev, "%s: Failed: Reading maker info\n",__func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: Failed: Reading maker info\n",
- > __func__);
- 3863,3864c4209,4211
- < if(err < 0){
- < dev_err(&client->dev, "%s: Failed: Reading af info\n",__func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: Failed: Reading af info\n",
- > __func__);
- 3869,3870c4216,4218
- < if(err < 0){
- < dev_err(&client->dev, "%s: Failed: Reading camera gamma info\n",__func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: Failed: Reading camera gamma info\n",
- > __func__);
- 3875,3878c4223,4227
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_power_en(off)\n", __func__);
- < return -EIO;
- < }
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_power_en(off)\n",
- > __func__);
- > return -EIO;
- > }
- 3880c4229
- < //printk("ce147_get_fw_data: ce147_power_en is ok\n");
- ---
- > /* pr_debug("ce147_get_fw_data: ce147_power_en is ok\n"); */
- 3882,3885c4231,4239
- < ce147_info(&client->dev, "FW Version: %d.%d\n", state->fw.major, state->fw.minor);
- < ce147_info(&client->dev, "PRM Version: %d.%d\n", state->prm.major, state->prm.minor);
- < ce147_info(&client->dev, "Date(y.m.d): %d.%d.%d\n", state->dateinfo.year, state->dateinfo.month, state->dateinfo.date);
- < ce147_info(&client->dev, "Sensor version: %d\n", state->sensor_version);
- ---
- > ce147_info(&client->dev, "FW Version: %d.%d\n",
- > state->fw.major, state->fw.minor);
- > ce147_info(&client->dev, "PRM Version: %d.%d\n",
- > state->prm.major, state->prm.minor);
- > ce147_info(&client->dev, "Date(y.m.d): %d.%d.%d\n",
- > state->dateinfo.year, state->dateinfo.month,
- > state->dateinfo.date);
- > ce147_info(&client->dev, "Sensor version: %d\n",
- > state->sensor_version);
- 3890c4244
- < //s1_camera [ Defense process by ESD input ] _[
- ---
- > /* s1_camera [ Defense process by ESD input ] _[ */
- 3896c4250
- < dev_err(&client->dev, "%s: Enter \n", __func__);
- ---
- > dev_err(&client->dev, "%s: Enter\n", __func__);
- 3899,3900c4253,4255
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_power_en(off)\n", __func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_power_en(off)\n",
- > __func__);
- 3902c4257
- < }
- ---
- > }
- 3907,3908c4262,4264
- < if(err < 0){
- < dev_err(&client->dev, "%s: failed: ce147_power_en(off)\n", __func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: failed: ce147_power_en(off)\n",
- > __func__);
- 3910c4266
- < }
- ---
- > }
- 3912,3914c4268,4271
- < err = ce147_load_fw(sd); //ce147_init(sd);
- < if(err < 0){
- < dev_err(&client->dev, "%s: Failed: Camera Initialization\n", __func__);
- ---
- > err = ce147_load_fw(sd); /* ce147_init(sd); */
- > if (err < 0) {
- > dev_err(&client->dev, "%s: Failed: Camera Initialization\n",
- > __func__);
- 3920c4277
- < // _]
- ---
- > /* _] */
- 3934c4291
- < .type = V4L2_CTRL_TYPE_MENU,
- ---
- > .type = V4L2_CTRL_TYPE_MENU,
- 3938c4295
- < .step = 1,
- ---
- > .step = 1,
- 3974c4331,4332
- < memcpy(qc, &ce147_controls[i], sizeof(struct v4l2_queryctrl));
- ---
- > memcpy(qc, &ce147_controls[i],
- > sizeof(struct v4l2_queryctrl));
- 3989c4347
- < return v4l2_ctrl_query_menu(qm, &qctrl, ce147_ctrl_get_menu(qm->id));
- ---
- > return v4l2_ctrl_query_menu(qm, &qctrl, ce147_ctrl_get_menu(qm->id));
- 3994c4352
- < * Configure expected MCLK from host and return EINVAL if not supported clock
- ---
- > * Configure expected MCLK from host and return EINVAL if not supportedclock
- 3996,3997c4354,4355
- < * freq : in Hz
- < * flag : not supported for now
- ---
- > * freq : in Hz
- > * flag : not supported for now
- 4014,4015c4372,4374
- < static int ce147_set_framesize_index(struct v4l2_subdev *sd, unsigned int index);
- < /* Information received:
- ---
- > static int ce147_set_framesize_index(struct v4l2_subdev *sd,
- > unsigned int index);
- > /* Information received:
- 4017c4376
- < * pixel_format -> to be handled in the upper layer
- ---
- > * pixel_format -> to be handled in the upper layer
- 4027,4028c4386,4389
- < if(fmt->fmt.pix.pixelformat == V4L2_PIX_FMT_JPEG && fmt->fmt.pix.colorspace != V4L2_COLORSPACE_JPEG){
- < dev_err(&client->dev, "%s: mismatch in pixelformat and colorspace\n", __func__);
- ---
- > if (fmt->fmt.pix.pixelformat == V4L2_PIX_FMT_JPEG
- > && fmt->fmt.pix.colorspace != V4L2_COLORSPACE_JPEG) {
- > dev_err(&client->dev, "%s: mismatch in pixelformat and "
- > "colorspace\n", __func__);
- 4032,4041c4393,4394
- < if(fmt->fmt.pix.width == 800 && fmt->fmt.pix.height == 448) {
- < state->pix.width = 1280;
- < state->pix.height = 720;
- < }
- <
- < else {
- < state->pix.width = fmt->fmt.pix.width;
- < state->pix.height = fmt->fmt.pix.height;
- < }
- <
- ---
- > state->pix.width = fmt->fmt.pix.width;
- > state->pix.height = fmt->fmt.pix.height;
- 4044c4397
- < if(fmt->fmt.pix.colorspace == V4L2_COLORSPACE_JPEG)
- ---
- > if (fmt->fmt.pix.colorspace == V4L2_COLORSPACE_JPEG)
- 4047c4400
- < state->oprmode = CE147_OPRMODE_VIDEO;
- ---
- > state->oprmode = CE147_OPRMODE_VIDEO;
- 4048a4402
- > framesize_index = ce147_get_framesize_index(sd);
- 4050c4404,4405
- < framesize_index = ce147_get_framesize_index(sd);
- ---
- > ce147_msg(&client->dev, "%s:framesize_index = %d\n",
- > __func__, framesize_index);
- 4052,4053d4406
- < ce147_msg(&client->dev, "%s:framesize_index = %d\n", __func__, framesize_index);
- <
- 4055,4056c4408,4410
- < if(err < 0){
- < dev_err(&client->dev, "%s: set_framesize_index failed\n", __func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: set_framesize_index failed\n",
- > __func__);
- 4060c4414
- < if(state->pix.pixelformat == V4L2_PIX_FMT_JPEG){
- ---
- > if (state->pix.pixelformat == V4L2_PIX_FMT_JPEG)
- 4062c4416
- < } else {
- ---
- > else
- 4064d4417
- < }
- 4066,4069c4419,4420
- < if(state->oprmode == CE147_OPRMODE_VIDEO)
- < {
- < if(framesize_index == CE147_PREVIEW_720P)
- < {
- ---
- > if (state->oprmode == CE147_OPRMODE_VIDEO) {
- > if (framesize_index == CE147_PREVIEW_720P)
- 4071d4421
- < }
- 4073d4422
- < {
- 4075d4423
- < }
- 4076a4425
- >
- 4080c4429
- < static int ce147_enum_framesizes(struct v4l2_subdev *sd, \
- ---
- > static int ce147_enum_framesizes(struct v4l2_subdev *sd,
- 4084,4085c4433,4435
- < int num_entries = sizeof(ce147_framesize_list)/sizeof(struct ce147_enum_framesize);
- < struct ce147_enum_framesize *elem;
- ---
- > int num_entries = sizeof(ce147_framesize_list)
- > / sizeof(struct ce147_enum_framesize);
- > struct ce147_enum_framesize *elem;
- 4089,4093c4439,4443
- < /* The camera interface should read this value, this is the resolution
- < * at which the sensor would provide framedata to the camera i/f
- < *
- < * In case of image capture, this returns the default camera resolution (VGA)
- < */
- ---
- > /* The camera interface should read this value, this is the resolution
- > * at which the sensor would provide framedata to the camera i/f
- > * In case of image capture,
- > * this returns the default camera resolution (VGA)
- > */
- 4096,4100c4446,4449
- < if(state->pix.pixelformat == V4L2_PIX_FMT_JPEG){
- < index = CE147_PREVIEW_VGA;
- < } else {
- < index = state->framesize_index;
- < }
- ---
- > if (state->pix.pixelformat == V4L2_PIX_FMT_JPEG)
- > index = CE147_PREVIEW_VGA;
- > else
- > index = state->framesize_index;
- 4102c4451
- < for(i = 0; i < num_entries; i++){
- ---
- > for (i = 0; i < num_entries; i++) {
- 4104,4106c4453,4457
- < if(elem->index == index){
- < fsize->discrete.width = ce147_framesize_list[index].width;
- < fsize->discrete.height = ce147_framesize_list[index].height;
- ---
- > if (elem->index == index) {
- > fsize->discrete.width =
- > ce147_framesize_list[index].width;
- > fsize->discrete.height =
- > ce147_framesize_list[index].height;
- 4114c4465
- < static int ce147_enum_frameintervals(struct v4l2_subdev *sd,
- ---
- > static int ce147_enum_frameintervals(struct v4l2_subdev *sd,
- 4126c4477
- < num_entries = sizeof(capture_fmts)/sizeof(struct v4l2_fmtdesc);
- ---
- > num_entries = sizeof(capture_fmts) / sizeof(struct v4l2_fmtdesc);
- 4128c4479
- < if(fmtdesc->index >= num_entries)
- ---
- > if (fmtdesc->index >= num_entries)
- 4131,4132c4482,4483
- < memset(fmtdesc, 0, sizeof(*fmtdesc));
- < memcpy(fmtdesc, &capture_fmts[fmtdesc->index], sizeof(*fmtdesc));
- ---
- > memset(fmtdesc, 0, sizeof(*fmtdesc));
- > memcpy(fmtdesc, &capture_fmts[fmtdesc->index], sizeof(*fmtdesc));
- 4142c4493
- < num_entries = sizeof(capture_fmts)/sizeof(struct v4l2_fmtdesc);
- ---
- > num_entries = sizeof(capture_fmts) / sizeof(struct v4l2_fmtdesc);
- 4144,4145c4495,4496
- < for(i = 0; i < num_entries; i++){
- < if(capture_fmts[i].pixelformat == fmt->fmt.pix.pixelformat)
- ---
- > for (i = 0; i < num_entries; i++) {
- > if (capture_fmts[i].pixelformat == fmt->fmt.pix.pixelformat)
- 4147c4498
- < }
- ---
- > }
- 4173,4175c4524,4528
- < if(param->parm.capture.timeperframe.numerator != state->strm.parm.capture.timeperframe.numerator ||
- < param->parm.capture.timeperframe.denominator != state->strm.parm.capture.timeperframe.denominator){
- <
- ---
- > if (param->parm.capture.timeperframe.numerator
- > != state->strm.parm.capture.timeperframe.numerator
- > || param->parm.capture.timeperframe.denominator
- > != state->strm.parm.capture.timeperframe.denominator) {
- >
- 4179,4181c4532,4537
- < if(param->parm.capture.timeperframe.numerator && param->parm.capture.timeperframe.denominator)
- < fps = (int)(param->parm.capture.timeperframe.denominator/param->parm.capture.timeperframe.numerator);
- < else
- ---
- > if (param->parm.capture.timeperframe.numerator
- > && param->parm.capture.timeperframe.denominator)
- > fps = (int)(param->parm.capture.timeperframe.denominator
- > / param->parm.capture
- > .timeperframe.numerator);
- > else
- 4184,4185c4540,4543
- < if(fps <= 0 || fps > fps_max){
- < dev_err(&client->dev, "%s: Framerate %d not supported, setting it to %d fps.\n",__func__, fps, fps_max);
- ---
- > if (fps <= 0 || fps > fps_max) {
- > dev_err(&client->dev, "%s: Framerate %d not supported, "
- > "setting it to %d fps.\n",
- > __func__, fps, fps_max);
- 4189,4191c4547,4549
- < param->parm.capture.timeperframe.numerator = 1;
- < param->parm.capture.timeperframe.denominator = fps;
- <
- ---
- > state->strm.parm.capture.timeperframe.numerator = 1;
- > state->strm.parm.capture.timeperframe.denominator = fps;
- >
- 4195,4197c4553,4556
- < /* Don't set the fps value, just update it in the state
- < * We will set the resolution and fps in the start operation (preview/capture) call */
- <
- ---
- > /* Don't set the fps value, just update it in the state
- > * We will set the resolution and fps in the start operation
- > * (preview/capture) call */
- >
- 4201c4560
- < /* This function is called from the g_ctrl api
- ---
- > /* This function is called from the g_ctrl api
- 4203c4562
- < * This function should be called only after the s_fmt call,
- ---
- > * This function should be called only after the s_fmt call,
- 4206,4207c4565,4566
- < * It checks a list of available frame sizes and returns the
- < * most appropriate index of the frame size.
- ---
- > * It checks a list of available frame sizes and returns the
- > * most appropriate index of the frame size.
- 4211c4570
- < * done to add additional layer of error checking.
- ---
- > * done to add additional layer of error checking.
- 4214c4573
- < * Hene the first entry (searching from the beginning) where both the
- ---
- > * Hene the first entry (searching from the beginning) where both the
- 4223c4582
- < int i = 0;
- ---
- > int i = 0;
- 4228c4587,4588
- < ce147_msg(&client->dev, "%s: Requested Res: %dx%d\n", __func__, state->pix.width, state->pix.height);
- ---
- > ce147_msg(&client->dev, "%s: Requested Res: %dx%d\n",
- > __func__, state->pix.width, state->pix.height);
- 4231,4233c4591,4593
- < for(i = 0; i < (sizeof(ce147_framesize_list)/sizeof(struct ce147_enum_framesize)); i++)
- < {
- < frmsize = &ce147_framesize_list[i];
- ---
- > for (i = 0; i < (sizeof(ce147_framesize_list)
- > / sizeof(struct ce147_enum_framesize)); i++) {
- > frmsize = &ce147_framesize_list[i];
- 4235c4595
- < if(frmsize->mode != state->oprmode)
- ---
- > if (frmsize->mode != state->oprmode)
- 4238,4245c4598,4612
- < if(state->oprmode == CE147_OPRMODE_IMAGE)
- < {
- < /* In case of image capture mode, if the given image resolution is not supported,
- < * return the next higher image resolution. */
- < //printk("frmsize->width(%d) state->pix.width(%d) frmsize->height(%d) state->pix.height(%d)\n", frmsize->width, state->pix.width, frmsize->height, state->pix.height);
- < if(frmsize->width == state->pix.width && frmsize->height == state->pix.height)
- < {
- < //printk("frmsize->index(%d) \n", frmsize->index);
- ---
- > if (state->oprmode == CE147_OPRMODE_IMAGE) {
- > /* In case of image capture mode,
- > * if the given image resolution is not supported,
- > * return the next higher image resolution. */
- > /* pr_debug("frmsize->width(%d) state->pix.width(%d) "
- > "frmsize->height(%d) "
- > "state->pix.height(%d)\n",
- > frmsize->width,
- > state->pix.width,
- > frmsize->height,
- > state->pix.height); */
- > if (frmsize->width == state->pix.width
- > && frmsize->height == state->pix.height) {
- > /* pr_debug("frmsize->index(%d)\n",
- > frmsize->index); */
- 4248,4257c4615,4630
- < }
- < else
- < {
- < /* In case of video mode, if the given video resolution is not matching, use
- < * the default rate (currently CE147_PREVIEW_VGA).
- < */
- < //printk("frmsize->width(%d) state->pix.width(%d) frmsize->height(%d) state->pix.height(%d)\n", frmsize->width, state->pix.width, frmsize->height, state->pix.height);
- < if(frmsize->width == state->pix.width && frmsize->height == state->pix.height)
- < {
- < //printk("frmsize->index(%d) \n", frmsize->index);
- ---
- > } else {
- > /* In case of video mode,
- > * if the given video resolution is not matching, use
- > * the default rate (currently CE147_PREVIEW_VGA).
- > */
- > /* pr_debug("frmsize->width(%d) state->pix.width(%d) "
- > "frmsize->height(%d) "
- > "state->pix.height(%d)\n",
- > frmsize->width,
- > state->pix.width,
- > frmsize->height,
- > state->pix.height); */
- > if (frmsize->width == state->pix.width
- > && frmsize->height == state->pix.height) {
- > /* pr_debug("frmsize->index(%d)\n",
- > frmsize->index); */
- 4258a4632
- > }
- 4260,4261c4634
- < }
- < }
- ---
- > }
- 4263c4636,4637
- < return (state->oprmode == CE147_OPRMODE_IMAGE) ? CE147_CAPTURE_3MP : CE147_PREVIEW_VGA;
- ---
- > return (state->oprmode == CE147_OPRMODE_IMAGE)
- > ? CE147_CAPTURE_3MP : CE147_PREVIEW_VGA;
- 4267c4641
- < /* This function is called from the s_ctrl api
- ---
- > /* This function is called from the s_ctrl api
- 4278,4281c4652,4656
- < for(i = 0; i < (sizeof(ce147_framesize_list)/sizeof(struct ce147_enum_framesize)); i++)
- < {
- < if(ce147_framesize_list[i].index == index && ce147_framesize_list[i].mode == state->oprmode){
- < state->framesize_index = ce147_framesize_list[i].index;
- ---
- > for (i = 0; i < (sizeof(ce147_framesize_list)
- > / sizeof(struct ce147_enum_framesize)); i++) {
- > if (ce147_framesize_list[i].index == index
- > && ce147_framesize_list[i].mode == state->oprmode) {
- > state->framesize_index = ce147_framesize_list[i].index;
- 4284c4659,4661
- < ce147_info(&client->dev, "%s: Camera Res: %dx%d\n", __func__, state->pix.width, state->pix.height);
- ---
- > ce147_info(&client->dev, "%s: Camera Res: %dx%d\n",
- > __func__, state->pix.width,
- > state->pix.height);
- 4286,4288c4663,4665
- < }
- < }
- <
- ---
- > }
- > }
- >
- 4298c4675,4676
- < int offset = 134217728;
- ---
- >
- > mutex_lock(&state->ctrl_lock);
- 4303d4680
- < LOGV("%s: V4L2_CID_EXPOSURE %d \n", __func__,ctrl->value);
- 4309d4685
- < LOGV("%s: V4L2_CID_AUTO_WHITE_BALANCE %d \n", __func__,ctrl->value);
- 4315d4690
- < LOGV("%s: V4L2_CID_WHITE_BALANCE_PRESET %d \n", __func__,ctrl->value);
- 4321d4695
- < LOGV("%s: V4L2_CID_COLORFX %d \n", __func__,ctrl->value);
- 4327d4700
- < LOGV("%s: V4L2_CID_CONTRAST %d \n", __func__,ctrl->value);
- 4333d4705
- < LOGV("%s: V4L2_CID_SATURATION %d \n", __func__,ctrl->value);
- 4338d4709
- < LOGV("%s: V4L2_CID_SHARPNESS %d \n", __func__,ctrl->value);
- 4345d4715
- < LOGV("%s: V4L2_CID_CAM_JPEG_MAIN_SIZE %d \n", __func__,ctrl->value);
- 4348c4718
- <
- ---
- >
- 4351d4720
- < LOGV("%s: V4L2_CID_CAM_JPEG_MAIN_OFFSET %d \n", __func__,ctrl->value);
- 4357d4725
- < LOGV("%s: V4L2_CID_CAM_JPEG_THUMB_SIZE %d \n", __func__,ctrl->value);
- 4360c4728
- <
- ---
- >
- 4363d4730
- < LOGV("%s: V4L2_CID_CAM_JPEG_THUMB_OFFSET %d \n", __func__,ctrl->value);
- 4367c4734
- < case V4L2_CID_CAM_JPEG_POSTVIEW_OFFSET:
- ---
- > case V4L2_CID_CAM_JPEG_POSTVIEW_OFFSET:
- 4369d4735
- < LOGV("%s: V4L2_CID_CAM_JPEG_POSTVIEW_OFFSET %d \n", __func__,ctrl->value);
- 4371,4373c4737,4739
- < break;
- <
- < case V4L2_CID_CAM_JPEG_MEMSIZE:
- ---
- > break;
- >
- > case V4L2_CID_CAM_JPEG_MEMSIZE:
- 4375d4740
- < LOGV("%s: V4L2_CID_CAM_JPEG_MEMSIZE %d \n", __func__,ctrl->value);
- 4379c4744
- < //need to be modified
- ---
- > /* need to be modified */
- 4382d4746
- < LOGV("%s: V4L2_CID_CAM_JPEG_QUALITY %d \n", __func__,ctrl->value);
- 4388d4751
- < LOGV("%s: V4L2_CID_CAMERA_OBJ_TRACKING_STATUS %d \n", __func__,ctrl->value);
- 4394d4756
- < LOGV("%s: V4L2_CID_CAMERA_SMART_AUTO_STATUS %d \n", __func__,ctrl->value);
- 4400d4761
- < LOGV("%s: V4L2_CID_CAMERA_AUTO_FOCUS_RESULT %d \n", __func__,ctrl->value);
- 4405d4765
- < LOGV("%s: V4L2_CID_CAM_DATE_INFO_YEAR %d \n", __func__,ctrl->value);
- 4407c4767
- < break;
- ---
- > break;
- 4410d4769
- < LOGV("%s: V4L2_CID_CAM_DATE_INFO_MONTH %d \n", __func__,ctrl->value);
- 4413c4772
- < break;
- ---
- > break;
- 4416d4774
- < LOGV("%s: V4L2_CID_CAM_DATE_INFO_DATE %d \n", __func__,ctrl->value);
- 4419c4777
- < break;
- ---
- > break;
- 4422d4779
- < LOGV("%s: V4L2_CID_CAM_SENSOR_VER %d \n", __func__,ctrl->value);
- 4425c4782
- < break;
- ---
- > break;
- 4428d4784
- < LOGV("%s: V4L2_CID_CAM_FW_MINOR_VER %d \n", __func__,ctrl->value);
- 4431c4787
- < break;
- ---
- > break;
- 4434d4789
- < LOGV("%s: V4L2_CID_CAM_FW_MAJOR_VER %d \n", __func__,ctrl->value);
- 4437c4792
- < break;
- ---
- > break;
- 4440d4794
- < LOGV("%s: V4L2_CID_CAM_PRM_MINOR_VER %d \n", __func__,ctrl->value);
- 4443c4797
- < break;
- ---
- > break;
- 4446d4799
- < LOGV("%s: V4L2_CID_CAM_PRM_MAJOR_VER %d \n", __func__,ctrl->value);
- 4449c4802
- < break;
- ---
- > break;
- 4452d4804
- < LOGV("%s: V4L2_CID_CAM_SENSOR_MAKER %d \n", __func__,ctrl->value);
- 4455c4807
- < break;
- ---
- > break;
- 4458d4809
- < LOGV("%s: V4L2_CID_CAM_SENSOR_OPTICAL %d \n", __func__,ctrl->value);
- 4461c4812
- < break;
- ---
- > break;
- 4464d4814
- < LOGV("%s: V4L2_CID_CAM_AF_VER_LOW %d \n", __func__,ctrl->value);
- 4467c4817
- < break;
- ---
- > break;
- 4470d4819
- < LOGV("%s: V4L2_CID_CAM_AF_VER_HIGH %d \n", __func__,ctrl->value);
- 4473c4822
- < break;
- ---
- > break;
- 4476d4824
- < LOGV("%s: V4L2_CID_CAM_GAMMA_RG_LOW %d \n", __func__,ctrl->value);
- 4479c4827
- < break;
- ---
- > break;
- 4482d4829
- < LOGV("%s: V4L2_CID_CAM_GAMMA_RG_HIGH %d \n", __func__,ctrl->value);
- 4485c4832
- < break;
- ---
- > break;
- 4488d4834
- < LOGV("%s: V4L2_CID_CAM_GAMMA_BG_LOW %d \n", __func__,ctrl->value);
- 4491c4837
- < break;
- ---
- > break;
- 4494d4839
- < LOGV("%s: V4L2_CID_CAM_GAMMA_BG_HIGH %d \n", __func__,ctrl->value);
- 4497,4498c4842,4843
- < break;
- <
- ---
- > break;
- >
- 4500d4844
- < LOGV("%s: V4L2_CID_CAM_GET_DUMP_SIZE %d \n", __func__,ctrl->value);
- 4503,4504c4847,4848
- < break;
- <
- ---
- > break;
- >
- 4506d4849
- < LOGV("%s: V4L2_CID_MAIN_SW_DATE_INFO_YEAR %d \n", __func__,ctrl->value);
- 4509c4852
- < break;
- ---
- > break;
- 4512d4854
- < LOGV("%s: V4L2_CID_MAIN_SW_DATE_INFO_MONTH %d \n", __func__,ctrl->value);
- 4515c4857
- < break;
- ---
- > break;
- 4518d4859
- < LOGV("%s: V4L2_CID_MAIN_SW_DATE_INFO_DATE %d \n", __func__,ctrl->value);
- 4521c4862
- < break;
- ---
- > break;
- 4524d4864
- < LOGV("%s: V4L2_CID_MAIN_SW_FW_MINOR_VER %d \n", __func__,ctrl->value);
- 4527c4867
- < break;
- ---
- > break;
- 4530d4869
- < LOGV("%s: V4L2_CID_MAIN_SW_FW_MAJOR_VER %d \n", __func__,ctrl->value);
- 4533c4872
- < break;
- ---
- > break;
- 4536d4874
- < LOGV("%s: V4L2_CID_MAIN_SW_PRM_MINOR_VER %d \n", __func__,ctrl->value);
- 4539c4877
- < break;
- ---
- > break;
- 4542d4879
- < LOGV("%s: V4L2_CID_MAIN_SW_PRM_MAJOR_VER %d \n", __func__,ctrl->value);
- 4545,4567d4881
- < break;
- <
- < case V4L2_CID_ESD_INT:
- < LOGV("%s: V4L2_CID_ESD_INT %d \n", __func__,ctrl->value);
- < pr_warn("%s don't bother with V4L2_CID_ESD_INT shit I am a stupid CE147 cam!",__func__);
- < err = 0;
- < break;
- < case V4L2_CID_CAMERA_GET_SHT_TIME:
- < //FIXME get real shutterspeed
- < ctrl->value = 100;
- < LOGV("%s: V4L2_CID_CAMERA_GET_SHT_TIME %d \n", __func__,ctrl->value);
- < err = 0;
- < break;
- < case V4L2_CID_CAMERA_GET_ISO:
- < //FIXME get real ISO
- < ctrl->value = ISO_100; //ISO 100 as workaround
- < LOGV("%s: V4L2_CID_CAMERA_GET_ISO %d \n", __func__,ctrl->value);
- < err = 0;
- < break;
- < case V4L2_CID_CAMERA_GET_FLASH_ONOFF:
- < ctrl->value = 0; //we have no flash
- < err = 0;
- < LOGV("%s: V4L2_CID_CAMERA_GET_FLASH_ONOFF %d \n", __func__,ctrl->value);
- 4570d4883
- <
- 4572c4885
- < pr_err("%s: no such ctrl id(%d)\n", __func__, (ctrl->id - offset));
- ---
- > dev_err(&client->dev, "%s: no such ctrl\n", __func__);
- 4575c4888,4890
- <
- ---
- >
- > mutex_unlock(&state->ctrl_lock);
- >
- 4584a4900,4902
- > int value = ctrl->value;
- >
- > mutex_lock(&state->ctrl_lock);
- 4587d4904
- <
- 4589,4590c4906
- < LOGV("%s: V4L2_CID_CAMERA_AEAWB_LOCK_UNLOCK %d \n", __func__,ctrl->value);
- < err = ce147_set_ae_awb(sd, ctrl->value);
- ---
- > err = ce147_set_ae_awb(sd, ctrl);
- 4592c4908
- <
- ---
- >
- 4594,4595c4910
- < LOGV("%s: V4L2_CID_CAMERA_FLASH_MODE %d \n", __func__,ctrl->value);
- < err = ce147_set_flash(sd, ctrl->value);
- ---
- > err = ce147_set_flash(sd, ctrl);
- 4599,4602c4914
- < LOGV("%s: V4L2_CID_CAMERA_BRIGHTNESS %d \n", __func__,ctrl->value);
- <
- < if(state->runmode != CE147_RUNMODE_RUNNING)
- < {
- ---
- > if (state->runmode != CE147_RUNMODE_RUNNING) {
- 4605,4609c4917,4918
- < }
- < else
- < {
- < err = ce147_set_ev(sd, ctrl->value);
- < }
- ---
- > } else
- > err = ce147_set_ev(sd, ctrl);
- 4613,4618c4922,4923
- < LOGV("%s: V4L2_CID_CAMERA_WHITE_BALANCE %d \n", __func__,ctrl->value);
- <
- < if(state->runmode != CE147_RUNMODE_RUNNING)
- < {
- <
- < state->wb= ctrl->value;
- ---
- > if (state->runmode != CE147_RUNMODE_RUNNING) {
- > state->wb = ctrl->value;
- 4620,4625c4925,4926
- < }
- < else
- < {
- < LOGV("%s: V4L2_CID_CAMERA_WHITE_BALANCE %d is CE147_RUNMODE_RUNNING\n", __func__,ctrl->value);
- < err = ce147_set_white_balance(sd, ctrl->value);
- < }
- ---
- > } else
- > err = ce147_set_white_balance(sd, ctrl);
- 4629,4633c4930,4931
- < LOGV("%s: V4L2_CID_CAMERA_EFFECT %d \n", __func__,ctrl->value);
- <
- < if(state->runmode != CE147_RUNMODE_RUNNING)
- < {
- < state->effect= ctrl->value;
- ---
- > if (state->runmode != CE147_RUNMODE_RUNNING) {
- > state->effect = ctrl->value;
- 4635,4641c4933,4935
- < }
- < else
- < {
- < LOGV("%s: V4L2_CID_CAMERA_EFFECT %d is CE147_RUNMODE_RUNNING\n", __func__,ctrl->value);
- < err = ce147_set_effect(sd, ctrl->value);
- < }
- < break;
- ---
- > } else
- > err = ce147_set_effect(sd, ctrl);
- > break;
- 4644,4647c4938
- < LOGV("%s: V4L2_CID_CAMERA_ISO %d \n", __func__,ctrl->value);
- <
- < if(state->runmode != CE147_RUNMODE_RUNNING)
- < {
- ---
- > if (state->runmode != CE147_RUNMODE_RUNNING) {
- 4650,4655c4941,4942
- < }
- < else
- < {
- < LOGV("%s: V4L2_CID_CAMERA_ISO %d is CE147_RUNMODE_RUNNING\n", __func__,ctrl->value);
- < err = ce147_set_iso(sd, ctrl->value);
- < }
- ---
- > } else
- > err = ce147_set_iso(sd, ctrl);
- 4659,4663c4946,4947
- < LOGV("%s: V4L2_CID_CAMERA_METERING %d \n", __func__,ctrl->value);
- <
- < if(state->runmode != CE147_RUNMODE_RUNNING)
- < {
- < state->metering = ctrl->value;
- ---
- > if (state->runmode != CE147_RUNMODE_RUNNING) {
- > state->metering = ctrl->value;
- 4665,4669c4949,4950
- < }
- < else
- < {
- < err = ce147_set_metering(sd, ctrl->value);
- < }
- ---
- > } else
- > err = ce147_set_metering(sd, ctrl);
- 4673,4674c4954
- < LOGV("%s: V4L2_CID_CAMERA_CONTRAST %d \n", __func__,ctrl->value);
- < err = ce147_set_contrast(sd, ctrl->value);
- ---
- > err = ce147_set_contrast(sd, ctrl);
- 4678,4679c4958
- < LOGV("%s: V4L2_CID_CAMERA_SATURATION %d \n", __func__,ctrl->value);
- < err = ce147_set_saturation(sd, ctrl->value);
- ---
- > err = ce147_set_saturation(sd, ctrl);
- 4683,4684c4962
- < LOGV("%s: V4L2_CID_CAMERA_SHARPNESS %d \n", __func__,ctrl->value);
- < err = ce147_set_sharpness(sd, ctrl->value);
- ---
- > err = ce147_set_sharpness(sd, ctrl);
- 4688,4689c4966
- < LOGV("%s: V4L2_CID_CAMERA_WDR %d \n", __func__,ctrl->value);
- < err = ce147_set_wdr(sd, ctrl->value);
- ---
- > err = ce147_set_wdr(sd, ctrl);
- 4693,4694c4970
- < LOGV("%s: V4L2_CID_CAMERA_ANTI_SHAKE %d \n", __func__,ctrl->value);
- < err = ce147_set_anti_shake(sd, ctrl->value);
- ---
- > err = ce147_set_anti_shake(sd, ctrl);
- 4698,4699c4974
- < LOGV("%s: V4L2_CID_CAMERA_FACE_DETECTION %d \n", __func__,ctrl->value);
- < err = ce147_set_face_detection(sd, ctrl->value);
- ---
- > err = ce147_set_face_detection(sd, ctrl);
- 4703,4704c4978
- < LOGV("%s: V4L2_CID_CAMERA_SMART_AUTO %d \n", __func__,ctrl->value);
- < err = ce147_set_smart_auto(sd, ctrl->value);
- ---
- > err = ce147_set_smart_auto(sd, ctrl);
- 4708,4709c4982
- < LOGV("%s: V4L2_CID_CAMERA_FOCUS_MODE %d \n", __func__,ctrl->value);
- < err = ce147_set_focus_mode(sd, ctrl->value);
- ---
- > err = ce147_set_focus_mode(sd, ctrl);
- 4711c4984
- <
- ---
- >
- 4713,4714c4986
- < LOGV("%s: V4L2_CID_CAMERA_VINTAGE_MODE %d \n", __func__,ctrl->value);
- < err = ce147_set_vintage_mode(sd, ctrl->value);
- ---
- > err = ce147_set_vintage_mode(sd, ctrl);
- 4716c4988
- <
- ---
- >
- 4718,4719c4990
- < LOGV("%s: V4L2_CID_CAMERA_BEAUTY_SHOT %d \n", __func__,ctrl->value);
- < err = ce147_set_face_beauty(sd, ctrl->value);
- ---
- > err = ce147_set_face_beauty(sd, ctrl);
- 4723,4725c4994,4995
- < LOGV("%s: V4L2_CID_CAMERA_FACEDETECT_LOCKUNLOCK %d \n", __func__,ctrl->value);
- < err = ce147_set_face_lock(sd, ctrl->value);
- < break;
- ---
- > err = ce147_set_face_lock(sd, ctrl);
- > break;
- 4727c4997
- < //need to be modified
- ---
- > /* need to be modified */
- 4729,4730c4999
- < LOGV("%s: V4L2_CID_CAM_JPEG_QUALITY %d \n", __func__,ctrl->value);
- < if(ctrl->value < 0 || ctrl->value > 100){
- ---
- > if (ctrl->value < 0 || ctrl->value > 100)
- 4732c5001
- < } else {
- ---
- > else {
- 4739d5007
- < LOGV("%s: V4L2_CID_CAMERA_ZOOM %d \n", __func__,ctrl->value);
- 4744,4745c5012
- < LOGV("%s: V4L2_CID_CAMERA_TOUCH_AF_START_STOP %d \n", __func__,ctrl->value);
- < err = ce147_set_touch_auto_focus(sd, ctrl->value);
- ---
- > err = ce147_set_touch_auto_focus(sd, ctrl);
- 4747c5014
- <
- ---
- >
- 4749,4751c5016,5017
- < LOGV("%s: V4L2_CID_CAMERA_CAF_START_STOP %d \n", __func__,ctrl->value);
- < err = ce147_set_continous_af(sd, ctrl->value);
- < break;
- ---
- > err = ce147_set_continous_af(sd, ctrl);
- > break;
- 4754d5019
- < LOGV("%s: V4L2_CID_CAMERA_OBJECT_POSITION_X %d \n", __func__,ctrl->value);
- 4760d5024
- < LOGV("%s: V4L2_CID_CAMERA_OBJECT_POSITION_Y %d \n", __func__,ctrl->value);
- 4766,4767c5030
- < LOGV("%s: V4L2_CID_CAMERA_OBJ_TRACKING_START_STOP %d \n", __func__,ctrl->value);
- < err = ce147_set_object_tracking(sd, ctrl->value);
- ---
- > err = ce147_set_object_tracking(sd, ctrl);
- 4771,4773c5034,5044
- < LOGV("%s: V4L2_CID_CAMERA_SET_AUTO_FOCUS %d \n", __func__,ctrl->value);
- < err = ce147_set_auto_focus(sd, ctrl->value);
- < break;
- ---
- > if (value == AUTO_FOCUS_ON)
- > err = ce147_start_auto_focus(sd, ctrl);
- > else if (value == AUTO_FOCUS_OFF)
- > err = ce147_stop_auto_focus(sd);
- > else {
- > err = -EINVAL;
- > dev_err(&client->dev,
- > "%s: bad focus value requestion %d\n",
- > __func__, value);
- > }
- > break;
- 4776d5046
- < LOGV("%s: V4L2_CID_CAMERA_FRAME_RATE %d \n", __func__,ctrl->value);
- 4778c5048
- < err = 0;
- ---
- > err = 0;
- 4780c5050
- <
- ---
- >
- 4782,4784c5052,5053
- < LOGV("%s: V4L2_CID_CAMERA_ANTI_BANDING %d \n", __func__,ctrl->value);
- < state->anti_banding= ctrl->value;
- < err = 0;
- ---
- > state->anti_banding = ctrl->value;
- > err = 0;
- 4788d5056
- < LOGV("%s: V4L2_CID_CAMERA_SET_GAMMA %d \n", __func__,ctrl->value);
- 4792c5060
- <
- ---
- >
- 4794d5061
- < LOGV("%s: V4L2_CID_CAMERA_SET_SLOW_AE %d \n", __func__,ctrl->value);
- 4800c5067
- < LOGV("%s: V4L2_CID_CAMERA_CAPTURE %d \n", __func__,ctrl->value);
- ---
- > err = ce147_set_capture_start(sd, ctrl);
- 4803d5069
- <
- 4805,4807c5071
- < LOGV("%s: V4L2_CID_CAM_CAPTURE %d \n", __func__);
- < err = ce147_set_capture_config(sd);
- < err = ce147_set_capture_start(sd);
- ---
- > err = ce147_set_capture_config(sd, ctrl);
- 4809,4811c5073,5076
- <
- < /* Used to start / stop preview operation.
- < * This call can be modified to START/STOP operation, which can be used in image capture also */
- ---
- >
- > /* Used to start / stop preview operation.
- > * This call can be modified to START/STOP operation,
- > * which can be used in image capture also */
- 4813,4814c5078
- < LOGV("%s: V4L2_CID_CAM_PREVIEW_ONOFF %d \n", __func__,ctrl->value);
- < if(ctrl->value)
- ---
- > if (ctrl->value)
- 4821d5084
- < LOGV("%s: V4L2_CID_CAM_UPDATE_FW %d \n", __func__,ctrl->value);
- 4826d5088
- < LOGV("%s: V4L2_CID_CAM_SET_FW_ADDR %d \n", __func__,ctrl->value);
- 4832d5093
- < LOGV("%s: V4L2_CID_CAM_SET_FW_SIZE %d \n", __func__,ctrl->value);
- 4837c5098
- < #if defined(CONFIG_ARIES_NTT) // Modify NTTS1
- ---
- > #if defined(CONFIG_ARIES_NTT) /* Modify NTTS1 */
- 4845d5105
- < LOGV("%s: V4L2_CID_CAM_FW_VER %d \n", __func__,ctrl->value);
- 4850d5109
- < LOGV("%s: V4L2_CID_CAM_DUMP_FW %d \n", __func__,ctrl->value);
- 4853c5112
- <
- ---
- >
- 4855d5113
- < LOGV("%s: V4L2_CID_CAMERA_BATCH_REFLECTION %d \n", __func__,ctrl->value);
- 4860d5117
- < LOGV("%s: V4L2_CID_CAMERA_EXIF_ORIENTATION %d \n", __func__,ctrl->value);
- 4864,4865c5121,5122
- <
- < //s1_camera [ Defense process by ESD input ] _[
- ---
- >
- > /* s1_camera [ Defense process by ESD input ] _[ */
- 4867c5124,5125
- < dev_err(&client->dev, "%s: V4L2_CID_CAMERA_RESET \n", __func__);
- ---
- > dev_err(&client->dev, "%s: V4L2_CID_CAMERA_RESET\n", __func__);
- > pr_debug("======ESD\n");
- 4870c5128
- < // _]
- ---
- > /* _] */
- 4873,4874c5131
- < LOGV("%s: V4L2_CID_CAMERA_CHECK_DATALINE %d \n", __func__,ctrl->value);
- < state->check_dataline = ctrl->value;
- ---
- > state->check_dataline = ctrl->value;
- 4876c5133
- < break;
- ---
- > break;
- 4879d5135
- < LOGV("%s: V4L2_CID_CAMERA_CHECK_DATALINE_STOP %d \n", __func__,ctrl->value);
- 4882c5138
- <
- ---
- >
- 4884d5139
- < LOGV("%s: V4L2_CID_CAMERA_THUMBNAIL_NULL %d \n", __func__,ctrl->value);
- 4888,4893c5143
- <
- < case V4L2_CID_CAMERA_RETURN_FOCUS:
- < pr_warn("%s don't bother with V4L2_CID_CAMERA_RETURN_FOCUS shit I am a stupid CE147 cam!",__func__);
- < err = 0;
- < break;
- <
- ---
- >
- 4895c5145
- < pr_err("%s: no such control ... I know nothing about %d! What do you want from me sucker? \n", __func__, ctrl->id);
- ---
- > dev_err(&client->dev, "%s: no such control\n", __func__);
- 4900c5150,5155
- < dev_err(&client->dev, "%s: vidioc_s_ctrl failed %d, s_ctrl: id(%d), value(%d)\n", __func__, err, (ctrl->id - offset), ctrl->value);
- ---
- > dev_err(&client->dev, "%s: vidioc_s_ctrl failed %d, "
- > "s_ctrl: id(%d), value(%d)\n",
- > __func__, err, (ctrl->id - offset),
- > ctrl->value);
- >
- > mutex_unlock(&state->ctrl_lock);
- 4904c5159,5160
- < static int ce147_s_ext_ctrls(struct v4l2_subdev *sd, struct v4l2_ext_controls *ctrls)
- ---
- > static int ce147_s_ext_ctrls(struct v4l2_subdev *sd,
- > struct v4l2_ext_controls *ctrls)
- 4910c5166
- < for (i = 0; i < ctrls->count; i++, ctrl++) {
- ---
- > for (i = 0; i < ctrls->count; i++, ctrl++) {
- 4913c5169
- < if (ret) {
- ---
- > if (ret) {
- 4922c5178,5179
- < static int ce147_s_ext_ctrl(struct v4l2_subdev *sd, struct v4l2_ext_control *ctrl)
- ---
- > static int ce147_s_ext_ctrl(struct v4l2_subdev *sd,
- > struct v4l2_ext_control *ctrl)
- 4929,4931c5186
- < struct gps_info_common * tempGPSType = NULL;
- <
- <
- ---
- > struct gps_info_common *tempGPSType = NULL;
- 4939,4944c5194,5202
- < state->gpsInfo.ce147_gps_buf[0] = tempGPSType ->direction;
- < state->gpsInfo.ce147_gps_buf[1] = tempGPSType ->dgree;
- < state->gpsInfo.ce147_gps_buf[2] = tempGPSType ->minute;
- < state->gpsInfo.ce147_gps_buf[3] = tempGPSType ->second;
- <
- < if((tempGPSType ->direction == 0)&&(tempGPSType ->dgree == 0)&&(tempGPSType ->minute == 0)&&(tempGPSType ->second == 0))
- ---
- > state->gpsInfo.ce147_gps_buf[0] = tempGPSType->direction;
- > state->gpsInfo.ce147_gps_buf[1] = tempGPSType->dgree;
- > state->gpsInfo.ce147_gps_buf[2] = tempGPSType->minute;
- > state->gpsInfo.ce147_gps_buf[3] = tempGPSType->second;
- >
- > if ((tempGPSType->direction == 0)
- > && (tempGPSType->dgree == 0)
- > && (tempGPSType->minute == 0)
- > && (tempGPSType->second == 0))
- 4946c5204
- < else
- ---
- > else
- 4948c5206
- < //dev_err(&client->dev,"gps_info_latiude NS: %d, dgree: %d, minute: %d, second: %d \n",state->gpsInfo.ce147_gps_buf[0], state->gpsInfo.ce147_gps_buf[1], state->gpsInfo.ce147_gps_buf[2], state->gpsInfo.ce147_gps_buf[3]);
- ---
- >
- 4954,4959c5212,5220
- < state->gpsInfo.ce147_gps_buf[4] = tempGPSType ->direction;
- < state->gpsInfo.ce147_gps_buf[5] = tempGPSType ->dgree;
- < state->gpsInfo.ce147_gps_buf[6] = tempGPSType ->minute;
- < state->gpsInfo.ce147_gps_buf[7] = tempGPSType ->second;
- <
- < if((tempGPSType ->direction == 0)&&(tempGPSType ->dgree == 0)&&(tempGPSType ->minute == 0)&&(tempGPSType ->second == 0))
- ---
- > state->gpsInfo.ce147_gps_buf[4] = tempGPSType->direction;
- > state->gpsInfo.ce147_gps_buf[5] = tempGPSType->dgree;
- > state->gpsInfo.ce147_gps_buf[6] = tempGPSType->minute;
- > state->gpsInfo.ce147_gps_buf[7] = tempGPSType->second;
- >
- > if ((tempGPSType->direction == 0)
- > && (tempGPSType->dgree == 0)
- > && (tempGPSType->minute == 0)
- > && (tempGPSType->second == 0))
- 4961c5222
- < else
- ---
- > else
- 4963c5224
- < //dev_err(&client->dev,"gps_info_longitude EW: %d, dgree: %d, minute: %d, second: %d \n", state->gpsInfo.ce147_gps_buf[4], state->gpsInfo.ce147_gps_buf[5], state->gpsInfo.ce147_gps_buf[6], state->gpsInfo.ce147_gps_buf[7]);
- ---
- >
- 4969,4972c5230,5235
- < state->gpsInfo.ce147_altitude_buf[0] = tempGPSType ->direction;
- < state->gpsInfo.ce147_altitude_buf[1] = (tempGPSType ->dgree)&0x00ff; //lower byte
- < state->gpsInfo.ce147_altitude_buf[2] = ((tempGPSType ->dgree)&0xff00)>>8; //upper byte
- < state->gpsInfo.ce147_altitude_buf[3] = tempGPSType ->minute;//float
- ---
- > state->gpsInfo.ce147_altitude_buf[0] = tempGPSType->direction;
- > state->gpsInfo.ce147_altitude_buf[1] = (tempGPSType->dgree)
- > & 0x00ff;
- > state->gpsInfo.ce147_altitude_buf[2] = ((tempGPSType->dgree)
- > & 0xff00) >> 8;
- > state->gpsInfo.ce147_altitude_buf[3] = tempGPSType->minute;
- 4974d5236
- < //dev_err(&client->dev,"gps_info_altitude PLUS_MINUS: %d, dgree_lower: %d, degree_lower: %d, minute: %d \n", state->gpsInfo.ce147_altitude_buf[0], state->gpsInfo.ce147_altitude_buf[1], state->gpsInfo.ce147_altitude_buf[2], state->gpsInfo.ce147_altitude_buf[3]);
- 4979,4980c5241,5243
- < //state->gpsInfo.gps_timeStamp =(struct tm *)ctrl->reserved2[1];
- < temp = *((unsigned long *)ctrl->reserved2[1]);
- ---
- > /* state->gpsInfo.gps_timeStamp =
- > (struct tm*)ctrl->reserved2[1]; */
- > temp = *((unsigned long *)ctrl->reserved2[1]);
- 4984c5247
- <
- ---
- >
- 4986c5249
- < state->exifTimeInfo =(struct tm *)ctrl->reserved2[1];
- ---
- > state->exifTimeInfo = (struct tm *)ctrl->reserved2[1];
- 4989c5252
- <
- ---
- >
- 4997c5260
- < if(condition)
- ---
- > if (condition)
- 4999c5262
- <
- ---
- >
- 5001c5264,5265
- < dev_err(&client->dev, "%s: vidioc_s_ext_ctrl failed %d\n", __func__, err);
- ---
- > dev_err(&client->dev, "%s: vidioc_s_ext_ctrl failed %d\n",
- > __func__, err);
- 5005a5270,5293
- > #ifdef FACTORY_CHECK
- > ssize_t camtype_show(struct device *dev, struct device_attribute *attr, char *buf)
- > {
- > printk("%s \n", __func__);
- > char * sensorname = "NG";
- > sensorname = "SONY_IMX072ES_CE147";
- > return sprintf(buf,"%s\n", sensorname);
- > }
- >
- >
- > ssize_t camtype_store(struct device *dev,
- > struct device_attribute *attr, const char *buf, size_t size)
- > {
- > printk(KERN_NOTICE "%s:%s\n", __func__, buf);
- >
- > return size;
- > }
- >
- > static DEVICE_ATTR(camtype,0644, camtype_show, camtype_store);
- >
- > extern struct class *sec_class;
- > struct device *sec_cam_dev = NULL;
- > #endif
- >
- 5011,5013c5299
- < //camera was just turned on, we wait for it
- < msleep(200);
- < //ce147_power_en(1, sd);
- ---
- >
- 5015,5016c5301,5303
- < if(err < 0){
- < dev_err(&client->dev, "%s: Failed: Camera Initialization\n", __func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: Failed: Camera Initialization\n",
- > __func__);
- 5019c5306
- <
- ---
- >
- 5023,5024c5310,5312
- < if(err < 0){
- < dev_err(&client->dev, "%s: Failed: Reading firmware version\n",__func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: Failed: Reading firmware version\n",
- > __func__);
- 5029,5030c5317,5319
- < if(err < 0){
- < dev_err(&client->dev, "%s: Failed: Reading dateinfo\n",__func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: Failed: Reading dateinfo\n",
- > __func__);
- 5035,5036c5324,5326
- < if(err < 0){
- < dev_err(&client->dev, "%s: Failed: Reading sensor info\n",__func__);
- ---
- > if (err < 0) {
- > dev_err(&client->dev, "%s: Failed: Reading sensor info\n",
- > __func__);
- 5039,5040c5329,5334
- < printk(KERN_DEBUG "fw M:%d m:%d |prm M:%d m:%d \n", MAIN_SW_FW[0], MAIN_SW_FW[1], MAIN_SW_FW[2], MAIN_SW_FW[3]);
- < printk(KERN_DEBUG "y. m. d = %d.%d.%d \n", MAIN_SW_DATE_INFO[0], MAIN_SW_DATE_INFO[1], MAIN_SW_DATE_INFO[2]);
- ---
- > pr_debug("fw M:%d m:%d |prm M:%d m:%d\n",
- > MAIN_SW_FW[0], MAIN_SW_FW[1],
- > MAIN_SW_FW[2], MAIN_SW_FW[3]);
- > pr_debug("y. m. d = %d.%d.%d\n",
- > MAIN_SW_DATE_INFO[0], MAIN_SW_DATE_INFO[1],
- > MAIN_SW_DATE_INFO[2]);
- 5043,5044c5337,5339
- < if(err < 0){
- < dev_err(&client->dev, "%s: Failed: Reading Main SW Version\n",__func__);
- ---
- > if (err < 0) {
- > /*dev_err(&client->dev, "%s: Failed: Reading Main SW Version\n",
- > __func__);*/
- 5047,5048d5341
- <
- < //ce147_power_en(0, sd);
- 5050,5053c5343,5347
- < printk(KERN_DEBUG "FW Version: %d.%d\n", state->fw.major, state->fw.minor);
- < printk(KERN_DEBUG "PRM Version: %d.%d\n", state->prm.major, state->prm.minor);
- < printk(KERN_DEBUG "Date(y.m.d): %d.%d.%d\n", state->dateinfo.year, state->dateinfo.month, state->dateinfo.date);
- < printk(KERN_DEBUG "Sensor version: %d\n", state->sensor_version);
- ---
- > pr_debug("FW Version: %d.%d\n", state->fw.major, state->fw.minor);
- > pr_debug("PRM Version: %d.%d\n", state->prm.major, state->prm.minor);
- > pr_debug("Date(y.m.d): %d.%d.%d\n", state->dateinfo.year,
- > state->dateinfo.month, state->dateinfo.date);
- > pr_debug("Sensor version: %d\n", state->sensor_version);
- 5060,5061c5354,5356
- < * With camera device, we need to re-initialize every single opening time therefor,
- < * it is not necessary to be initialized on probe time. except for version checking
- ---
- > * With camera device, we need to re-initialize every single opening time
- > * therefor, it is not necessary to be initialized on probe time.
- > * except for version checking
- 5070c5365
- < pdata = client->dev.platform_data;
- ---
- > pdata = client->dev.platform_data;
- 5103,5109c5398,5404
- < .init = ce147_init, /* initializing API */
- < .s_config = ce147_s_config, /* Fetch platform data */
- < .queryctrl = ce147_queryctrl,
- < .querymenu = ce147_querymenu,
- < .g_ctrl = ce147_g_ctrl,
- < .s_ctrl = ce147_s_ctrl,
- < .s_ext_ctrls = ce147_s_ext_ctrls,
- ---
- > .init = ce147_init, /* initializing API */
- > .s_config = ce147_s_config, /* Fetch platform data */
- > .queryctrl = ce147_queryctrl,
- > .querymenu = ce147_querymenu,
- > .g_ctrl = ce147_g_ctrl,
- > .s_ctrl = ce147_s_ctrl,
- > .s_ext_ctrls = ce147_s_ext_ctrls,
- 5113,5121c5408,5416
- < .s_crystal_freq = ce147_s_crystal_freq,
- < .g_fmt = ce147_g_fmt,
- < .s_fmt = ce147_s_fmt,
- < .enum_framesizes = ce147_enum_framesizes,
- < .enum_frameintervals = ce147_enum_frameintervals,
- < .enum_fmt = ce147_enum_fmt,
- < .try_fmt = ce147_try_fmt,
- < .g_parm = ce147_g_parm,
- < .s_parm = ce147_s_parm,
- ---
- > .s_crystal_freq = ce147_s_crystal_freq,
- > .g_fmt = ce147_g_fmt,
- > .s_fmt = ce147_s_fmt,
- > .enum_framesizes = ce147_enum_framesizes,
- > .enum_frameintervals = ce147_enum_frameintervals,
- > .enum_fmt = ce147_enum_fmt,
- > .try_fmt = ce147_try_fmt,
- > .g_parm = ce147_g_parm,
- > .s_parm = ce147_s_parm,
- 5125,5126c5420,5421
- < .core = &ce147_core_ops,
- < .video = &ce147_video_ops,
- ---
- > .core = &ce147_core_ops,
- > .video = &ce147_video_ops,
- 5132c5427
- < * In probe routine, we just register subdev device
- ---
- > * In probe routine, we just register subdev device
- 5143a5439,5441
- > mutex_init(&state->ctrl_lock);
- > init_completion(&state->af_complete);
- >
- 5145,5146c5443,5444
- < state->pre_af_status = -1;
- < state->cur_af_status = -2;
- ---
- > state->pre_focus_mode = -1;
- > state->af_status = -2;
- 5153a5452,5470
- > #ifdef FACTORY_CHECK
- > {
- > static bool camtype_init = false;
- > if (sec_cam_dev == NULL)
- > {
- > sec_cam_dev = device_create(sec_class, NULL, 0, NULL, "sec_cam");
- > if (IS_ERR(sec_cam_dev))
- > pr_err("Failed to create device(sec_lcd_dev)!\n");
- > }
- >
- > if (sec_cam_dev != NULL && camtype_init == false)
- > {
- > camtype_init = true;
- > if (device_create_file(sec_cam_dev, &dev_attr_camtype) < 0)
- > pr_err("Failed to create device file(%s)!\n", dev_attr_camtype.attr.name);
- > }
- > }
- > #endif
- >
- 5161a5479
- > struct ce147_state *state = to_state(sd);
- 5165a5484
- > mutex_destroy(&state->ctrl_lock);
- 5180,5182c5499,5501
- < .name = CE147_DRIVER_NAME,
- < .probe = ce147_probe,
- < .remove = ce147_remove,
- ---
- > .name = CE147_DRIVER_NAME,
- > .probe = ce147_probe,
- > .remove = ce147_remove,
- techmik@michaels-laptop:~$
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement