[glsdk/meta-ti-glsdk.git] / recipes-bsp / linux / linux-omap-psp-2.6.32 / cam / 0073-mt9v113-Fix-State-variable-handling.patch
1 From ac6564db6442fe40c974f233750c2fdd20735006 Mon Sep 17 00:00:00 2001
2 From: Sergio Aguirre <saaguirre@ti.com>
3 Date: Thu, 22 Jul 2010 13:29:16 -0500
4 Subject: [PATCH 73/75] mt9v113: Fix State variable handling
6 State variable was misused, and was running detection all the
7 time the sensor was powered back on.
9 Reason? power off code was putting it to "not detected" always.
11 Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
12 ---
13 drivers/media/video/mt9v113.c | 23 ++++++++++++++---------
14 1 files changed, 14 insertions(+), 9 deletions(-)
16 diff --git a/drivers/media/video/mt9v113.c b/drivers/media/video/mt9v113.c
17 index 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;
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;
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 + }
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;
65 default:
66 --
67 1.6.6.1