[media] gspca - zc3xx: Fix bad sensor values when changing autogain
authorJean-François Moine <moinejf@free.fr>
Mon, 27 Feb 2012 11:37:37 +0000 (08:37 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Thu, 8 Mar 2012 11:04:46 +0000 (08:04 -0300)
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>
drivers/media/video/gspca/zc3xx.c

index 2ff96ca2ceecb0866345b1547d50b01f9346775f..0910006115287a42c5454c8ef491124bac006005 100644 (file)
@@ -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);