diff options
Diffstat (limited to 'drivers/media/video/gspca/m5602/m5602_mt9m111.c')
-rw-r--r-- | drivers/media/video/gspca/m5602/m5602_mt9m111.c | 17 |
1 files changed, 14 insertions, 3 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) |