From 4fb8137c43ebc0f5bc0dde6b64faa9dd1b1d7970 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jean-Fran=C3=A7ois=20Moine?= Date: Sat, 24 Mar 2012 09:28:39 -0300 Subject: [PATCH] [media] gspca - sn9c20x: Don't do sensor update before the capture is started MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Signed-off-by: Mauro Carvalho Chehab --- drivers/media/video/gspca/sn9c20x.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/media/video/gspca/sn9c20x.c b/drivers/media/video/gspca/sn9c20x.c index c5b42e4ac9b4..da2904a891aa 100644 --- a/drivers/media/video/gspca/sn9c20x.c +++ b/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: -- 2.30.2