aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video
diff options
context:
space:
mode:
authorkyoungho.yun <kyoungho.yun@samsung.com>2010-11-14 15:47:23 -0800
committerArve Hjønnevåg <arve@android.com>2011-11-17 17:52:36 -0800
commit9b37b3d58ad50d38458814aeadd9a2a9432877b4 (patch)
tree51c6a97c25bf5e3f05dd15e536a65c80234f646f /drivers/media/video
parentae7d2dca7a495928b51acf93e094060743741437 (diff)
downloadkernel_samsung_crespo-9b37b3d58ad50d38458814aeadd9a2a9432877b4.zip
kernel_samsung_crespo-9b37b3d58ad50d38458814aeadd9a2a9432877b4.tar.gz
kernel_samsung_crespo-9b37b3d58ad50d38458814aeadd9a2a9432877b4.tar.bz2
S5PC11X: CAMERA: change EXIF information in back camera
1. When exposure time is very short, shutter speed value in EXIF has abnormal values. So, to calculate exactly, the value from sensor multipled by 1000, before devided by 400. Also, shutter speed value divided by 1000 in HAL to maintain result value. 2. Techwin request to change ISO calculation denominator for calculate more exactly. Change-Id: Ifb2deb8d225f204912e9e97e4e22d1ee22c35069 Signed-off-by: kyoungho.yun <kyoungho.yun@samsung.com>
Diffstat (limited to 'drivers/media/video')
-rwxr-xr-xdrivers/media/video/s5k4ecgx.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/media/video/s5k4ecgx.c b/drivers/media/video/s5k4ecgx.c
index a185834..b036716 100755
--- a/drivers/media/video/s5k4ecgx.c
+++ b/drivers/media/video/s5k4ecgx.c
@@ -1987,7 +1987,7 @@ static int s5k4ecgx_get_iso(struct v4l2_subdev *sd, struct v4l2_control *ctrl)
/* restore write mode */
s5k4ecgx_i2c_write_twobyte(client, 0x0028, 0x7000);
- read_value = read_value1 * read_value2 / 0x100 / 2;
+ read_value = read_value1 * read_value2 / 384;
if (read_value > 0x400)
ctrl->value = ISO_400;
@@ -2011,16 +2011,20 @@ static int s5k4ecgx_get_shutterspeed(struct v4l2_subdev *sd,
struct i2c_client *client = v4l2_get_subdevdata(sd);
struct s5k4ecgx_state *state =
container_of(sd, struct s5k4ecgx_state, sd);
- u16 read_value = 0;
+ u16 read_value_1;
+ u16 read_value_2;
+ u32 read_value;
err = s5k4ecgx_set_from_table(sd, "get shutterspeed",
&state->regs->get_shutterspeed, 1, 0);
- err |= s5k4ecgx_i2c_read_twobyte(client, 0x0F12, &read_value);
+ err |= s5k4ecgx_i2c_read_twobyte(client, 0x0F12, &read_value_1);
+ err |= s5k4ecgx_i2c_read_twobyte(client, 0x0F12, &read_value_2);
+ read_value = (read_value_2 << 16) | (read_value_1 & 0xffff);
/* restore write mode */
s5k4ecgx_i2c_write_twobyte(client, 0x0028, 0x7000);
- ctrl->value = read_value / 400;
+ ctrl->value = read_value * 1000 / 400;
dev_dbg(&client->dev,
"%s: get shutterspeed == %d\n", __func__, ctrl->value);