summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorPrayas Mohanty <pmohanty@nvidia.com>2011-05-02 16:05:53 +0530
committerVarun Colbert <vcolbert@nvidia.com>2011-05-18 22:41:58 -0700
commit2f777956b8ca3577cd5bc298d97c01be97ca3267 (patch)
tree5a296c491cd8f144e9984c6701de21dffca0d351 /drivers
parent7f99ddd6073eb9baf6b5bee4ca403fe74bcd1427 (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.c16
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;