diff options
author | Jean-François Moine <moinejf@free.fr> | 2010-11-12 11:59:48 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-12-29 05:16:43 -0500 |
commit | e2817029b3f139bd85360536153467bd8f7f863b (patch) | |
tree | 4b76386ded973333a9d323ea43a3b8defd787f49 /drivers/media | |
parent | 858ea5e941fad6a2f38d0c9722bbb842d46662fb (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.c | 28 |
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 | ||
4195 | static void setfreq_i(struct sd *sd) | 4194 | static 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 */ |