aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/gspca/zc3xx.c
diff options
context:
space:
mode:
authorJean-François Moine <moinejf@free.fr>2012-02-27 06:37:37 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-03-08 06:04:46 -0500
commit6028c3268404c1323da09b1dc5bbff56b79364a1 (patch)
tree02fbd0eef3ccc7a7d729979d5b0aaa1a0183822a /drivers/media/video/gspca/zc3xx.c
parent0b74e2c460a4a3977f40c40580f1d7af4f976447 (diff)
[media] gspca - zc3xx: Fix bad sensor values when changing autogain
The setexposure added in commit 590f21680616 works only for the sensor hv7131r, but it is called for all sensors when changing the autogain. Signed-off-by: Jean-François Moine <moinejf@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/gspca/zc3xx.c')
-rw-r--r--drivers/media/video/gspca/zc3xx.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/media/video/gspca/zc3xx.c b/drivers/media/video/gspca/zc3xx.c
index 2ff96ca2ceec..091000611528 100644
--- a/drivers/media/video/gspca/zc3xx.c
+++ b/drivers/media/video/gspca/zc3xx.c
@@ -5884,6 +5884,8 @@ static void getexposure(struct gspca_dev *gspca_dev)
5884{ 5884{
5885 struct sd *sd = (struct sd *) gspca_dev; 5885 struct sd *sd = (struct sd *) gspca_dev;
5886 5886
5887 if (sd->sensor != SENSOR_HV7131R)
5888 return;
5887 sd->ctrls[EXPOSURE].val = (i2c_read(gspca_dev, 0x25) << 9) 5889 sd->ctrls[EXPOSURE].val = (i2c_read(gspca_dev, 0x25) << 9)
5888 | (i2c_read(gspca_dev, 0x26) << 1) 5890 | (i2c_read(gspca_dev, 0x26) << 1)
5889 | (i2c_read(gspca_dev, 0x27) >> 7); 5891 | (i2c_read(gspca_dev, 0x27) >> 7);
@@ -5894,6 +5896,8 @@ static void setexposure(struct gspca_dev *gspca_dev)
5894 struct sd *sd = (struct sd *) gspca_dev; 5896 struct sd *sd = (struct sd *) gspca_dev;
5895 int val; 5897 int val;
5896 5898
5899 if (sd->sensor != SENSOR_HV7131R)
5900 return;
5897 val = sd->ctrls[EXPOSURE].val; 5901 val = sd->ctrls[EXPOSURE].val;
5898 i2c_write(gspca_dev, 0x25, val >> 9, 0x00); 5902 i2c_write(gspca_dev, 0x25, val >> 9, 0x00);
5899 i2c_write(gspca_dev, 0x26, val >> 1, 0x00); 5903 i2c_write(gspca_dev, 0x26, val >> 1, 0x00);