Browse Source

[media] gspca - sn9c20x: Don't do sensor update before the capture is started

Telling the bridge to update the sensor when setting the exposure or the gain
is not needed when the image transfer is not started.

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Jean-François Moine 13 years ago
parent
commit
4fb8137c43
1 changed files with 8 additions and 2 deletions
  1. 8 2
      drivers/media/video/gspca/sn9c20x.c

+ 8 - 2
drivers/media/video/gspca/sn9c20x.c

@@ -1644,9 +1644,12 @@ static void set_exposure(struct gspca_dev *gspca_dev)
 {
 	struct sd *sd = (struct sd *) gspca_dev;
 	u8 exp[8] = {sd->i2c_intf, sd->i2c_addr,
-				0x00, 0x00, 0x00, 0x00, 0x00, 0x1e};
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x10};
 	int expo;
 
+	if (gspca_dev->streaming)
+		exp[7] = 0x1e;
+
 	expo = sd->ctrls[EXPOSURE].val;
 	switch (sd->sensor) {
 	case SENSOR_OV7660:
@@ -1683,9 +1686,12 @@ static void set_gain(struct gspca_dev *gspca_dev)
 {
 	struct sd *sd = (struct sd *) gspca_dev;
 	u8 gain[8] = {sd->i2c_intf, sd->i2c_addr,
-				0x00, 0x00, 0x00, 0x00, 0x00, 0x1d};
+				0x00, 0x00, 0x00, 0x00, 0x00, 0x10};
 	int g;
 
+	if (gspca_dev->streaming)
+		gain[7] = 0x15;		/* or 1d ? */
+
 	g = sd->ctrls[GAIN].val;
 	switch (sd->sensor) {
 	case SENSOR_OV7660: