summaryrefslogtreecommitdiff
path: root/drivers/media
diff options
context:
space:
mode:
authorQinggang Zhou <qzhou@nvidia.com>2011-12-06 11:04:02 -0800
committerVarun Wadekar <vwadekar@nvidia.com>2011-12-26 11:18:30 +0530
commita68e0521973c4cb3466343b19da14b2a3e6ff31b (patch)
tree7d4035934d53fcc29bcefe71f6f7d008c53e455d /drivers/media
parent4d77074428cb2cc7121a6951fc061cad634620d9 (diff)
Revert "ov5650: add fast set_mode"
This reverts commit e0f1e9c61daa5faacb0e5cb404357f7e3284c8ae. Some i2c registers have unexpected impacts over low-light captures. bug 901066 Original Gerrit: http://git-master/r/#change,68489 (cherry picked from commit I2ae122da60fa530155f8147b3b21576d79d6a1dd) Signed-off-by: Qinggang Zhou <qzhou@nvidia.com> Change-Id: Id84672c49f27821afce6f9b27cc72ba2217f77dc Reviewed-on: http://git-master/r/71716 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Qinggang Zhou <qzhou@nvidia.com> Reviewed-by: Naren Bhat <nbhat@nvidia.com> Reviewed-by: Charlie Huang <chahuang@nvidia.com> Tested-by: Charlie Huang <chahuang@nvidia.com> Reviewed-by: John Sasinowski <jsasinowski@nvidia.com> Reviewed-by: Jon Mayo <jmayo@nvidia.com>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/video/tegra/ov5650.c30
1 files changed, 8 insertions, 22 deletions
diff --git a/drivers/media/video/tegra/ov5650.c b/drivers/media/video/tegra/ov5650.c
index d90e10a8837d..cc50e9141e66 100644
--- a/drivers/media/video/tegra/ov5650.c
+++ b/drivers/media/video/tegra/ov5650.c
@@ -29,8 +29,6 @@ struct ov5650_reg {
u16 val;
};
-static struct ov5650_reg *last_mode;
-
struct ov5650_sensor {
struct i2c_client *i2c_client;
struct ov5650_platform_data *pdata;
@@ -1012,23 +1010,13 @@ static int ov5650_set_mode(struct ov5650_info *info, struct ov5650_mode *mode)
ov5650_get_coarse_time_regs(reg_list + 2, mode->coarse_time);
ov5650_get_gain_reg(reg_list + 5, mode->gain);
- /* Check what condition reset and mode start sequences are */
- /* needed. For switching between certain modes, these are */
- /* not required. Skipping them saves time for I2C access */
- if ((info->mode == OV5650_MODE_INVALID) ||
- ((last_mode != mode_2592x1944) &&
- (last_mode != mode_1296x972)) ||
- ((mode_table[sensor_mode] != mode_2592x1944) &&
- (mode_table[sensor_mode] != mode_1296x972))) {
- err = ov5650_write_table(info, reset_seq, NULL, 0);
- if (err)
- return err;
+ err = ov5650_write_table(info, reset_seq, NULL, 0);
+ if (err)
+ return err;
- err = ov5650_write_table(info, mode_start, NULL, 0);
- if (err)
- return err;
- }
- last_mode = mode_table[sensor_mode];
+ err = ov5650_write_table(info, mode_start, NULL, 0);
+ if (err)
+ return err;
err = ov5650_write_table(info, mode_table[sensor_mode],
reg_list, 6);
@@ -1233,12 +1221,10 @@ static int set_power_helper(struct ov5650_platform_data *pdata,
int powerLevel)
{
if (pdata) {
- if (powerLevel && pdata->power_on) {
+ if (powerLevel && pdata->power_on)
pdata->power_on();
- } else if (pdata->power_off) {
+ else if (pdata->power_off)
pdata->power_off();
- stereo_ov5650_info->mode = OV5650_MODE_INVALID;
- }
}
return 0;
}