forked from Minki/linux
[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>
This commit is contained in:
parent
804632201f
commit
222036765c
@ -1939,10 +1939,10 @@ static u32 setexposure(struct gspca_dev *gspca_dev,
|
|||||||
u8 expo_c1[] =
|
u8 expo_c1[] =
|
||||||
{ 0xb1, 0x5c, 0x09, 0x00, 0x00, 0x00, 0x00, 0x10 };
|
{ 0xb1, 0x5c, 0x09, 0x00, 0x00, 0x00, 0x00, 0x10 };
|
||||||
|
|
||||||
if (expo > 0x0280)
|
if (expo > 0x0390)
|
||||||
expo = 0x0280;
|
expo = 0x0390;
|
||||||
else if (expo < 0x0040)
|
else if (expo < 0x0060)
|
||||||
expo = 0x0040;
|
expo = 0x0060;
|
||||||
expo_c1[3] = expo >> 8;
|
expo_c1[3] = expo >> 8;
|
||||||
expo_c1[4] = expo;
|
expo_c1[4] = expo;
|
||||||
i2c_w8(gspca_dev, expo_c1);
|
i2c_w8(gspca_dev, expo_c1);
|
||||||
@ -1999,10 +1999,13 @@ static void setbrightness(struct gspca_dev *gspca_dev)
|
|||||||
sd->exposure = setexposure(gspca_dev, expo);
|
sd->exposure = setexposure(gspca_dev, expo);
|
||||||
break;
|
break;
|
||||||
case SENSOR_GC0307:
|
case SENSOR_GC0307:
|
||||||
case SENSOR_MT9V111:
|
|
||||||
expo = brightness;
|
expo = brightness;
|
||||||
sd->exposure = setexposure(gspca_dev, expo);
|
sd->exposure = setexposure(gspca_dev, expo);
|
||||||
return; /* don't set the Y offset */
|
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:
|
case SENSOR_OM6802:
|
||||||
expo = brightness << 2;
|
expo = brightness << 2;
|
||||||
sd->exposure = setexposure(gspca_dev, expo);
|
sd->exposure = setexposure(gspca_dev, expo);
|
||||||
@ -2750,6 +2753,7 @@ static void do_autogain(struct gspca_dev *gspca_dev)
|
|||||||
(unsigned int) (expotimes << 8));
|
(unsigned int) (expotimes << 8));
|
||||||
break;
|
break;
|
||||||
case SENSOR_OM6802:
|
case SENSOR_OM6802:
|
||||||
|
case SENSOR_MT9V111:
|
||||||
expotimes = sd->exposure;
|
expotimes = sd->exposure;
|
||||||
expotimes += (luma_mean - delta) >> 2;
|
expotimes += (luma_mean - delta) >> 2;
|
||||||
if (expotimes < 0)
|
if (expotimes < 0)
|
||||||
@ -2762,7 +2766,6 @@ static void do_autogain(struct gspca_dev *gspca_dev)
|
|||||||
/* case SENSOR_MO4000: */
|
/* case SENSOR_MO4000: */
|
||||||
/* case SENSOR_MI0360: */
|
/* case SENSOR_MI0360: */
|
||||||
/* case SENSOR_MI0360B: */
|
/* case SENSOR_MI0360B: */
|
||||||
/* case SENSOR_MT9V111: */
|
|
||||||
expotimes = sd->exposure;
|
expotimes = sd->exposure;
|
||||||
expotimes += (luma_mean - delta) >> 6;
|
expotimes += (luma_mean - delta) >> 6;
|
||||||
if (expotimes < 0)
|
if (expotimes < 0)
|
||||||
|
Loading…
Reference in New Issue
Block a user