aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJean-François Moine <moinejf@free.fr>2011-02-10 07:49:32 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-03-21 20:32:06 -0300
commit222036765ccbdb1ff4feef22d8e2fc687a9cdcfd (patch)
treea19bf4a5aedb40390fea373963f59d87bc6573bb /drivers
parent804632201f2d749b7cb35fce42fc28552ad595c1 (diff)
downloadkernel_samsung_tuna-222036765ccbdb1ff4feef22d8e2fc687a9cdcfd.zip
kernel_samsung_tuna-222036765ccbdb1ff4feef22d8e2fc687a9cdcfd.tar.gz
kernel_samsung_tuna-222036765ccbdb1ff4feef22d8e2fc687a9cdcfd.tar.bz2
[media] gspca - sonixj: Adjust autogain for sensor mt9v111
The gain/expo adjustment was too long. Signed-off-by: Jean-François Moine <moinejf@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/media/video/gspca/sonixj.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/media/video/gspca/sonixj.c b/drivers/media/video/gspca/sonixj.c
index 01ee39b..b7a7e96 100644
--- a/drivers/media/video/gspca/sonixj.c
+++ b/drivers/media/video/gspca/sonixj.c
@@ -1939,10 +1939,10 @@ static u32 setexposure(struct gspca_dev *gspca_dev,
u8 expo_c1[] =
{ 0xb1, 0x5c, 0x09, 0x00, 0x00, 0x00, 0x00, 0x10 };
- if (expo > 0x0280)
- expo = 0x0280;
- else if (expo < 0x0040)
- expo = 0x0040;
+ if (expo > 0x0390)
+ expo = 0x0390;
+ else if (expo < 0x0060)
+ expo = 0x0060;
expo_c1[3] = expo >> 8;
expo_c1[4] = expo;
i2c_w8(gspca_dev, expo_c1);
@@ -1999,10 +1999,13 @@ static void setbrightness(struct gspca_dev *gspca_dev)
sd->exposure = setexposure(gspca_dev, expo);
break;
case SENSOR_GC0307:
- case SENSOR_MT9V111:
expo = brightness;
sd->exposure = setexposure(gspca_dev, expo);
return; /* don't set the Y offset */
+ case SENSOR_MT9V111:
+ expo = brightness << 2;
+ sd->exposure = setexposure(gspca_dev, expo);
+ return; /* don't set the Y offset */
case SENSOR_OM6802:
expo = brightness << 2;
sd->exposure = setexposure(gspca_dev, expo);
@@ -2750,6 +2753,7 @@ static void do_autogain(struct gspca_dev *gspca_dev)
(unsigned int) (expotimes << 8));
break;
case SENSOR_OM6802:
+ case SENSOR_MT9V111:
expotimes = sd->exposure;
expotimes += (luma_mean - delta) >> 2;
if (expotimes < 0)
@@ -2762,7 +2766,6 @@ static void do_autogain(struct gspca_dev *gspca_dev)
/* case SENSOR_MO4000: */
/* case SENSOR_MI0360: */
/* case SENSOR_MI0360B: */
-/* case SENSOR_MT9V111: */
expotimes = sd->exposure;
expotimes += (luma_mean - delta) >> 6;
if (expotimes < 0)