summaryrefslogtreecommitdiffstats
path: root/extras/recipes-kernel/linux/linux-omap-psp-2.6.32/cam/0073-mt9v113-Fix-State-variable-handling.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extras/recipes-kernel/linux/linux-omap-psp-2.6.32/cam/0073-mt9v113-Fix-State-variable-handling.patch')
-rw-r--r--extras/recipes-kernel/linux/linux-omap-psp-2.6.32/cam/0073-mt9v113-Fix-State-variable-handling.patch68
1 files changed, 68 insertions, 0 deletions
diff --git a/extras/recipes-kernel/linux/linux-omap-psp-2.6.32/cam/0073-mt9v113-Fix-State-variable-handling.patch b/extras/recipes-kernel/linux/linux-omap-psp-2.6.32/cam/0073-mt9v113-Fix-State-variable-handling.patch
new file mode 100644
index 00000000..9bd006e1
--- /dev/null
+++ b/extras/recipes-kernel/linux/linux-omap-psp-2.6.32/cam/0073-mt9v113-Fix-State-variable-handling.patch
@@ -0,0 +1,68 @@
1From e3d5c3eb67e2ef91e08b0fcd26778b8505268a8a Mon Sep 17 00:00:00 2001
2From: Sergio Aguirre <saaguirre@ti.com>
3Date: Thu, 22 Jul 2010 13:29:16 -0500
4Subject: [PATCH 73/75] mt9v113: Fix State variable handling
5
6State variable was misused, and was running detection all the
7time the sensor was powered back on.
8
9Reason? power off code was putting it to "not detected" always.
10
11Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
12---
13 drivers/media/video/mt9v113.c | 23 ++++++++++++++---------
14 1 files changed, 14 insertions(+), 9 deletions(-)
15
16diff --git a/drivers/media/video/mt9v113.c b/drivers/media/video/mt9v113.c
17index 6714240..37e3e19 100644
18--- a/drivers/media/video/mt9v113.c
19+++ b/drivers/media/video/mt9v113.c
20@@ -1251,7 +1251,6 @@ static int ioctl_s_power(struct v4l2_int_device *s, enum v4l2_power on)
21 /* Disable mux for mt9v113 data path */
22 if (decoder->pdata->power_set)
23 err |= decoder->pdata->power_set(s, on);
24- decoder->state = STATE_NOT_DETECTED;
25 break;
26
27 case V4L2_POWER_STANDBY:
28@@ -1260,23 +1259,29 @@ static int ioctl_s_power(struct v4l2_int_device *s, enum v4l2_power on)
29 break;
30
31 case V4L2_POWER_ON:
32- /* Enable mux for mt9v113 data path */
33- if (decoder->state == STATE_NOT_DETECTED) {
34-
35- if (decoder->pdata->power_set)
36- err = decoder->pdata->power_set(s, on);
37+ if (decoder->pdata->power_set) {
38+ err = decoder->pdata->power_set(s, on);
39+ if (err)
40+ return err;
41+ }
42
43+ if (decoder->state == STATE_NOT_DETECTED) {
44 /* Detect the sensor is not already detected */
45- err |= mt9v113_detect(decoder);
46+ err = mt9v113_detect(decoder);
47 if (err) {
48 v4l_err(decoder->client,
49 "Unable to detect decoder\n");
50+ WARN_ON(1);
51 return err;
52 }
53 }
54 /* Only VGA mode for now */
55- err |= mt9v113_configure(decoder);
56- err |= mt9v113_vga_mode(decoder);
57+ err = mt9v113_configure(decoder);
58+ if (err)
59+ return err;
60+ err = mt9v113_vga_mode(decoder);
61+ if (err)
62+ return err;
63 break;
64
65 default:
66--
671.6.6.1
68