summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-François Moine <moinejf@free.fr>2012-02-27 15:37:37 +0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-03-08 15:04:46 +0400
commit6028c3268404c1323da09b1dc5bbff56b79364a1 (patch)
tree02fbd0eef3ccc7a7d729979d5b0aaa1a0183822a
parent0b74e2c460a4a3977f40c40580f1d7af4f976447 (diff)
downloadlinux-6028c3268404c1323da09b1dc5bbff56b79364a1.tar.xz
[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>
-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)
{
struct sd *sd = (struct sd *) gspca_dev;
+ if (sd->sensor != SENSOR_HV7131R)
+ return;
sd->ctrls[EXPOSURE].val = (i2c_read(gspca_dev, 0x25) << 9)
| (i2c_read(gspca_dev, 0x26) << 1)
| (i2c_read(gspca_dev, 0x27) >> 7);
@@ -5894,6 +5896,8 @@ static void setexposure(struct gspca_dev *gspca_dev)
struct sd *sd = (struct sd *) gspca_dev;
int val;
+ if (sd->sensor != SENSOR_HV7131R)
+ return;
val = sd->ctrls[EXPOSURE].val;
i2c_write(gspca_dev, 0x25, val >> 9, 0x00);
i2c_write(gspca_dev, 0x26, val >> 1, 0x00);