aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorJean-François Moine <moinejf@free.fr>2010-11-12 11:59:48 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-12-29 05:16:43 -0500
commite2817029b3f139bd85360536153467bd8f7f863b (patch)
tree4b76386ded973333a9d323ea43a3b8defd787f49 /drivers/media
parent858ea5e941fad6a2f38d0c9722bbb842d46662fb (diff)
[media] gspca - ov519: Check the disabled controls at start time only
Signed-off-by: Jean-François Moine <moinejf@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/video/gspca/ov519.c28
1 files changed, 12 insertions, 16 deletions
diff --git a/drivers/media/video/gspca/ov519.c b/drivers/media/video/gspca/ov519.c
index 7ae304d0ebf6..d60322047265 100644
--- a/drivers/media/video/gspca/ov519.c
+++ b/drivers/media/video/gspca/ov519.c
@@ -3667,8 +3667,6 @@ static void sethvflip(struct gspca_dev *gspca_dev)
3667{ 3667{
3668 struct sd *sd = (struct sd *) gspca_dev; 3668 struct sd *sd = (struct sd *) gspca_dev;
3669 3669
3670 if (sd->sensor != SEN_OV7670)
3671 return;
3672 if (sd->gspca_dev.streaming) 3670 if (sd->gspca_dev.streaming)
3673 ov51x_stop(sd); 3671 ov51x_stop(sd);
3674 i2c_w_mask(sd, OV7670_R1E_MVFP, 3672 i2c_w_mask(sd, OV7670_R1E_MVFP,
@@ -3812,12 +3810,18 @@ static int sd_start(struct gspca_dev *gspca_dev)
3812 3810
3813 set_ov_sensor_window(sd); 3811 set_ov_sensor_window(sd);
3814 3812
3815 setcontrast(gspca_dev); 3813 if (!(sd->gspca_dev.ctrl_dis & (1 << CONTRAST)))
3816 setbrightness(gspca_dev); 3814 setcontrast(gspca_dev);
3817 setcolors(gspca_dev); 3815 if (!(sd->gspca_dev.ctrl_dis & (1 << BRIGHTNESS)))
3818 sethvflip(gspca_dev); 3816 setbrightness(gspca_dev);
3819 setautobright(gspca_dev); 3817 if (!(sd->gspca_dev.ctrl_dis & (1 << COLORS)))
3820 setfreq_i(sd); 3818 setcolors(gspca_dev);
3819 if (!(sd->gspca_dev.ctrl_dis & ((1 << HFLIP) | (1 << VFLIP))))
3820 sethvflip(gspca_dev);
3821 if (!(sd->gspca_dev.ctrl_dis & (1 << AUTOBRIGHT)))
3822 setautobright(gspca_dev);
3823 if (!(sd->gspca_dev.ctrl_dis & (1 << FREQ)))
3824 setfreq_i(sd);
3821 3825
3822 /* Force clear snapshot state in case the snapshot button was 3826 /* Force clear snapshot state in case the snapshot button was
3823 pressed while we weren't streaming */ 3827 pressed while we weren't streaming */
@@ -4184,19 +4188,11 @@ static void setautobright(struct gspca_dev *gspca_dev)
4184{ 4188{
4185 struct sd *sd = (struct sd *) gspca_dev; 4189 struct sd *sd = (struct sd *) gspca_dev;
4186 4190
4187 if (sd->sensor == SEN_OV7640 || sd->sensor == SEN_OV7648 ||
4188 sd->sensor == SEN_OV7670 ||
4189 sd->sensor == SEN_OV2610 || sd->sensor == SEN_OV3610)
4190 return;
4191
4192 i2c_w_mask(sd, 0x2d, sd->ctrls[AUTOBRIGHT].val ? 0x10 : 0x00, 0x10); 4191 i2c_w_mask(sd, 0x2d, sd->ctrls[AUTOBRIGHT].val ? 0x10 : 0x00, 0x10);
4193} 4192}
4194 4193
4195static void setfreq_i(struct sd *sd) 4194static void setfreq_i(struct sd *sd)
4196{ 4195{
4197 if (sd->sensor == SEN_OV2610 || sd->sensor == SEN_OV3610)
4198 return;
4199
4200 if (sd->sensor == SEN_OV7670) { 4196 if (sd->sensor == SEN_OV7670) {
4201 switch (sd->ctrls[FREQ].val) { 4197 switch (sd->ctrls[FREQ].val) {
4202 case 0: /* Banding filter disabled */ 4198 case 0: /* Banding filter disabled */