camera: Support setting MWB and EV for yuv sensor.

MBW: auto, incandescent, daylight, flourescent, and cloudy.
EV: +2, +1, 0, -1, -2

Bug: 9492735

Change-Id: Ic12cfc85741dc9472374eb2073eef31dea654780
Signed-off-by: chiayi_wu <chiayi_wu@asus.com>
This commit is contained in:
chiayi_wu
2013-06-20 18:31:01 +08:00
committed by Iliyan Malchev
parent 904193844c
commit 50b5d7c960
3 changed files with 42 additions and 31 deletions

View File

@@ -676,11 +676,17 @@ int32_t mi1040_sensor_set_wb(struct msm_sensor_ctrl_t *s_ctrl, int wb)
ARRAY_SIZE(Whitebalance_Daylight));
break;
case YUV_CAMERA_WB_FLUORESCENT:
CDBG("--CAMERA--YUV_CAMERA_WB_DAYLIGHT\n");
CDBG("--CAMERA--YUV_CAMERA_WB_FLUORESCENT\n");
rc = sensor_write_table(s_ctrl,
Whitebalance_Fluorescent,
ARRAY_SIZE(Whitebalance_Fluorescent));
break;
case YUV_CAMERA_WB_CLOUDY_DAYLIGHT:
CDBG("--CAMERA--YUV_CAMERA_WB_CLOUDY_DAYLIGHT\n");
rc = sensor_write_table(s_ctrl,
Whitebalance_Cloudy,
ARRAY_SIZE(Whitebalance_Cloudy));
break;
default:
rc = sensor_write_table(s_ctrl, Whitebalance_Auto,
ARRAY_SIZE(Whitebalance_Auto));

View File

@@ -626,65 +626,69 @@ static struct msm_camera_i2c_reg_conf ColorEffect_Solarize[] = {
};
static struct msm_camera_i2c_reg_conf Whitebalance_Auto[] = {
/* [4.1 AWB -- default] */
{0x098E, 0x0000},
{0xC909, 0x02, MSM_CAMERA_I2C_BYTE_DATA},
{0x098E, 0xC909},
{0xC909, 0x03, MSM_CAMERA_I2C_BYTE_DATA},
{0xAC04, 0x0288},
};
static struct msm_camera_i2c_reg_conf Whitebalance_Incandescent[] = {
/* [4.5 MWB: A Light] */
{0x098E, 0x0000},
{0x098E, 0xC909},
{0xC909, 0x00, MSM_CAMERA_I2C_BYTE_DATA},
{0xC8F0, 0x0A8C},
{0xAC04, 0x0288},
{0xC8F0, 0x09C4},
};
static struct msm_camera_i2c_reg_conf Whitebalance_Daylight[] = {
/* [4.2 MWB: D65] */
{0x098E, 0x0000},
{0x098E, 0xC909},
{0xC909, 0x00, MSM_CAMERA_I2C_BYTE_DATA},
{0xAC04, 0x0288},
{0xC8F0, 0x1964},
};
static struct msm_camera_i2c_reg_conf Whitebalance_Fluorescent[] = {
/* [4.4 MWB: TL84] */
{0x098E, 0x0000},
{0x098E, 0xC909},
{0xC909, 0x00, MSM_CAMERA_I2C_BYTE_DATA},
{0xC8F0, 0x0E74},
{0xAC04, 0x0288},
{0xC8F0, 0x0D67},
};
static struct msm_camera_i2c_reg_conf Whitebalance_Cloudy[] = {
{0x098E, 0xC909},
{0xC909, 0x00, MSM_CAMERA_I2C_BYTE_DATA} ,
{0xAC04, 0x0208},
{0xC8F0, 0x1964},
{0xAC12, 0x00B4},
{0xAC14, 0x0080},
};
static struct msm_camera_i2c_reg_conf EV_zero[] = {
/* [3.3 EV0: 128 -- default] */
{0x098E, 0xC87A},
{0xC87A, 0x3C, MSM_CAMERA_I2C_BYTE_DATA},
{0xC87B, 0x1E, MSM_CAMERA_I2C_BYTE_DATA},
{0x098E, 0x4C0A},
{0xCC0A, 0x0037},
};
static struct msm_camera_i2c_reg_conf EV_plus_1[] = {
/* [3.4 EV+1: 138] */
{0x098E, 0xC87A},
{0xC87A, 0x42, MSM_CAMERA_I2C_BYTE_DATA},
{0xC87B, 0x21, MSM_CAMERA_I2C_BYTE_DATA},
{0x098E, 0x4C0A},
{0xCC0A, 0x004E},
};
static struct msm_camera_i2c_reg_conf EV_plus_2[] = {
/* [3.5 EV+2: 148] */
{0x098E, 0xC87A},
{0xC87A, 0x48, MSM_CAMERA_I2C_BYTE_DATA},
{0xC87B, 0x24, MSM_CAMERA_I2C_BYTE_DATA},
{0x098E, 0x4C0A},
{0xCC0A, 0x006E},
};
static struct msm_camera_i2c_reg_conf EV_minus_1[] = {
/* [3.2 EV-1: 118] */
{0x098E, 0xC87A},
{0xC87A, 0x36, MSM_CAMERA_I2C_BYTE_DATA},
{0xC87B, 0x1B, MSM_CAMERA_I2C_BYTE_DATA},
{0x098E, 0x4C0A},
{0xCC0A, 0x002A},
};
static struct msm_camera_i2c_reg_conf EV_minus_2[] = {
/* [3.1 EV-2: 108] */
{0x098E, 0xC87A},
{0xC87A, 0x32, MSM_CAMERA_I2C_BYTE_DATA},
{0xC87B, 0x19, MSM_CAMERA_I2C_BYTE_DATA},
{0x098E, 0x4C0A},
{0xCC0A, 0x001F},
};
static struct msm_camera_i2c_reg_conf Fix_30_fps[] = {

View File

@@ -459,10 +459,11 @@ enum af_camera_name {
#define YUV_CAMERA_WB_CUSTOM 1
#define YUV_CAMERA_WB_INCANDESCENT 2
#define YUV_CAMERA_WB_FLUORESCENT 3
#define YUV_CAMERA_WB_DAYLIGHT 4
#define YUV_CAMERA_WB_CLOUDY_DAYLIGHT 5
#define YUV_CAMERA_WB_TWILIGHT 6
#define YUV_CAMERA_WB_SHADE 7
#define YUV_CAMERA_WB_WARM_FLUORESCENT 4
#define YUV_CAMERA_WB_DAYLIGHT 5
#define YUV_CAMERA_WB_CLOUDY_DAYLIGHT 6
#define YUV_CAMERA_WB_TWILIGHT 7
#define YUV_CAMERA_WB_SHADE 8
#define CAMERA_EXPOSURE_COMPENSATION_LV0 12
#define CAMERA_EXPOSURE_COMPENSATION_LV1 6