diff options
author | Erik Andr?n <erik.andren@gmail.com> | 2009-01-08 16:11:05 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-06-16 17:20:26 -0400 |
commit | dd3ec39871ba83fb47364a26b1caaac4494deb7b (patch) | |
tree | a233b6975cb4046b760ab2865d7b932954430f7e /drivers/media/video/gspca | |
parent | 6e5ccf83eff19dee5aba11aa484dd4426adbbfdf (diff) |
V4L/DVB (11464): gspca - m5602-mt9m111: Set the cached v4l2 ctrl values
When we resume the machine we want the previously set values, not the default
values. Fix this for the mt9m111 sensor
Signed-off-by: Erik Andr?n <erik.andren@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/gspca')
-rw-r--r-- | drivers/media/video/gspca/m5602/m5602_mt9m111.c | 17 | ||||
-rw-r--r-- | drivers/media/video/gspca/m5602/m5602_mt9m111.h | 6 |
2 files changed, 14 insertions, 9 deletions
diff --git a/drivers/media/video/gspca/m5602/m5602_mt9m111.c b/drivers/media/video/gspca/m5602/m5602_mt9m111.c index 519548d07af6..8700f37deca9 100644 --- a/drivers/media/video/gspca/m5602/m5602_mt9m111.c +++ b/drivers/media/video/gspca/m5602/m5602_mt9m111.c | |||
@@ -136,12 +136,16 @@ sensor_found: | |||
136 | sensor_settings[i] = mt9m111_ctrls[i].qctrl.default_value; | 136 | sensor_settings[i] = mt9m111_ctrls[i].qctrl.default_value; |
137 | sd->sensor_priv = sensor_settings; | 137 | sd->sensor_priv = sensor_settings; |
138 | 138 | ||
139 | if (dump_sensor) | ||
140 | mt9m111_dump_registers(sd); | ||
141 | |||
139 | return 0; | 142 | return 0; |
140 | } | 143 | } |
141 | 144 | ||
142 | int mt9m111_init(struct sd *sd) | 145 | int mt9m111_init(struct sd *sd) |
143 | { | 146 | { |
144 | int i, err = 0; | 147 | int i, err = 0; |
148 | s32 *sensor_settings = sd->sensor_priv; | ||
145 | 149 | ||
146 | /* Init the sensor */ | 150 | /* Init the sensor */ |
147 | for (i = 0; i < ARRAY_SIZE(init_mt9m111) && !err; i++) { | 151 | for (i = 0; i < ARRAY_SIZE(init_mt9m111) && !err; i++) { |
@@ -159,10 +163,17 @@ int mt9m111_init(struct sd *sd) | |||
159 | } | 163 | } |
160 | } | 164 | } |
161 | 165 | ||
162 | if (dump_sensor) | 166 | err = mt9m111_set_vflip(&sd->gspca_dev, sensor_settings[VFLIP_IDX]); |
163 | mt9m111_dump_registers(sd); | 167 | if (err < 0) |
168 | return err; | ||
169 | |||
170 | err = mt9m111_set_hflip(&sd->gspca_dev, sensor_settings[HFLIP_IDX]); | ||
171 | if (err < 0) | ||
172 | return err; | ||
173 | |||
174 | err = mt9m111_set_gain(&sd->gspca_dev, sensor_settings[GAIN_IDX]); | ||
164 | 175 | ||
165 | return (err < 0) ? err : 0; | 176 | return err; |
166 | } | 177 | } |
167 | 178 | ||
168 | void mt9m111_disconnect(struct sd *sd) | 179 | void mt9m111_disconnect(struct sd *sd) |
diff --git a/drivers/media/video/gspca/m5602/m5602_mt9m111.h b/drivers/media/video/gspca/m5602/m5602_mt9m111.h index 91386324757e..c198734c807d 100644 --- a/drivers/media/video/gspca/m5602/m5602_mt9m111.h +++ b/drivers/media/video/gspca/m5602/m5602_mt9m111.h | |||
@@ -290,7 +290,6 @@ static const unsigned char init_mt9m111[][4] = | |||
290 | {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xa0, 0x00}, | 290 | {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xa0, 0x00}, |
291 | {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00}, | 291 | {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00}, |
292 | {SENSOR, MT9M111_SC_SHUTTER_WIDTH, 0x01, 0xf4}, | 292 | {SENSOR, MT9M111_SC_SHUTTER_WIDTH, 0x01, 0xf4}, |
293 | {SENSOR, MT9M111_SC_GLOBAL_GAIN, 0x00, 0xea}, | ||
294 | 293 | ||
295 | {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x06, 0x00}, | 294 | {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x06, 0x00}, |
296 | {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00}, | 295 | {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00}, |
@@ -452,7 +451,6 @@ static const unsigned char init_mt9m111[][4] = | |||
452 | {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xa0, 0x00}, | 451 | {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xa0, 0x00}, |
453 | {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00}, | 452 | {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00}, |
454 | {SENSOR, MT9M111_SC_SHUTTER_WIDTH, 0x01, 0xf4}, | 453 | {SENSOR, MT9M111_SC_SHUTTER_WIDTH, 0x01, 0xf4}, |
455 | {SENSOR, MT9M111_SC_GLOBAL_GAIN, 0x00, 0xea}, | ||
456 | {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00}, | 454 | {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00}, |
457 | {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00}, | 455 | {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00}, |
458 | 456 | ||
@@ -590,7 +588,6 @@ static const unsigned char init_mt9m111[][4] = | |||
590 | {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xa0, 0x00}, | 588 | {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xa0, 0x00}, |
591 | {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00}, | 589 | {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00}, |
592 | {SENSOR, MT9M111_SC_SHUTTER_WIDTH, 0x01, 0xf4}, | 590 | {SENSOR, MT9M111_SC_SHUTTER_WIDTH, 0x01, 0xf4}, |
593 | {SENSOR, MT9M111_SC_GLOBAL_GAIN, 0x00, 0xea}, | ||
594 | {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00}, | 591 | {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00}, |
595 | {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00}, | 592 | {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00}, |
596 | {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00}, | 593 | {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00}, |
@@ -766,7 +763,6 @@ static const unsigned char init_mt9m111[][4] = | |||
766 | 763 | ||
767 | {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00}, | 764 | {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00}, |
768 | {SENSOR, MT9M111_SC_SHUTTER_WIDTH, 0x01, 0x90}, | 765 | {SENSOR, MT9M111_SC_SHUTTER_WIDTH, 0x01, 0x90}, |
769 | {SENSOR, MT9M111_SC_GLOBAL_GAIN, 0x00, 0xe6}, | ||
770 | {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00}, | 766 | {BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00}, |
771 | {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00}, | 767 | {BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00}, |
772 | {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00}, | 768 | {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00}, |
@@ -945,8 +941,6 @@ static const unsigned char init_mt9m111[][4] = | |||
945 | {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00}, | 941 | {SENSOR, MT9M111_PAGE_MAP, 0x00, 0x00}, |
946 | /* Set number of blank rows chosen to 400 */ | 942 | /* Set number of blank rows chosen to 400 */ |
947 | {SENSOR, MT9M111_SC_SHUTTER_WIDTH, 0x01, 0x90}, | 943 | {SENSOR, MT9M111_SC_SHUTTER_WIDTH, 0x01, 0x90}, |
948 | /* Set the global gain to 283 (of 512) */ | ||
949 | {SENSOR, MT9M111_SC_GLOBAL_GAIN, 0x03, 0x63} | ||
950 | }; | 944 | }; |
951 | 945 | ||
952 | #endif | 946 | #endif |