diff options
author | Prayas Mohanty <pmohanty@nvidia.com> | 2011-05-02 16:05:53 +0530 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2011-05-18 22:41:58 -0700 |
commit | 2f777956b8ca3577cd5bc298d97c01be97ca3267 (patch) | |
tree | 5a296c491cd8f144e9984c6701de21dffca0d351 /drivers | |
parent | 7f99ddd6073eb9baf6b5bee4ca403fe74bcd1427 (diff) |
media: video: ov5650: synchronize sensors for stereo
For stereo camera, it is important that both sensors
should start sending data at the same time for them to
be in sync. Add IOCTL (OV5650_IOCTL_SYNC_SENSORS),
which user code can access to synchronize both sensors.
bug 787214
bug 786928
Change-Id: I6bf34a8af3b7dd51150d5c0247b6787b824c1dae
Reviewed-on: http://git-master/r/30005
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Tested-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/media/video/tegra/ov5650.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/drivers/media/video/tegra/ov5650.c b/drivers/media/video/tegra/ov5650.c index 80b87bc23c50..9f329d375f26 100644 --- a/drivers/media/video/tegra/ov5650.c +++ b/drivers/media/video/tegra/ov5650.c @@ -720,16 +720,16 @@ static int ov5650_test_pattern(struct ov5650_info *info, NULL, 0); } -static int ov5650_set_power(int val) +static int ov5650_set_power(int powerLevel) { - pr_info("%s: val=%d camera mode=%d\n", __func__, val, + pr_info("%s: powerLevel=%d camera mode=%d\n", __func__, powerLevel, info->camera_mode); switch (info->camera_mode) { case Main: case LeftOnly: if (info->left.pdata) { - if (val && info->left.pdata->power_on) + if (powerLevel && info->left.pdata->power_on) info->left.pdata->power_on(); else if (info->left.pdata->power_off) info->left.pdata->power_off(); @@ -738,13 +738,13 @@ static int ov5650_set_power(int val) case Stereo: if (info->left.pdata) { - if (val && info->left.pdata->power_on) + if (powerLevel && info->left.pdata->power_on) info->left.pdata->power_on(); else if (info->left.pdata->power_off) info->left.pdata->power_off(); } if (info->right.pdata) { - if (val && info->right.pdata->power_on) + if (powerLevel && info->right.pdata->power_on) info->right.pdata->power_on(); else if (info->right.pdata->power_off) info->right.pdata->power_off(); @@ -753,7 +753,7 @@ static int ov5650_set_power(int val) case RightOnly: if (info->right.pdata) { - if (val && info->right.pdata->power_on) + if (powerLevel && info->right.pdata->power_on) info->right.pdata->power_on(); else if (info->right.pdata->power_off) info->right.pdata->power_off(); @@ -788,6 +788,10 @@ static long ov5650_ioctl(struct file *file, } return 0; } + case OV5650_IOCTL_SYNC_SENSORS: + if (info->right.pdata->synchronize_sensors) + info->right.pdata->synchronize_sensors(); + return 0; case OV5650_IOCTL_SET_MODE: { struct ov5650_mode mode; |